我必须编写一个正确的名称拼写检查器。
我写了第一部分,语言模型检查器,但现在有最困难的部分,错误模型 P(W|C),即当作者指的是 C 时,W 被输入文本的概率。
为了解决它,我提出了最简单的解决方案,算法选择具有最小 Damerau-Levenshtein 距离的单词,如果有多个名称,算法必须选择最常见的名称。
该应用程序工作正常,但我想改进它。我想介绍一种从最常见的错误中学习的电子学习机器算法。我必须实现一个机器学习算法。
所以我开始思考如何做到这一点。
进入错误模型语言是否有可能找到一些模式:
- 单词中间有拼写错误的字母是最常见的,
- 用另一个元音拼错一个元音更容易,
- ... 很快...
我想将所有这些作为事实来实现。
另外,该算法可能用于文本识别或语音识别,因此我必须考虑:
- 同音字错误,例如 f 拼错 v 比 q 拼错 v 更常见
- 印刷错误,例如,将 i 拼错为 l 甚至 find !词内。
为了更好地解释问题:我们可以想象这两种情况。
- 第一个是当算法用于读取扫描的纸张时
- 另一种是算法用于语音识别时。
在第一种情况下,诸如发音相似的字母之类的错误的可能性更大,而在第二种情况下,印刷错误的可能性更大。由于我不知道我的算法将在其中工作的场景,我应该实现一个动态适应场景的算法,我的意思是如果出现错误,例如 g!useppe 可能性是 giuseppe (o.4) guseppe (o.6) 算法必须选择第一个,因为 ! 与 i 相似,我发现了很多类似的错误。
我认为解决方案是从错误中学习的机器学习算法。
第一个问题,我是否清楚地解释了我的问题?
如果是这样,哪种算法符合我的要求?
我在人工智能和机器学习方面的经验是有限的。