【发布时间】:2019-04-07 08:15:39
【问题描述】:
我正在尝试查找 5 个单词列表和 3500 个单词列表之间的单词相似度。
我面临的问题:
我拥有的5个单词列表如下
List_five =['cloud','data','machine learning','virtual server','python']
在3500字的列表中,有像
这样的字 List_threek =['cloud computing', 'docker installation', 'virtual server'.....]
Spacy 模型通过他们的“nlp”对象似乎将第二个列表中的标记分解为云、计算、文档、安装。
这反过来又会导致相似词出现不准确,例如当我运行以下代码时
tokens = " ".join(List_five)
doc = nlp(tokens)
top5 = " ".join(List_threek)
doc2 = nlp(top5)
similar_words = []
for token1 in doc:
list_to_sort = []
for token2 in doc2:
#print(token1, token2)
list_to_sort.append((token1.text, token2.text, token1.similarity(token2)))
我得到了(云,云)之类的结果,而我预期(云,云计算)。看起来“云计算”这个词被分成了两个单独的标记。
有什么解决方法吗?任何帮助表示赞赏。
我想要一个例外,即“云计算”等上下文相关的词不会像“云”、“计算”那样分成两个,而是保留为“云计算”
【问题讨论】:
标签: python-3.x nlp spacy cosine-similarity word-embedding