如何检查单词是否具有矢量表示形式,并且python中的List表达式是否具有'if,if else'格式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何检查单词是否具有矢量表示形式,并且python中的List表达式是否具有'if,if else'格式相关的知识,希望对你有一定的参考价值。
我正在做一个NLP项目,在这里我试图在两个列表之间找到相似的项目。在进行相似度比较之前,我要检查特定单词是否存在矢量形式。
我在阅读Spacy文档后编写了以下代码。
import en_vectors_web_lg
nlp = en_vectors_web_lg.load()
mylist_x =['crank', 'spindle', '403 (b)','education']
mylist_y = ['engine','Blockchain','data','husk']
newlist=[]
for token1 in mylist_x:
list_to_sort = [(token1, token2, nlp(str(token1)).similarity(nlp(str(token2)))) for token2 in mylist_y if doc.vocab [token1].has_vector if doc.vocab [token2].has_vector else newlist.append['no match']]
sorted_list = sorted(list_to_sort, key = itemgetter(2), reverse=True)[:1]
print("here is the sorted_list", sorted_list)
我的问题有两个:
首先:我是否正确地理解了列表理解中的“ if if else”部分?是否可以在列表理解中执行“如果是其他条件”?
第二:我是否正确地调用doc.vocab部分来检查单词是否具有向量。
寻求帮助。预先感谢。
答案
您可以使用has_vector
检查令牌是否具有向量(它将返回boleean值):
tokens = nlp("dog cat mouse")
for token in tokens:
print(token.has_vector)
以上是关于如何检查单词是否具有矢量表示形式,并且python中的List表达式是否具有'if,if else'格式的主要内容,如果未能解决你的问题,请参考以下文章