修复没有词典的语料库中拼写错误的单词

时间:2019-01-11 17:42:22

标签: deep-learning nlp nltk text-mining

我们拥有人类之间(任何语言,任何词汇)之间对话的历史,因此存在一些拼写错误:

"hellobb do u hav skip?" => "hello baby, do you have skype?"

在对此数据集(查找同义词等)执行深度学习任务之前,我想修复这些错误。

这是个好主意吗?我从来没有使用过如此糟糕的数据。想知道是否有一个“魔术解决方案”来实现这一目标。

否则我打算使用:

  • 单词嵌入(word2vec),以检查好词和坏词是否相似
  • 单词之间的距离函数
  • 如果wordA不太有名,那么fix(wordA)= wordB

1 个答案:

答案 0 :(得分:1)

目前尚无魔法解决方案来保证可修复文本上的所有拼写错误,但是您可以考虑以下一些可能的选择:

  • 基于字典的方法。在这种情况下,我发现Hunspell非常方便。它使用语言建模和Levenshtein距离来建议正确的拼写。它适用于许多自然语言和编程语言。尽管它是基于字典的方法,但它优于许多复杂的方法。它用于绝大多数文字处理应用程序。

  • 统计和传统方法。另一种可能的解决方案是开发自己的统计模型,例如language modeling。在字符级和单词级的大型语料库上训练语言建模可能会在文本上发现许多拼写错误。许多语音识别和搜索引擎都使用语言建模来解决拼写错误。

  • 深度学习方法。如果您查看NLPProgress.com,则大多数state-of-the-art research都使用seq2seq模型来攻击语法错误问题。这些模型背后的主要直觉是在句子对上训练神经网络,该网络学习如何修复语法错误。这些方法需要很多对语句才能给出可靠的结果。如果可用的语料库不适合您的需求,则可以生成自己的拼写错误,例如通过替换文本中的一些标记。