我有下面的代码,试图在两个列表之间找到相似的单词。为此,我使用了spacy的.similarity函数。
import en_vectors_web_lg
nlp = en_vectors_web_lg.load()
listx =['HSBC', 'JP Morgan',......] #500 words lists
listy = ['Currency','Blockchain'.......] #1000 words lists
s_words = []
for token1 in listy:
list_to_sort = []
for token2 in listx:
list_to_sort.append((token1, token2,nlp(str(token1)).similarity(nlp(str(token2)))))
sorted_list = sorted(list_to_sort, key = itemgetter(2), reverse=True)[0][:2]
s_words.append(sorted_list)
在运行上述代码时,我不断收到警告:UserWarning:[W008]基于空向量评估文档相似性”
我遇到了一些解决方案,例如设置环境变量“ SPACY_WARNING_IGNORE = W008”以抑制错误“ UserWarning:[W008]基于空向量评估文档相似性”
我的问题是在哪里以及如何设置此环境变量?
我正在使用Windows 10,Spyder IDE,Python 3.7和Spacy 2.2.5。
答案 0 :(得分:1)
您需要在代码中添加以下行来设置该环境变量:
import os
os.environ['SPACY_WARNING_IGNORE'] = 'W008'
答案 1 :(得分:0)
从spacy 2.3开始,您应该使用python中的标准warnings
模块来过滤警告:
import warnings
warnings.filterwarnings("ignore", message=r"\[W008\]", category=UserWarning)
如migration guide中所述。
答案 2 :(得分:0)
在使用 pytest 时,我在使用 Spacy 2.1 过滤警告时遇到了这个问题。我无法通过设置环境变量使其工作,但以下工作有效:
import spacy
spacy.errors.SPACY_WARNING_IGNORE.append('W008')