如何检查和纠正单词对数据中的拼写错误?

数据挖掘 机器学习 深度学习 数据清理 预处理
2022-02-14 07:26:20

我有用户生成的文本,其中包含通常包含拼写错误的端口名称和实际端口名称。我想更正用户生成的包含端口名称的文本的拼写错误。谁能帮我想出一些想法或要采取的步骤?也许使用 word2vec?循环神经网络?

先感谢您。

2个回答

重新构建问题的另一种方法是近似/模糊字符串匹配FuzzyWuzzy是 Python 的近似/模糊字符串匹配包。该包可以在一个集合中找到与用户输入值最近的元素,并且具有一定的置信度。像这样的东西:

from fuzzywuzzy import process

ports = {"Houston", "New York", "Newark", "Long Beach"}
user_input = "Strong Beach"
best_guess = process.extractOne(user_input, ports)
print(f"The best match for '{user_input}' is '{best_guess[0]}' which is a {best_guess[1]}% match.")

“Strong Beach”的最佳匹配是“Long Beach”,匹配率为 82%。

拼写检查实际上并不属于数据科学中的训练和预测模型领域。主要是因为在 word2vec/GloVe 的情况下嵌入需要已知的单词,在 doc2vec 的情况下需要已知的上下文,或者在 Fasttext 的情况下需要已知的词干,再加上非常大的训练数据集。相反,拼写检查是更传统的软件工程。它很广泛,但幸运的是,您可以从小处着手,然后一点一点地增加它。

如果单词是众所周知的,即常见的名词和代词,您可以使用类似于Python 中的自动更正的包,但如果您正在寻找特定的单词列表,在您的情况下端口是专有名词,您必须使用真正的拼写检查程序。由于这是一个广泛的主题,您应该从Stack Overflow提供的关于Peter Norvig 的帖子的答案开始,并根据您的需要从那里开始构建。