如何以及在何处设置环境变量SPACY_WARNING_IGNORE = W008

时间:2019-12-15 12:42:02

标签: python-3.x nlp anaconda spyder spacy

我有下面的代码,试图在两个列表之间找到相似的单词。为此,我使用了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。

3 个答案:

答案 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')