2

我必须编写一个正确的名称拼写检查器。

我写了第一部分,语言模型检查器,但现在有最困难的部分,错误模型 P(W|C),即当作者指的是 C 时,W 被输入文本的概率。

为了解决它,我提出了最简单的解决方案,算法选择具有最小 Damerau-Levenshtein 距离的单词,如果有多个名称,算法必须选择最常见的名称。

该应用程序工作正常,但我想改进它。我想介绍一种从最常见的错误中学习的电子学习机器算法。我必须实现一个机器学习算法。

所以我开始思考如何做到这一点。

进入错误模型语言是否有可能找到一些模式:

  • 单词中间有拼写错误的字母是最常见的,
  • 用另一个元音拼错一个元音更容易,
  • ... 很快...

我想将所有这些作为事实来实现。

另外,该算法可能用于文本识别或语音识别,因此我必须考虑:

  • 同音字错误,例如 f 拼错 v 比 q 拼错 v 更常见
  • 印刷错误,例如,将 i 拼错为 l 甚至 find !词内。

为了更好地解释问题:我们可以想象这两种情况。

  • 第一个是当算法用于读取扫描的纸张时
  • 另一种是算法用于语音识别时。

在第一种情况下,诸如发音相似的字母之类的错误的可能性更大,而在第二种情况下,印刷错误的可能性更大。由于我不知道我的算法将在其中工作的场景,我应该实现一个动态适应场景的算法,我的意思是如果出现错误,例如 g!useppe 可能性是 giuseppe (o.4) guseppe (o.6) 算法必须选择第一个,因为 ! 与 i 相似,我发现了很多类似的错误。

我认为解决方案是从错误中学习的机器学习算法。

第一个问题,我是否清楚地解释了我的问题?
如果是这样,哪种算法符合我的要求?

我在人工智能和机器学习方面的经验是有限的。

4

1 回答 1

0

很难选择一个最有可能正确的拼写,这就是为什么大多数拼写检查器提供多种选项可供选择的原因。如果可能的话,我建议你也这样做。一个人甚至可以在没有任何统计学习的情况下侥幸逃脱——只需向用户提供每个可能的有效名称,以便它与输入之间的编辑距离低于某个给定值 N。

于 2012-09-13T13:55:11.473 回答