提问人:Sendagaijin 提问时间:11/8/2023 最后编辑:Sendagaijin 更新时间:11/8/2023 访问量:37
我使用 spaCy 和 pandas 得到了奇怪的重复结果
I'm getting strange, repeated results using spaCy and pandas
问:
我正在制作一个机器人来解决《纽约时报》的“连接”游戏。我正在尝试制作一个具有单词余弦相似性的矩阵,以便我可以检查哪些是最有可能的同义词,但是矩阵有重复行的奇怪现象,我无法弄清楚为什么。
这是我的代码:
nlp = spacy.load("en_core_web_md")
def synonym_detector(words):
#takes in a list of strings, calculates the cosine similarity between all words.
word_matrix = pd.DataFrame(columns = words, index = words)
vectors = [nlp(x) for x in words]
for i in range(len(vectors)):
for j in range(i+1, len(vectors)):
similarity = vectors[i].similarity(vectors[j])
word_matrix.loc[words[i],words[j]] = similarity
return word_matrix
synonym_detector(['DAISY', 'ROSE', 'TULIP', 'VIOLET', 'BARN', 'CHICKEN', 'FARMER', 'TRACTOR','ASTER', 'CARPENTER', 'CRAVEN', 'WAN','DUST', 'LIFE', 'SPORTS', 'YELLOW'])
奇怪的是,输出有重复的行,我不知道为什么。 此外,.similary 测试给了我一些奇怪的答案。例如
dust = nlp('dust')
yellow = nlp('yellow')
dust.similarity(yellow)
我得到 1.0。
感谢您的帮助!
答:
0赞
aab
11/8/2023
#1
具有默认向量(非小花向量)的模型对多个单词使用相同的向量以节省空间。如果要为向量表中的每个单词提供唯一的向量,请改用模型。md
lg
md
矢量是使用以下选项创建的: https://spacy.io/api/cli#init-vectorsprune
评论
dust.similarity(yellow)
为我返回 0.326034887199003。