我正在尝试使用预先训练过的单词嵌入,并考虑到短语。像GoogleNews-vectors-negative300.bin.gz
这样受欢迎的预先培训的嵌入包含短语和单词的嵌入,例如New_York
和两个unigrams New
和York
的嵌入。天真的单词标记化和字典查找忽略了双字母嵌入。
Gensim提供了一个不错的Phrase模型,在给定文本序列的情况下,它可以学习紧凑的短语,例如New_York
而不是两个unigrams New
和York
。这是通过聚合和比较unigrams和bigram之间的计数统计数据来完成的。 1.是否可以将Phrase
与预先训练好的嵌入结合使用,而无需估算其他地方的计数统计数据?
Phrase
与预先培训的嵌入结合使用,而无需估算其他地方的计数统计数据? 这是丑陋的代码。
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