【问题标题】:How can we feed our custom synonym word list to NLP model (Word2Vec is preferred)我们如何将自定义同义词列表提供给 NLP 模型(首选 Word2Vec)
【发布时间】:2021-05-15 14:37:25
【问题描述】:

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

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

【问题讨论】:

  • 我很困惑 - 是什么阻止您在向量化之前替换所有同义词或在训练后手动为同义词分配相同的词向量?
  • @CecilCox 感谢您的回复。手动操作是可能的,但数据量很大,我正在寻找一种解决方案,其中 NLP 模型可以将自定义同义词列表作为输入。关于不手动执行的任何想法?
  • 我可以了解一下规模吗?您的数据和同义词列表有多大?
  • 文档总数 - 200 万,每个文档平均有 800 个单词,因此总共 16 亿个单词。同义词列表大约有 21k 个单词

标签: machine-learning deep-learning nlp artificial-intelligence nltk


【解决方案1】:

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

一些替代方法:

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

【讨论】:

  • 要在这里倡导#4。
  • 感谢您的回答。这个问题是针对我匹配文档然后生成匹配分数的用例发布的。在我的例子中,TF-IDF 与 Sigmoid 内核相结合的得分比 Word2Vec 与余弦相似度相结合的得分更高。你能告诉我如何处理 TF-IDF + Sigmoid 内核的同义词。选项 4 似乎是一种可能性,但比这更好更快。 @CecilCox
  • 如果您使用的是 tf-idf,那么只需预处理您的文本。任何其他方法都只是试图近似您的列表,而且效果会很差。
猜你喜欢
  • 2020-03-07
  • 2021-03-12
  • 2021-12-15
  • 1970-01-01
  • 1970-01-01
  • 2020-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多