仅打印空间中的前10个相似性

2024-04-23 17:31:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图计算两个列表之间的相似性。它们的大小差别很大(一个有10句话),另一个有2万句话。目标是让短列表中的每个句子在大列表中找到最相似的句子。你知道吗

我试着使用spacy,但我不能使用类似于most_similar的东西,只打印每个句子的前3个相似性(在这个测试中,只有前3个,有我的大量数据,前10个)。你知道吗

import spacy

little_list = ['nouveau livre révélant', 'bibliothèque pour la modélisation du sujet', 'potentiellement embarrassant']

big_list = ['plusieurs internationaux', 'quotidiens', 'il a grossi', 'pour rendre ces histoires disponibles', 'a aidé à prendre le contrôle', 'une catégorie pouvant inclure les emplois mêmes']

nlp = spacy.load("fr_core_news_sm")

little = list(nlp.pipe(little_list))
big = list(nlp.pipe(big_list))

scores = [(token1.text, token2.text, token1.similarity(token2)) for token2 in big for token1 in little]

import pandas as pd

df = pd.DataFrame(scores)

print(df)

我的输出:

                        0                          1           2
0   nouveau livre révélant  plusieurs internationaux    -0.131661
1   bibliothèque pour la modélisation du sujet  plusieurs internationaux    0.072430
2   potentiellement embarrassant    plusieurs internationaux    -0.267387
3   nouveau livre révélant  quotidiens  0.060414
4   bibliothèque pour la modélisation du sujet  quotidiens  0.036732
5   potentiellement embarrassant    quotidiens  -0.024117
6   nouveau livre révélant  il a grossi 0.243315
7   bibliothèque pour la modélisation du sujet  il a grossi -0.033608
8   potentiellement embarrassant    il a grossi 0.214442
9   nouveau livre révélant  pour rendre ces histoires disponibles   0.053788
10  bibliothèque pour la modélisation du sujet  pour rendre ces histoires disponibles   0.061164
11  potentiellement embarrassant    pour rendre ces histoires disponibles   0.045495
12  nouveau livre révélant  a aidé à prendre le contrôle    0.512961
13  bibliothèque pour la modélisation du sujet  a aidé à prendre le contrôle    0.372229
14  potentiellement embarrassant    a aidé à prendre le contrôle    0.118832
15  nouveau livre révélant  une catégorie pouvant inclure les emplois mêmes 0.159283
16  bibliothèque pour la modélisation du sujet  une catégorie pouvant inclure les emplois mêmes 0.191632
17  potentiellement embarrassant    une catégorie pouvant inclure les emplois mêmes 0.086039

我只想打印零栏句子的三个主要相似之处。你知道吗

我希望我能解释清楚!你知道吗


Tags: lemodlalistquedupournouveau
1条回答
网友
1楼 · 发布于 2024-04-23 17:31:18

好吧,我想我明白你的意思。你知道吗

从你和你的朋友在一起的地方。您可以按小列表中的句子分组,然后对组内的分数进行排序,并打印前三名。你知道吗

grouped = df.groupby(by=0, axis=0)

for sent1, group in grouped:
  print("Three most similar documents to: {sent1}\n")
  sorted_group = group.sort_values(by=2, ascending=False)
  print(sorted_group.iloc[:3, [1,2]])
  print('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n')

相关问题 更多 >