nlp - 我可以使用 BERT 或 Doc2Vec 来比较可能不相关的单词列表吗?
问题描述
语境
我正在构建一个示例项目来匹配具有相似兴趣的用户。给定具有给定兴趣列表的任何两个用户,我想在这些用户之间创建一个相似度分数。似乎正确的方法是使用 NLP 将兴趣转换为向量,然后使用余弦相似度进行比较。
问题
我可以使用 BERT(例如:BERT as a service)或 Doc2Vec(例如:Gensim)为每个用户的兴趣列表创建一个向量吗?
例如: 的输入user_interests = ['python', 'photography', 'running']
将产生一个代表所有用户兴趣的单个向量,然后可以使用余弦相似度将其与其他用户的向量进行比较。
我试图解决的一些关键点:
- 鉴于我正在尝试匹配两个用户,理想情况下,我希望创建一个相似度得分(例如:我还考虑将每个兴趣转换为自己的向量,然后比较个人兴趣,但这会导致任何人的多个相似度得分两个用户。我不确定接下来我会做什么。)
- 鉴于每个兴趣列表可能包含许多不相关的术语,例如:
user_interests = ['python', 'photography', 'running']
为完整的术语列表创建一个向量是否有意义? - 与上述相同,BERT / Doc2Vec 是创建向量的有用模型吗?
- 我想为两个具有相关但不相等兴趣的用户保持较高的相似度分数,例如:
user_interests_1 = ['python', 'photography', 'running']
与user_interests_2 = ['coding', 'art', 'exercise']
解决方案
推荐阅读
- asp.net - 默认或自定义错误页面?- WebConfig 自定义错误 defaultRedirect
- python - Python - 读取每 x 行
- azure - 如何在 Azure Api 管理门户(开发者/发布者门户)的“管理内容”下的页面上添加变量?
- reactjs - 如何使用 redux 实现基于插件的架构
- abaqus - 在 Abaqus/Standard 分析中将初始值(边界条件)写入结果 (.fil) 文件
- python - Django Rest 框架说非必填字段是必需的
- python-3.x - 熊猫和天蓝色:DataFrame to_csv blob
- postgresql - 错误:SQL 插入命令中不存在列“exists”
- node.js - 获取最近 24 小时内更新的密钥列表
- java - 可执行 Jar 中的 Jar:jorg.apache.xmlbeans.XmlOptions.setEntityExpansionLimit(I) org.apache.poi.ooxml.POIXMLTypeLoader。