gpt4 book ai didi

python-3.x - 在 python 中作为拼写检查器的 RNN-LSTM 数据集

转载 作者:行者123 更新时间:2023-12-03 21:24:52 25 4
gpt4 key购买 nike

我有超过 500 万条记录的数据集,其中包含许多噪声特征(单词)所以我想进行拼写校正和缩写处理。

当我在 python 中搜索拼写纠正包时,我得到了类似 autocorrect 的包, textblob , hunspell等和 Peter norvig's method

以下是我的数据集样本

Id      description
1 switvch for air conditioner..............
2 control tfrmr...........
3 coling pad.................
4 DRLG machine
5 hair smothing kit...............

我使用代码尝试了上述包的拼写纠正功能
dataset['description']=dataset['description'].apply(lambda x: list(set([spellcorrection_function(item) for item in x])))

对于整个数据集,完成拼写纠正需要 12 多个小时,而且它引入的噪音很少(占总单词的 20% 是重要的)

例如:在最后一行,“smothing”更正为“something”,但它应该是“smoothing”(在这种情况下我没有得到“something”)

走得更远

当我观察到数据集并非总是单词拼写错误时,数据集中某处也有拼写正确的实例。所以我用 dictionary对整个数据集进行标记并拆分正确的单词和错误的单词,在所有词对和相似值大于等于 0.93 的选定词对之间应用 jarowinkler 相似度方法
  Wrong word   correct word  similarity score
switvch switch 0.98
coling cooling 0.98
smothing smoothing 0.99

我得到了超过 50k 对类似的词,我把错误的词作为关键字,正确的词作为值放入字典中

我还在字典中保留了单词及其缩写列表(~3k 对)
 key     value
tfrmr transformer
drlg drilling

使用代码搜索和替换键值对
dataset['description']=dataset['description'].replace(similar_word_dictionary,regex=true)



dataset['description']=dataset['description'].replace(abbreviation_dictionary,regex=true)

这段代码只用了一天多的时间来完成我整个数据集的 10%,我发现这是效率不高的。

除了 Python 包,我还发现了 deep spelling这是一种非常有效的拼写纠正方法。RNN-LSTM 作为拼写检查器的解释非常清楚。

由于我对 RNN 和 LSTM 不太了解,因此我对上述链接有非常基本的了解。

问题

我很困惑如何考虑 RNN 的训练集来解决我的问题,
无论
  • 我需要将整个数据集中的正确单词(没有任何拼写错误)视为训练集,并将我的数据集的整个描述视为测试集。
  • 或一对相似的单词和缩写列表作为训练集和我的数据集的描述作为测试集(模型在描述中找到错误的单词并纠正它)

  • 或任何其他方式?有人可以告诉我如何进一步接近

    最佳答案

    您能否提供有关您正在构建的模型的更多信息?
    使用字符级序列来序列模型是有意义的,类似于 you would use for translation .已经有一些方法试图做同样的事情( 123 )。
    也许从它们中汲取灵感?

    现在,关于数据集,您尝试使用的数据集似乎主要有错误?如果您没有 正确 每个短语的版本,我认为你不能使用这个数据集。

    一种简单的方法是获取现有数据集并在其中引入随机噪声。 deep spelling blog讨论如何在现有的文本语料库中做到这一点。此外,我自己的建议是使用小型独立句子作为训练集。从机器翻译数据集(如 tatoeba 项目)中找到这些是一个好地方,并且只使用英语短语。其中,您可以创建成对( input_phrasetarget_phrase ),其中 input_phrase可能有噪音(但并非总是如此)。

    关于性能,首先 12 小时训练 1 次 5M 数据集听起来适合家用电脑。您可以使用 GPU 或云解决方案( 12 )进行更快的训练。

    现在对于误报更正,您创建的字典确实可以派上用场:如果此字典中存在某个单词,请不要接受模型对其的“更正”。

    关于python-3.x - 在 python 中作为拼写检查器的 RNN-LSTM 数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48996564/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com