组合单词嵌入以获得句子嵌入的更好方法

时间:2019-01-20 09:23:56

标签: deep-learning nlp text-processing word-embedding

我已经在许多kaggle内核和教程中看到,平均单词嵌入被认为可以嵌入句子。但是,我想知道这是否是正确的方法,因为它会丢弃句子中单词的位置信息。有没有更好的方法来结合嵌入?也许以特定方式将它们分层组合?

1 个答案:

答案 0 :(得分:1)

如果您需要一种简单但有效的方法,Sif embedding就是很好的选择。它平均句子中的单词向量,并删除其第一个主要成分。它比平均单词向量要好得多。该代码可在线here获得。这是主要部分:

svd = TruncatedSVD(n_components=1, random_state=rand_seed, n_iter=20)
svd.fit(all_vector_representation)
svd = svd.components_

XX2 = all_vector_representation - all_vector_representation.dot(svd.transpose()) * svd

all_vector_representation是数据集中所有句子的平均嵌入。

还存在其他ELMOTransformer等类似的复杂方法。