【发布时间】:2021-09-07 19:15:06
【问题描述】:
在我的代码中,我想从一个句子中创建一个嵌套字典。在我的字典中,我有一个键,它是句子的一个单词,它的值是一个字典,它使用模糊匹配告诉我它与句子的其他单词的相似性。关键是,如果我们认为我的句子像
my_text = "Have you ever Want" 和我的输出为
{'拥有':{'你':0,'曾经':50,'想要':50},'你':{'拥有':0,'曾经':0,'想要':0 },'曾经':{'拥有':57,'你':0,'想要':33},'想要':{'拥有':50,'你':0,'曾经':33}}
我想删除重复的组合,例如曾经和曾经有过的组合,但我不知道怎么做!这是我的代码: '''
from fuzzywuzzy import fuzz
my_text = "Have you ever wanted"
str_list = my_text.split()
job_dict = {
k: {}
for k in str_list
}
# new_lst = []
for key in job_dict.keys():
job_dict[key] = {}
for key2 in job_dict.keys():
#print(key, key2)
if key == key2:
continue
job_dict[key][key2] = fuzz.partial_ratio(key, key2)
print(job_dict)
'''
【问题讨论】:
-
您提供的示例(拥有/曾经和曾经/拥有)具有不同的值/权重(50 和 57)。什么确定了可移动的候选人?
-
@jarmod 我可以通过在我的代码中使用 token_sort_ratio 而不是 partial_ratio 来解决这个问题。因此它们将具有相同的值,并且必须删除其中之一
-
顺便问一下,你想在这里实现什么?计算给定句子中的一个词与同一句子中的另一个词的相似度有什么价值?
-
@jarmord 首先我想知道我该怎么做,其次,如果这段代码有效,它不会应用于句子,它将应用于我的 mongodb 集合的字段有很多字符串。这是一个数据清理任务,我们需要知道单词的相似度
标签: python python-3.x dictionary