我正在研究可行的算法/解决方案来实现和解决以下问题:根据用户的共同兴趣匹配用户
示例:
U1: 滑雪、亚洲文化、冥想、Java、加密货币
U2: 瑜伽、冥想、管理、美国旅行建议
U3: 编程、旅行、东方美食
我考虑了基于词语相似性的三个维度:
- 词典同义词
- wordnet 同义词集
- 紧密的语义相似性(编程 > Java,旅行 > 美国旅行建议)
- 到目前为止,我考虑了Levenshtein_distance
- 宽松的语义相似性(亚洲文化 >> 东方美食,编程 >> 加密货币,亚洲文化 >> 瑜伽,瑜伽 >> 冥想)
- 完全不确定,我尝试过word2vec
基于这些方法,我希望计算一个相关性分数,并据此匹配用户。
感谢您的输入!
回答:
Levenshtein distance 在我的实验中对捕捉语义相似性作用不大。
Wordnet 效果不错,但在大词集上处理速度较慢
Word2Vec 是 wordnet 的一个很好的近似,但捕捉相关词汇的全面性不如 wordnet
我还建议您看看Facebook 的 Starspace 中使用的图嵌入算法,特别是关于 Facebook 页面喜欢和推荐的用例