如何在python中编写一个程序,将给定的单词与文本进行比较?

时间:2017-10-10 17:21:17

标签: python

所以我需要在python中编写一个函数,它将输入的单词与文本进行比较,并为输入单词提供最近的'(距离最小)。

对于距离,我的意思是例如''和'到'距离为2因为我需要更换2个字母。

(PS:我刚刚开始学习编码,所以我不太了解这一点)

这两个代码是我已经拥有的代码,我已经对它们进行了测试,所以它是正确的

这是为了说明文字:

def get_words():
return re.findall(r'\w+', open('big.txt').read().lower())

然后我写了这篇文章,用单词出现的次数把这些单词放在dictonary中:

d=dict()
for token in get_words():
   if token in d:
       d[token]+=1
   else:
       d[token]=1


for key in d:
   if d[key]>5:
       print(key,d[key])

我的问题始于将单词与文本进行比较 这就是我所拥有的:

if distance(word_dict, word) <= 1:
     word = input('give a word')
     return (word_dict)
else:
  return ('no match')

2 个答案:

答案 0 :(得分:0)

你可以这样做:

>>> w1="the"
>>> w2="to"
>>> len([i for i in w1 if i not in w2])
2

比较两个单词......然后:

>>> txt1="this is the sentence"
>>> w1="to"
>>> txt1.split(" ")[min([len([i for i in w2 if i not in w1]) for w2 in txt1.split(" ")])] 
'the'

"the"是文字"to"中与txt1最接近的单词。这项工作是你的文字中每个单词之间只有一个空格... 因此,您应该根据文本调整它以获取文本中的单词列表,然后将此列表的每个元素与“输入单词”进行比较。

答案 1 :(得分:0)

您需要对文字中的每个单词进行评分,因此首先将文本拆分为单词,然后根据与给定单词的接近程度对其进行评分

现在您需要做的就是输出评分最高的单词

如果有两个具有相同评级但仍是基本逻辑的单词,您仍然需要弄清楚要做什么

祝你好运