拼音检查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/ 检查语法错误,是否遵守编码风格标准.潜在的问题等: 支持自定义配置:例如显示或隐藏特定的警告,并且可以通过编写插件来添 ...
随机推荐
- BZOJ 2870: 最长道路tree 树的直径+并查集
挺好的一道题. 把所有点都离线下来,一个个往里加入就行了. #include <cstdio> #include <algorithm> #define N 100003 #d ...
- CF 352 D 罗宾汉发钱 模拟题+贪心
D. Robin Hood time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- idea2018.3.6安装与破解教程(亲测可用、破解到2100年)
最近,帮室友进行idea安装,之前自己安装借鉴的博客已404,在网上找了好几个都无效,想着总结一份备用. 此博客是又找了一台电脑,边安装边写的. 目录 (已安装好的,可以直接看idea2018.3.6 ...
- Python实用黑科技——找出最大/最小的n个元素
需求: 快速的获取一个列表中最大/最小的n个元素. 方法: 最简便的方法是使用heapq模组的两个方法nlargest()和nsmallest(),例如: In [1]: import heapqIn ...
- R_Studio(癌症)以等宽类别值、自定义类别值、等频类别值(分为5类)
对“癌症.csv”中的肾细胞癌组织内微血管数进行连续属性的离散化处理 增加“微血管数分类1”属性,取值为等宽类别值(分为5类),增加“微血管数分类2”属性,取值为自定义类别值(0~40,41~60,6 ...
- C++入门经典-例4.10-使用static变量实现累加
1:静态变量static可以分为静态局部变量和静态全局变量,静态局部变量的值在函数调用结束后不消失,静态全局变量只能在本源文件中使用. 静态变量属于静态存储方式,它具有以下特点: (1)静态变量在函数 ...
- PriorityQueue源码阅读
最小堆:优先级权重越小 离顶点越近 案例 实现一个top max n publish static int[] topN(int[] nums, int l){ int[] result = new ...
- ctf活动结果
签到题:flag{0ca175b9c0f726831d895e269332461} 解题过程:使用winhex打开图片,查询到ANSI ASCII 得到结果 1.SimCTF{hello simple ...
- 2019java第十二周课程总结
本周主要还是学习图形界面 各种容器使用方法 如下代码: package text10; import java.awt.*; import java.io.File; import javax.swi ...
- tensorflow实现迁移学习
此例程出自<TensorFlow实战Google深度学习框架>6.5.2小节 卷积神经网络迁移学习. 数据集来自http://download.tensorflow.org/example ...