Machine learning 我们如何将自定义同义词列表提供给NLP模型(首选Word2Vec)

Machine learning 我们如何将自定义同义词列表提供给NLP模型(首选Word2Vec),machine-learning,deep-learning,nlp,artificial-intelligence,nltk,Machine Learning,Deep Learning,Nlp,Artificial Intelligence,Nltk,我使用Word2Vec模型从我的数据制作矢量器。 我的数据有自定义/商业定义的同义词列表,我希望我的NLP模型应该考虑。 例如,如果“A”是“B”的同义词,那么如果我尝试使用Word2Vec查找“A”的同义词,那么它应该给出100%匹配的“B” 如果我能够达到上述要求,我也可以尝试不同的NLP模型。由于同义词列表非常小,我建议您训练模型,然后循环浏览同义词列表,重新分配模型中每个同义词的词向量(并添加训练数据中不存在的任何同义词)。这当然会破坏任何关于学习词向量的信息,这取决于您的用例可能是一个

我使用Word2Vec模型从我的数据制作矢量器。 我的数据有自定义/商业定义的同义词列表,我希望我的NLP模型应该考虑。 例如,如果“A”是“B”的同义词,那么如果我尝试使用Word2Vec查找“A”的同义词,那么它应该给出100%匹配的“B”


如果我能够达到上述要求,我也可以尝试不同的NLP模型。

由于同义词列表非常小,我建议您训练模型,然后循环浏览同义词列表,重新分配模型中每个同义词的词向量(并添加训练数据中不存在的任何同义词)。这当然会破坏任何关于学习词向量的信息,这取决于您的用例可能是一个问题

一些替代办法:

  • 将词向量重新指定给其组成同义词的组合(例如,平均值)。不幸的是,如果你的同义词已经有了相似的向量,这种方法效果最好,我想情况并非如此。一般来说,这可能会丢失比保留更多的语义信息
  • 将同义词添加为重复词(即,给定的词将有两个向量,一个从训练数据推断,另一个等于其同义词)。这保留了语义关系,但在需要使用可能具有同义词的向量执行计算时会产生歧义。这个问题有多大取决于您的用例
  • 根据某些约束(同义词相等)对单词嵌入应用投影。我从未尝试过这一点,所以我不确定它对您的模型有何影响,计算起来有多困难,或者您需要优化什么目标函数
  • 对文本进行预处理。是的,需要一段时间,但是现在计算机很便宜

  • 我很困惑-是什么阻止了你在矢量化之前替换所有同义词,或者在训练后手动将同义词分配给同一个单词矢量?@CecilCox感谢你的回答。手动操作是可能的,但数据量很大,我正在寻找一种解决方案,NLP模型可以将自定义同义词列表作为输入。有没有想过不用人工操作?我能了解一下比例吗?你的数据和同义词列表有多大?文档总数-200万,每个文档平均有800个单词,总共有16亿个单词。同义词列表中大约有21k个单词,这里是#4的倡导者。谢谢你的回答。这个问题是针对一个用例发布的,在这个用例中,我匹配文档,然后生成匹配分数。在我的例子中,TF-IDF与Sigmoid核的结合比Word2Vec与余弦相似性的结合给出了更好的分数。你能告诉我怎么处理TF-IDF+Sigmoid内核的同义词吗。选择4似乎是一种可能性,但比这更好更快@Cecilcoxi如果您使用tf idf,则只需预处理您的文本。任何其他方法都只是一种尝试,只是为了接近你的列表,而且效果很差。