我使用Word2Vec模型从我的数据中制作矢量器。我的数据有自定义/业务定义的同义词单词列表,我希望我的NLP模型应该考虑。例如if "A"是"B"的同义词。然后如果我试着找"A"的同义词;使用Word2Vec,它应该给出"B"100%匹配
如果我能达到上述要求,我也可以尝试不同的NLP模型。
由于您的同义词列表非常小,我建议您训练您的模型,然后遍历同义词列表,重新分配模型中每个同义词的单词向量(并添加训练数据中不存在的任何同义词)。这当然会破坏关于学习到的词向量的任何信息,这取决于你的用例可能是一个问题。
一些替代方法:
- 将单词向量重新分配给其组成同义词的组合(例如mean)。不幸的是,如果你的同义词已经有类似的向量,这种方法效果最好,我认为情况并非如此。一般来说,这可能会丢失比保留更多的语义信息。
- 添加同义词作为重复单词,(即,给定的单词将有两个向量,一个从训练数据推断,另一个等于它的同义词)。这保留了语义关系,但当您需要使用可能具有同义词的向量执行计算时,就会产生歧义。这个问题有多大取决于你的用例。
- 根据某些约束(同义词相等)对词嵌入应用投影。我从来没有尝试过这个,所以我不确定它如何影响你的模型,计算它有多困难,或者你需要优化什么目标函数。
- 预处理您的文本。是的,这需要一些时间,但是现在计算机很便宜。