用gensim的短语和预训练向量

2024-04-24 13:12:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用预先训练的单词嵌入来考虑短语。流行的预训练嵌入,如GoogleNews-vectors-negative300.bin.gz对短语和unigram都有单独的嵌入,例如,New_York和两个unigramNew和{}。朴素的单词标记化和字典查找忽略了二元内存的嵌入。在

Gensim提供了一个很好的Phrase模型,在给定的文本序列中,它可以学习紧凑的短语,例如,New_York而不是两个单字New和{}。这是通过聚合和比较unigram和bigram之间的计数统计来完成的。1是否可以使用Phrase与预先训练的嵌入一起使用,而无需估计其他地方的计数统计信息?在

  1. 是否可以使用Phrase与预先训练的嵌入一起使用,而无需估计其他地方的计数统计信息?在
  2. 如果没有,有没有一种有效的方法来使用这些大图呢?我可以想象一种使用循环的方法,但我认为它很难看(见下文)。在

这是丑陋的代码。在

from ntlk import word_tokenize
last_added = False
sentence = 'I love New York.'
tokens =  ["<s>"]+ word_tokenize(sentence) +"<\s>"]
vectors = []
for index, token in enumerate(tokens):
    if last_added:
        last_added=False
        continue
    if "%s_%s"%(tokens[index-1], token) in model:
        vectors.append("%s_%s"%(tokens[index-1], token))
        last_added = True
    else:
        vectors.append(tokens[index-1])
        lase_added = False

Tags: token信息falseaddednewindex地方单词