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

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

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


回答:

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

一些替代方法:

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

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

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