如何检查单词是否具有矢量表示形式,并且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'格式的主要内容,如果未能解决你的问题,请参考以下文章

Javascript Regex 检查 URL 是不是包含一个单词并且不包含另一个单词

如何使用fasttext对整个文本进行矢量化?

如何检查排列是不是具有相等的奇偶性?

Python - 比较 2 个单词并检查它们是不是是字谜

什么叫矢量数据

如何通过数组检查字符串是不是具有匹配的子字符串