贝叶斯检查器

自提供代码阅读

#贝叶斯检查器
import re,collections
#Check 用来转换输入字母大小写
def Check(test):
return re.findall('[a-z]+',test.lower())
#Testing 判断输入值出现多次或零次
def Testing(determine):
model=collections.defaultdict(lambda:1)
for i in determine:
model[i]+=1
return model
#storage 读取字符集,的得到字符,计算次数
#storage=Testing(Check(open('D:/wang/big.txt').read()))
storage=Testing(Check(open('D:/wang/big.txt').read()))
#a-z字符
character='abcdefghijklmnopqrstuvwxyz'
#进行距离计算和转换字符
def Transformation(num):
data=len(num)
return set([num[0:i]+num[i+1:]for i in range(data)]+
[num[0:i]+num[i+1]+num[i]+num[i+2:]for i in range(data-1)]+
[num[0:i]+j+num[i+1:]for i in range(data)for j in character]+
[num[0:i]+j+num[i:]for i in range(data+1)for j in character]
)

#对词进行候选把正确的词刷选出来
def Transformation2(absolute):
return set(item for it in Transformation(absolute)for item in Transformation(it)if item in storage)
#进行正确计算
def Brush(up):return set(w for w in up if w in storage)
def Result(word):
charbost=Brush([word]) or Brush(Transformation(word)) or Transformation2(word) or [word]
return max(charbost,key=lambda w:storage[w])
print(Result('appl'))



转载于:https://www.cnblogs.com/chunqing/p/9342717.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值