带有 TF-IDF 的 Word2Vec 嵌入

数据挖掘 机器学习 nlp word2vec 语言模型 tfidf
2021-10-13 02:08:31

当您训练 word2vec 模型(例如使用 gensim)时,您会提供一个单词/句子列表。但是似乎没有办法为例如使用 TF-IDF 计算的单词指定权重。

通常的做法是将词向量嵌入与相关的 TF-IDF 权重相乘吗?或者 word2vec 能以某种方式有机地利用这些优势吗?

2个回答

Word2Vec 算法(Skip Gram 和 CBOW)平等对待每个词,因为它们的目标是计算嵌入。当需要处理句子或文档嵌入时,这种区别变得很重要:并非所有单词都平等地代表特定句子的含义。这里应用了不同的权重策略,TF-IDF 就是其中之一,根据一些论文,它非常成功。来自StackOverflow 的这个问题

在这项工作中,推文使用三种类型的文本表示进行建模。第一个是由 tf-idf(词频 - 逆文档频率)加权的词袋模型(第 2.1.1 节)。第二个通过平均所有单词(在句子中)的词嵌入表示一个句子,第三个通过平均所有单词的加权词嵌入表示一个句子,单词的权重由 tf-idf 给出(第 2.1.2 节) )。

使用您的语料库训练 tfidfvectorizer 并使用以下代码:

tfidf = Tfidfvectorizer () dict(zip(tfidf.get_feature_names(), tfidf.idf_)))

现在你有了一个字典,其中单词作为键,权重作为对应的值。

让我知道它是否有效。