首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
英文拼写纠错: 在用户输入英文单词时,经常发生错误,我们需要
[问答题]
英文拼写纠错: 在用户输入英文单词时,经常发生错误,我们需要对其进行纠错。假设已经有一个包含了正确英文单词的词典,请你设计一个拼写纠错 的程序。
1)请描述你解决这个问题的思路;
2)请给出主要的处理流程,算法,以及算法的复杂度;
3)请描述可能的改进(改进的方向如效果,性能等等,这是一个开放问题)。
添加笔记
邀请回答
收藏(7)
分享
纠错
2个回答
添加回答
0
推荐
lunix01
(1)思路
:
字典以字母键树组织,在用户输入同时匹配
(2)
流程
:
每输入一个字母:
沿字典树向下一层,
a
)若可以顺利下行,则继续至结束,给出结果;
b)
若该处不能匹配,纠错处理,给出拼写建议
,
继续至
a
);
算法
:
1.
在字典中查找单词
字典采用
27
叉树组织
,
每个节点对应一个字母
,
查找就是一个字母
一个字母匹配
.
算法时间就是单词的长度
k.
2.
纠错算法
情况
:
当输入的最后一个字母不能匹配时就提示出错
,
简化出错处理,动态提示
可能 处理方法
:
(a)
当前字母前缺少了一个字母:搜索树上两层到当前的匹配作为建议;
(b)
当前字母拼写错误:当前字母的键盘相邻作为提示;(只是简单的描述,可
以有更多的)
根据分析字典特征和用户单词已输入部分选择
(a),(b)
处理
复杂性分析:影响算法的效率主要是字典的实现与纠错处理
(
a
)字典的实现已有成熟的算法,改进不大,也不会成为瓶颈;
(b)
纠错策略要简单有效
,
如前述情况,是线性复杂度;
(3)
改进
策略选择最是重要,可以采用统计学习的方法改进。
发表于 2014-10-25 00:26:13
回复(0)
0
董浩vcc
nihao
发表于 2015-09-16 16:12:17
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
系统设计
上传者:
fordchen
难度:
2条回答
7收藏
11387浏览
热门推荐
相关试题
大规模的字典中,需要词与词中间的搭...
查找
分布式
系统设计
百元难题
评论
(0)
假设一个 mp3 搜索引擎收录了 ...
百度
分布式
系统设计
百元难题
评论
(1)
系统设计题:设计一个服务调度管理器...
百度
高级算法
系统设计
评论
(1)
之前的经历中单品数据分析的经验丰富...
评论
(1)
什么样的人适合做数据分析
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题
字典以字母键树组织,在用户输入同时匹配
(2)
流程:
每输入一个字母:
沿字典树向下一层,
a)若可以顺利下行,则继续至结束,给出结果;
b)若该处不能匹配,纠错处理,给出拼写建议,继续至a);
算法:
1.在字典中查找单词
字典采用27叉树组织,每个节点对应一个字母,查找就是一个字母
一个字母匹配.算法时间就是单词的长度k.
2.纠错算法
情况:当输入的最后一个字母不能匹配时就提示出错,简化出错处理,动态提示
可能 处理方法:
(a)当前字母前缺少了一个字母:搜索树上两层到当前的匹配作为建议;
(b)当前字母拼写错误:当前字母的键盘相邻作为提示;(只是简单的描述,可
以有更多的)
根据分析字典特征和用户单词已输入部分选择(a),(b)处理
复杂性分析:影响算法的效率主要是字典的实现与纠错处理
(a)字典的实现已有成熟的算法,改进不大,也不会成为瓶颈;
(b)纠错策略要简单有效 ,如前述情况,是线性复杂度;
(3)改进
策略选择最是重要,可以采用统计学习的方法改进。