如何将自定义同义词列表输入到NLP模型中(优先使用Word2Vec)

我正在使用Word2Vec模型从我的数据中创建一个向量化器。我的数据包含自定义/业务定义的同义词列表,我希望我的NLP模型能够考虑这些同义词。例如,如果”A”是”B”的同义词,那么当我使用Word2Vec查找”A”的同义词时,它应该以100%的匹配度返回”B”。

只要能满足上述要求,我也可以尝试使用其他NLP模型。


回答:

由于你的同义词列表非常小,我建议你先训练你的模型,然后遍历你的同义词列表,在模型中重新分配每个同义词的词向量(并添加训练数据中不存在的任何词)。当然,这会破坏关于学习到的词向量的任何信息,这取决于你的使用场景,可能会成为一个问题。

一些替代方法:

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

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注