使用gensim的Phraser和预先训练的矢量

时间:2018-01-04 13:09:29

标签: python machine-learning gensim phrase

我正在尝试使用预先训练过的单词嵌入,并考虑到短语。像GoogleNews-vectors-negative300.bin.gz这样受欢迎的预先培训的嵌入包含短语和单词的嵌入,例如New_York和两个unigrams NewYork的嵌入。天真的单词标记化和字典查找忽略了双字母嵌入。

Gensim提供了一个不错的Phrase模型,在给定文本序列的情况下,它可以学习紧凑的短语,例如New_York而不是两个unigrams NewYork。这是通过聚合和比较unigrams和bigram之间的计数统计数据来完成的。 1.是否可以将Phrase与预先训练好的嵌入结合使用,而无需估算其他地方的计数统计数据?

  1. 是否可以将Phrase与预先培训的嵌入结合使用,而无需估算其他地方的计数统计数据?
  2. 如果没有,有没有一种有效的方式来使用这些双字母?我可以想象一种使用循环的方法,但我相信它很难看(下面)。
  3. 这是丑陋的代码。

    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
    

0 个答案:

没有答案