word2vec 如何处理看不见的/新词来绕过这个进行新的分类?

数据挖掘 机器学习 nlp 深度学习 词嵌入
2021-10-01 16:00:51

简单来说,如果我的分类是以word2vec为特征的,我该怎么办,如果来了一个新词,哪个没有word2vec?

我正在尝试使用 word2vec 或词向量进行基于实体的分类。

例如:

我必须将句子中的以下单词分类为:

"Google gives information about Nigeria"

在这里,我想将尼日利亚归类为位置。

假设我对每个单词都有很好的 word2vec 向量,根据我了解到的一些读数,循环神经网络可以用于此。因此,word2vec 将使用一种相似的词向量捕获大多数位置。

但我的问题是:

a) 假设那里有一个新位置。比方说,俄罗斯。那么,我需要为这个位置分配一个新的词向量吗?

b) 如果我的训练输入没有语法意义。例如,

“谷歌信息尼日利亚”。尼日利亚的其他一切都与非位置标签相关联。这种情况是否适用于在非语法句子中找到新位置。

2个回答

一种方法是使用上下文信息来表示每个单词以及 w2v 向量。您可以选择以您喜欢的任何方式表示此信息:添加另外 600 个维度(100D w2v 向量用于 3 个左右上下文词和 3 个右上下文词),再添加 100D 作为上下文向量的总和或您的上下文的任何其他固定长度表示。

当你训练时,你可以使用一个“word dropout”版本来利用这些信息。20% 的时间,将 w2v 向量设置为零,强制分类器使用上下文维度来表示单词。

当你遇到一个新词时,希望分类器学会使用上下文信息以及它学会使用 w2v 信息。

假设那里有一个新位置。比方说,俄罗斯。那么,我需要为这个位置分配一个新的词向量吗?

定义一个未知词向量,它将代表不在列表中的每个词。