# 网传鹅厂面试题,英语单词拼写检查算法

# 比如输入hello, 却错误的输入了hellu, 找出出错的字母

# [email protected] Shellay

# 对词典中的每个词, 逐刺逐字母拓展Trie, 单词完结处结点用END符号标识

END = '$'

def make_trie(words):

trie = {}

for word in words:

t = trie

for c in word:

if c not in t:

t[c] = {}

t = t[c]

t[END] = {}

return trie

# 容错查找

# 实质上是对Trie的深度优先搜索,每一步加深时就消耗目标词的一个字母

# 当搜索到达某个结点时,分为不消耗容错数和消耗容错数的的情形,继续搜索知道目标词为空。

# 搜索过程中,用path记录搜索路径,该路径及为一个词典中存在的词,作为纠错的参考

# 最终结果即为诸多搜索停止位置的结点路径的并集

def check_fuzzy(trie, word, path='', tol=1): #tol为容错数

if word == '':

return [path] if END in trie else []

else:

p0 = []

if word[0] in trie:

p0 = check_fuzzy(trie[word[0]], word[1:], path+word[0], tol)

p1 = []

if tol > 0:

for k in trie:

if k != word[0]:

p1.extend(check_fuzzy(trie[k], word[1:], path+k, tol-1))

return p0 + p1

# 测试代码

words = ['hello', 'hela', 'dome']

t = make_trie(words)

print(t)

print(check_fuzzy(t, 'hellu'))

print(check_fuzzy(t, 'healu', tol=2))

python拼写检查_python 英语单词拼写检查算法相关推荐

  1. python测试代码_python英语单词测试小程序代码实例

    这篇文章主要介绍了python英语单词测试小程序代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 爬取了扇贝英语网,并制作了一个英语单词测试的 ...

  2. python快递分拣小程序_python英语单词测试小程序代码实例

    这篇文章主要简介了python英语单词测试小程序代码实例,文中通过示例代码简介的非常具体,对大家的学习或者工作具有一定的参考学习网上卖,需要的朋友可以学习下 爬取了扇贝英语网,并制作了一个英语单词测试 ...

  3. python英语词汇量测试_python英语单词测试小程序

    博主爬取了扇贝英语网,并制作了一个英语单词测试的小程序,还能生成错词本,一起来看下代码吧- import requests #扇贝网爬虫,获取英语单词 category_res=requests.ge ...

  4. python所用到的英语单词_用Python自制考研英语单词手册

    本文目标: 从考研英语往年真题中提取单词,统计单词出现次数,按照频数排序并写入表格文件 第一步 导入必要的库 其中re用于文本处理,jieba用于分词,pandas用于写入表格文件 1 2 3impo ...

  5. python需要的英语单词怎么写_如何删除Python中的非英语单词?

    我正在用Python做一个情感分析项目(使用自然语言处理).我已经从twitter收集了数据,并将其保存为CSV文件.该文件包含tweets,其中大部分是关于加密货币的.我清理了数据,但在使用分类算法 ...

  6. python编程技术解决英语单词测试(包括添加英文单词、查询英文单词和查询英文单词)以及绘制雷达图功能

    用如Tkinter或wxPython等GUI开发库开发程序用户界面,通过同用户界面交互,程序至少完成以下基本功能: 1.添加英文单词:能对单词添加多重中文释义,不同释义用逗号分开, 单词保存在txt文 ...

  7. python需要背的英语单词怎么写_学Python必须背的42个常见单词,看看你都会吗?...

    这42个单词是学习Python必须背会的单词,也是代码中常见的单词.希望你能都背下来!! 1. adult  [ˈædʌlt]  成年人 2. authentication [ɔːˌθentɪˈkeɪ ...

  8. python如何拼读英语单词怎么写_怎么用英标快速拼读英语单词,这些技巧你知道吗...

    怎么用英标快速拼读英语单词?我们都知道学习英语离不开英语单词,单词是我们学习英语的基础,一个人只有积累足够多的英语单词,才能更好的去学英语.首先就要从读英标开始,那么大家知道如何用英标快速拼读单词吗? ...

  9. python如何拼读英语单词-q开头的英语单词

    你是怎样记忆单词呢?你的记忆方法有效吗?每天记忆的单词有多少呢?你有对比过其他的方式吗?你知道最常用的英语单词有哪些呢?给你一组100个单词,看你还能记得多少?你又可以在多少时间内记住多少单词呢?如果 ...

  10. python log壁纸_python生成单词壁纸

    1.首先上结果: 其实就是一段简单的代码.加上英语单词表加上几张背景图生成许多类似的图片再设置成桌面背景,十分钟一换.有心的人闲的时候随手就能换换桌面背背单词.最不济也能混个脸熟. 3.上代码 #-* ...

最新文章

  1. 水利水电工程管理与实务电子版习题_水利水电工程管理与实务复习题集.pdf
  2. 关于routerOS设置PPPOE与HOTSPOT并存的说明
  3. python项目-推荐 10 个有趣的 Python 练手项目
  4. 编译原理实验报告_任意给定一个正规式 r (包括连接、或、闭包运算),根据 Thompson算法设计一个程序,生成与该正规式等价的 NFA N 。
  5. 软件设计和设计的问题
  6. MyBatis的学习之路(二)
  7. 分布式精华问答:分布式环境下如何保持数据一致性的?| 技术头条
  8. 管理后台--2.分类列表
  9. java输出目录节点_节点如果不存在,如何创建目录?
  10. linux常用命令笔记大全
  11. azure db 设置时区_关于Azure Cosmos DB(以前称为DocumentDB)的8件事
  12. cent mysql 配置,centos下MySQL安装配置
  13. 总结帖:“深度解析:清理烂代码”
  14. data标签怎么爬虫_scrapy爬虫笔记(1):scrapy基本使用
  15. DVWA-SQL Injection
  16. Suspending Methods【暂停方法队列说明】
  17. 19年6月六级翻译词汇
  18. 【记录一次windows技术学习】使用笔记本DOS命令搭建WLAN热点
  19. envoy做集中式egress sidecar
  20. android 编译libjpeg-turbo

热门文章

  1. 企业管理小故事【有问题4个管理小法则】
  2. TCP connection succeeded but Erlang distribution failed
  3. 最准通达信强势顶底指标公式 副图 源码
  4. 社区志愿者招募管理系统
  5. [导入]MPQ 文件系统完成
  6. matlab串联矩阵如何表示,MATLAB串联矩阵
  7. 如何正确的使用国产杀毒软件
  8. 解决kafka传输超大图片消费者接收失败问题
  9. WEB:小宁写了一个登陆验证页面,随手就设了一个密码。
  10. 解决 Please use the NLTK Downloader to obtain the resource