我正在尝试使用常见问题解答数据集进行数据增强。我通过WordNet查找最相似的词(特别是名词),并使用Spacy检查相似度来更换单词。我使用多个for循环遍历我的数据集。
import spacy
import nltk
from nltk.corpus import wordnet as wn
import pandas as pd
nlp = spacy.load('en_core_web_md')
nltk.download('wordnet')
questions = pd.read_csv("FAQ.csv")
list_questions = []
for question in questions.values:
list_questions.append(nlp(question[0]))
for question in list_questions:
for token in question:
treshold = 0.5
if token.pos_ == 'NOUN':
wordnet_syn = wn.synsets(str(token), pos=wn.NOUN)
for syn in wordnet_syn:
for lemma in syn.lemmas():
similar_word = nlp(lemma.name())
if similar_word.similarity(token) != 1. and similar_word.similarity(token) > treshold:
good_word = similar_word
treshold = token.similarity(similar_word)
然而,以下警告信息反复打印出来,我不明白为什么:
UserWarning: [W008]基于空向量评估 Doc.similarity。
是我的 similar_word.similarity(token)
出了问题,但我不知道为什么。我的 list_questions
形式如下:
list_questions = [您是否有纸质或其他书面说明来介绍您模型的详细信息?BERT 代码来源是哪里?一个句子向量有多大?]
我需要在循环中检查 token,还要检查 similar_word
,例如,在这里我仍然会收到错误提示:
tokens = nlp(u'dog cat unknownword')
similar_word = nlp(u'rabbit')
if(similar_word):
for token in tokens:
if (token):
print(token.text, similar_word.similarity(token))
token
。我已经编辑了我的帖子,并使用您的示例来显示错误。 - Jonor