首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文本中的异常

文本中的异常
EN

Stack Overflow用户
提问于 2011-04-15 15:14:51
回答 3查看 219关注 0票数 4

让我举个例子来解释一下。我们有以下文本:

Comme Il Faut成立于1927年。该烟草公司以为其全球合作伙伴生产定制的自有品牌而闻名。

这是普通文本。而是下面的文本:

“1927年的CommeIlFautwasfounded。这家烟草公司以为其全球合作伙伴生产定制的私人标签而闻名。”

这是文本异常:打字错误,没有空格的单词,可能还有其他东西。

如何搜索这样的异常?

有什么算法可以解决这个问题(统计)?

希望结果是一个百分比:例如,80%的异常。

谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-15 16:16:59

构建一个包含字典中所有已知单词的Trie树。获取文本中出现的每个单词,并尝试在Trie树中找到它。如果您没有找到它,那么尝试匹配长度为-k的前缀。如果找到匹配项,则对其余k个字符应用相同的过程。它是递归的,可以捕获两个以上的连接单词

票数 1
EN

Stack Overflow用户

发布于 2011-04-15 19:06:12

另一种简单的方法是使用edit distance algorithm。此算法计算将字符串转换为另一个字符串所需执行的编辑操作(插入、删除或替换)的最小数量。通过一些额外的逻辑,您也可以很容易地让此算法输出操作。

但是,这假设您既有正确的字符串,也有损坏的字符串。如果你只有断掉的弦,这就更难了。在这种情况下,我建议您尝试前面提到的trie方法,或者使用ispell等外部库来处理此逻辑。您可以查看ispell或其变体的代码,以了解此类任务可能会变得多么复杂。

票数 1
EN

Stack Overflow用户

发布于 2011-04-15 15:31:43

下面几个链接可能会有帮助:

http://www.codeproject.com/KB/cs/spellcheckdemo.aspx

http://www.codeproject.com/KB/recipes/spellcheckparser.aspx

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5673502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档