Bigram向量表示使用word2vec技术

10

我想使用word2vec工具为文档构建单词嵌入。我知道如何找到与单个单词(unigram)对应的向量嵌入。现在,我想找到一个bigram的向量。是否可以使用word2vec构建bigram单词嵌入?如果可以,如何操作?


3
从gensim库中导入Word2Vec和Phrases模块。 - alvas
如果给出的答案解决了您的问题,请接受它以关闭问题或评论为什么不起作用! - eliasah
1个回答

8
以下代码片段可以让您获取一个二元组的向量表示。请注意,您想要转换为向量的二元组需要在单词之间使用下划线而不是空格,例如bigram2vec(unigrams, "this report") 是错误的,正确的应该是 bigram2vec(unigrams, "this_report")。有关生成单元词的更多详细信息,请参见 这里gensim.models.word2vec.Word2Vec 类。
from gensim.models import word2vec

def bigram2vec(unigrams, bigram_to_search):
    bigrams = Phrases(unigrams)
    model = word2vec.Word2Vec(bigrams[unigrams])
    if bigram_to_search in model.vocab.keys():
        return model[bigram_to_search]
    else:
        return None

1
这里的“unigrams”是什么? - Mehdi Abbassi
1
好问题,“unigrams”是表示为列表的语料库单词。更多详细信息和示例请参见此处:https://radimrehurek.com/gensim/models/phrases.html - Hamman Samuel
1
请注意,unigrams 必须是一个列表的列表。此外,model.vocab.keys() 不再可用。它被 model.wv.index_to_key 替换。 - Alaa M.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接