拼音检查python
#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的更多相关文章
- WingIDE Pro 7如何检查Python集成?
在开始使用某些代码之前,让我们确保Wing已成功找到您的Python安装.立即从“ 工具”菜单中打开Python Shell工具.如果一切顺利,它应该启动Python并向您显示Python命令提示符, ...
- 检查python模块是否成功安装
例如,检查HTMLTestRunner模块是否成功安装(血淋淋的例子) 一个模块未成功安装,在直接运行python程序是不会报错,但是会提示类似于以下的错误 AttributeError: 'xxxx ...
- Hanlp汉字转拼音使用python调用详解
1.hanlp简介 HanLP是一系列模型与算法组成的NLP工具包,由大快搜索主导并完全开源,目标是普及自然语言处理在生产环境中的应用.HanLP具备功能完善.性能高效.架构清晰.语料时新.可自定义的 ...
- Python开发环境Wing IDE如何检查Python集成
在使用Wing IDE开始代码编辑之前,必须先确保Wing IDE已经成功地找到用户的Python安装位置(如果用户同时安装有多个版本,那么Wing IDE将有限选择最新版).要对这个进行检查,需要调 ...
- python的__slots__节约内存的魔法;检查python每一行代码内存占用情况的工具
在Python中,每个类都有实例属性.默认情况下Python用一个字典来保存一个对象的实例属性.这非常有用,因为它允许我们在运行时去设置任意的新属性. 然而,对于有着已知属性的小类来说,它可能是个瓶颈 ...
- 检查python以及django是否安装配置成功
首先说明下,我使用pycharm作为开发的IDE,在第一次创建django项目的时候,会自动安装django包的.(网上也有很多单独安装的方法),环境变量配置成功后,就是用下面的方法检测安装成功与否. ...
- [译]如何检查python中的值是否为nan?
float('nan')是Nan不是一个数字,我该如何判断一个值为nan,有什么简单的方法么? 使用math.isnan()来进行判断 >>> import math >> ...
- 检查python标识符是否有效
- Python - 使用Pylint检查分析代码
1-简介 Home Page : https://www.pylint.org/ 检查语法错误,是否遵守编码风格标准.潜在的问题等: 支持自定义配置:例如显示或隐藏特定的警告,并且可以通过编写插件来添 ...
随机推荐
- redis 短信验证码
127.0.0.1:6379> get CERTIYCODESENDFORAPP.1101:18222202889 "\xac\xed\x00\x05sr\x00\x11java.ut ...
- Visual Studio下__cplusplus宏为199711L的问题
Visual Studio下__cplusplus宏为199711L的问题 / Zc:__ cplusplus(启用更新的__cplusplus宏) 该/ ZC:__ CPLUSPLUS编译器选项使_ ...
- Window 环境升级node版本
https://github.com/Kenshin/gnvm 下载gnvm,安装在node文件目录下 gnvm version 然后打开cmd命令行窗口,输入:gnvm update latest, ...
- easyui tree 点击state=closed节点,每次重新加载数据
http://blog.csdn.net/lovejavaloveworld/article/details/30052305 树控件读取URL.子节点的加载依赖于父节点的状态.当展开一个封闭的节点, ...
- 通过Flink实现个推海量消息数据的实时统计
背景 消息报表主要用于统计消息任务的下发情况.比如,单条推送消息下发APP用户总量有多少,成功推送到手机的数量有多少,又有多少APP用户点击了弹窗通知并打开APP等.通过消息报表,我们可以很直观地看到 ...
- 用node批量压缩html页面
最近在写一个用了layui的后台管理系统.因为某些原因,html,css,js都写在.html里,并且没有用到别的打包工具.所以写了一个用node命令批量压缩页面并且混淆js的小工具.node安装ht ...
- C++入门经典-例2.13-左移运算
1:代码如下: // 2.13.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> using ...
- spark 笔记 14: spark中的delay scheduling实现
延迟调度算法的实现是在TaskSetManager类中的,它通过将task存放在四个不同级别的hash表里,当有可用的资源时,resourceOffer函数的参数之一(maxLocality)就是这些 ...
- 洛谷P1983车站分级
洛谷\(P1983\)车站分级(拓扑排序) 目录 题目描述 题目分析 思路分析 代码实现 题目描述 题目在洛谷\(P1983\)上 题目: 一条单向的铁路线上,依次有编号为 \(1, 2, -, ...
- leetcode 82 删除排序列表中的重复元素II
与83类似,不过需要注意去除连续的重复片段的情况,如2 2 3 3这种情况,以及[1,1]这种情况下最终的cur为NULL,因此不能再令cur=cur->next; /** * Definiti ...