使用 LSTM 清除损坏的文本文件

数据挖掘 神经网络 nlp lstm
2022-02-13 04:54:17

LSTM 可以用来生成文本,它们可以用来修复损坏的文本文件吗?

说我原来是:

Alice was beginning to get very tired of sitting by her sister on the
bank, and of having nothing to do

现在变成了:

Alice0004 XGFT was beginning to get 900io ALPHA very tired 00New York 333 of siing XXXYYY by her siter on THIS IS 898 the
bank, and of &*& HHH GTY DOG AND CAT having nothing to do.

基本上,添加了很多废话(一些无意义的单词但也有有意义的单词,还有一些字母可能已被删除)。

LSTM 有什么办法可以解决这个问题吗?(也许通过事先清理一些,然后让 LSTM 做剩下的)

2个回答

您应该使用 Seq2Seq(使用 LSTM/GRU/RNN)架构来完成文本清理任务。编码器网络将接收“嘈杂”序列,解码器将生成“清理”序列。

Seq2Seq 模型通常用于神经机器翻译 (NMT)。

接下来是您将需要一个非常大的数据集。幸运的是,在文本序列中生成噪声注入(真实单词、符号、假词、字母遗漏等)应该不会太难。

类似任务的一个很好的指南在下面的帖子中。该实现使用 Keras 并拥有所有代码。https://towardsdatascience.com/how-to-create-data-products-that-are-magical-using-sequence-to-sequence-models-703f86a231f8

是的,你绝对可以试试。我建议您尝试字符级 LSTM,因为它有助于修复某些拼写错误。即使不是这样,您也可以尝试一个简单的尝试。LSTM 可能需要大量数据,所以我建议可能先使用一些基本规则,因为有很多未知单词。也许值得使用基于关键字的规则来消除无意义的单词。也许使用一些 Wordnet 并在英语词典中获取单词以获取现有单词。然后,使用 Levenshtein 距离或其他指标检查单词是否非常接近字典单词。