用于转换单词的 ML 模型

数据挖掘 神经网络 nlp 卷积神经网络
2022-03-03 06:42:07

我建立了输入有正确单词的模型。在输出时,可能是人写的单词(它包含一些错误)。我的训练数据集看起来是:

input - output  
hello - helo  
hello - heelo  
hello - hellou  
between - betwen  
between - beetween  
between - beetwen  
between - bettwen  
between - bitween

等等。在预处理过程中,我添加了一个单词失真的度量。然后我将字母硬编码为数字。我当前的模型使用 CNN。输入的神经元个数与训练数据集中最长的词相同,输出的神经元个数与训练数据集中的最长词相同。这个模型不能像我一样工作。输出上的字看起来不像我除了。例如。

input - output
house - gjrtdd

问题:

我怎样才能为这个任务建立/改进模型?CNN 是个好主意吗?我可以使用哪些其他方法来完成此任务?

2个回答

尝试一种完全不同的方法,使用生成对抗网络

为此,您需要:

  1. 发电机
  2. 鉴别器

参见方案(信用 O'Reilly):

在此处输入图像描述

方案中的“真实图像”块应该是您的训练数据集(或基本事实)。生成器应生成扭曲的单词,而鉴别器应根据您选择的标准验证单词是否“充分”扭曲,该标准可以是已知单词(数据库)和生成的单词之间的任何相似性度量。生成器和判别器都在训练阶段得到训练最终你将拥有两个训练好的网络,其中生成器对你的目的非常有用。

有用的来源:https ://deeplearning4j.org/generation-adversarial-network

您可以使用基于不同 RNN(例如 LSTM)类型的序列到序列模型。据我所知,seq2seq 模型已应用于拼写检查。您应该查看现有的拼写检查工作,并弄清楚如何在您的问题中使用它们。

也许您可以将正确的单词 - 拼写错误的单词对视为释义,并将问题作为释义生成任务来解决。