#coding=utf-8
#!/usr/bin/python import sys, re, collections #读入文件
def read_file(filename):
try:
fp = open(filename)
text = fp.read()
except IOError:
print ("Error opening or reading input file: ",filename)
sys.exit()
return text #分割文件为单词,并将字母都转换为小写
def words(text):
return re.findall('[a-z]+', text.lower()) # 该函数计算输入文本每个单词出现的次数
def train(features):
# 生成了一个默认value=1的带key的数据字典
model = collections.defaultdict(lambda: 1)
for f in features:
model[f] += 1
return model # big文本中每一个单词及其出现的次数
NWORDS = train(words(read_file('/home/aistudio/data/data12892/big.txt'))) alphabet = 'abcdefghijklmnopqrstxyz'
# 变换输入单词形式,得到那种是最可能的错误
def edist1(word):
n = len(word)
return set([word[0:i]+word[i+1: ] for i in range(n)] + #删除
[word[0:i]+word[i+1]+word[i]+word[i+2: ] for i in range(n-1)] + #错位
[word[0:i]+c+word[i+1: ] for i in range(n) for c in alphabet] + #变换
[word[0:i]+c+word[i: ] for i in range(n+1) for c in alphabet]) #添加
# 在edist1的基础上进一步变换,要去是出现在字典内的词
def known_edist2(word):
return set(e2 for e1 in edist1(word) for e2 in edist1(e1) if e2 in NWORDS)
# big.txt中已知的单词集合
def known(words):
wordintxt = set([])
for w in words:
if w in NWORDS:
wordintxt.add(w)
return wordintxt
# return set(w for w in words if w in NWORDS) def correct(word):
candidates = known([word]) or known(edist1(word)) or known_edist2(word) or [word]
return max(candidates, key=lambda w:NWORDS[w]) print (correct("acacss"))

拼音检查python的更多相关文章

  1. WingIDE Pro 7如何检查Python集成?

    在开始使用某些代码之前,让我们确保Wing已成功找到您的Python安装.立即从“ 工具”菜单中打开Python Shell工具.如果一切顺利,它应该启动Python并向您显示Python命令提示符, ...

  2. 检查python模块是否成功安装

    例如,检查HTMLTestRunner模块是否成功安装(血淋淋的例子) 一个模块未成功安装,在直接运行python程序是不会报错,但是会提示类似于以下的错误 AttributeError: 'xxxx ...

  3. Hanlp汉字转拼音使用python调用详解

    1.hanlp简介 HanLP是一系列模型与算法组成的NLP工具包,由大快搜索主导并完全开源,目标是普及自然语言处理在生产环境中的应用.HanLP具备功能完善.性能高效.架构清晰.语料时新.可自定义的 ...

  4. Python开发环境Wing IDE如何检查Python集成

    在使用Wing IDE开始代码编辑之前,必须先确保Wing IDE已经成功地找到用户的Python安装位置(如果用户同时安装有多个版本,那么Wing IDE将有限选择最新版).要对这个进行检查,需要调 ...

  5. python的__slots__节约内存的魔法;检查python每一行代码内存占用情况的工具

    在Python中,每个类都有实例属性.默认情况下Python用一个字典来保存一个对象的实例属性.这非常有用,因为它允许我们在运行时去设置任意的新属性. 然而,对于有着已知属性的小类来说,它可能是个瓶颈 ...

  6. 检查python以及django是否安装配置成功

    首先说明下,我使用pycharm作为开发的IDE,在第一次创建django项目的时候,会自动安装django包的.(网上也有很多单独安装的方法),环境变量配置成功后,就是用下面的方法检测安装成功与否. ...

  7. [译]如何检查python中的值是否为nan?

    float('nan')是Nan不是一个数字,我该如何判断一个值为nan,有什么简单的方法么? 使用math.isnan()来进行判断 >>> import math >> ...

  8. 检查python标识符是否有效

  9. Python - 使用Pylint检查分析代码

    1-简介 Home Page : https://www.pylint.org/ 检查语法错误,是否遵守编码风格标准.潜在的问题等: 支持自定义配置:例如显示或隐藏特定的警告,并且可以通过编写插件来添 ...

随机推荐

  1. JS实现深拷贝的几种方法

    引 如何区分深拷贝与浅拷贝,简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那就是深拷贝,自食其力. 此篇文章中也会简单阐述到栈 ...

  2. Travis CI eval ./gradlew assemble 错误

    问题 在进行 Travis CI 进行集成编译的时候出现错误. <-------------> 0% WAITINGThe command "eval ./gradlew ass ...

  3. windows如何正确下载补丁包

    今天公司让给windows安装补丁,打开链接,我蒙蔽了,这么多包要下载哪个腻?下面来跟杨老师一起学习一下如何确定windows版本,下载正确的补丁包. 首先先看一下下载补丁的页面,懵~~ 登录你需要安 ...

  4. Pollard-rho算法[因子分解算法]

    试除法:最简单的因数分解算法,从$ 2 $到$ \sqrt n $一个一个试. 试除法(改进):从$ 2 $到$ \sqrt n $挑素数一个一个试. 然而这样复杂度是相当高的. 生日悖论:指如果一个 ...

  5. XStream详解

    XStream的作用 XStream可以把JavaBean对象转换成XML! 通常服务器向客户端响应的数据都是来自数据库的一组对象,而我们不能直接把对象响应给客户端,所以我们需要把对象转换成XML再响 ...

  6. http服务配置和apache

    CentOS 6 httpd 程序环境 记录了httpd的主进程编号:    主程序文件: /usr/sbin/httpd /usr/sbin/httpd.worker /usr/sbin/http ...

  7. 使用C#语言,将DataTable 转换成域模型

    DataTable dt = SqlHelper.Query(strQuery); ) * size).Take(pagesize); List<Model> listData = new ...

  8. 解决phpmyadmin出现: Maximum execution time of 300

    在mysql用phpmyadmin导入数据的时候出现: Fatal error: Maximum execution time of 300 seconds exceeded in ... 上网查了很 ...

  9. typescript 类(类的定义、继承、修饰符、抽象类)

    代码: // 本节内容 // 1.类的定义 // 2.类的继承 // 3.访问修饰符 // 4.静态属性和静态方法 // 5.抽象类和多态 // js // function Person(name) ...

  10. leetcode-easy-string-7 Reverse Integer

    mycode class Solution(object): def reverse(self, x): """ :type x: int :rtype: int &qu ...