python中单词汇总_自动更正python中列表中的单词

您可以实现基于levenshtein distance的东西。

很显然,比伯离海狸还有很长的路要走,它们相距太远而无法

被认为是简单的拼写错误。 Damerau观察到80%的人类

拼写错误的编辑距离为1。换句话说,80%的

只需对原始内容进行一次修改,即可纠正拼写错误

字符串。

Elasticsearch支持最大编辑距离,该距离由

模糊参数,为2。

当然,一次编辑对字符串的影响取决于

字符串的长度。帽子一词的两次修改会产生疯狂的后果,

因此,允许对长度为3的字符串进行两次编辑是过分的。的

可以将模糊性参数设置为AUTO,这将导致

最大编辑距离:

0表示一个或两个字符的字符串

1,表示三个,四个或五个字符的字符串

2(表示五个以上字符的字符串)

我喜欢自己使用pyxDamerauLevenshtein。

pip install pyxDamerauLevenshtein

因此您可以执行一个简单的实现,例如:

keywords = ['tiger','lion','elephant','black cat','dog']

from pyxdameraulevenshtein import damerau_levenshtein_distance

def correct_sentence(sentence):

new_sentence = []

for word in sentence.split():

budget = 2

n = len(word)

if n < 3:

budget = 0

elif 3 <= n < 6:

budget = 1

if budget:

for keyword in keywords:

if damerau_levenshtein_distance(word, keyword) <= budget:

new_sentence.append(keyword)

break

else:

new_sentence.append(word)

else:

new_sentence.append(word)

return " ".join(new_sentence)

只需确保使用更好的令牌生成器,否则会很混乱,但是您明白了。另请注意,这是未优化的,并且在使用许多关键字的情况下会非常缓慢。您应该实现某种存储方式,以使所有单词与所有关键字都不匹配。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值