如何将预先训练的fastText向量转换为gensim模型? 我需要predict_output_word方法。
导入gensim 从gensim.models导入Word2Vec 从gensim.models.wrappers导入FastText
model_wiki = gensim.models.KeyedVectors.load_word2vec_format(“ wiki.ru.vec”) model3 = Word2Vec(sentences = model_wiki)
TypeError跟踪(最近的呼叫 最后) ----> 1 model3 = Word2Vec(sentences = model_wiki)#从语料库训练模型
〜/ anaconda3 / envs / pym / lib / python3.6 / site-packages / gensim / models / word2vec.py 在 init (自身,句子,语料库文件,大小,字母,窗口, min_count,max_vocab_size,样本,种子,工作者,min_alpha,sg,hs, 负数,ns_exponent,cbow_mean,hashfxn,iter,null_word,trim_rule, sorted_vocab,batch_words,compute_loss,回调,max_final_vocab) 765个回调=回调,batch_words = batch_words,trim_rule = trim_rule,sg = sg,alpha = alpha,window = window, 766 seed = seed,hs = hs,negative = negative,cbow_mean = cbow_mean,min_alpha = min_alpha,compute_loss = compute_loss, -> 767 fast_version = FAST_VERSION) 768 第769章谁是我的老公(四更)
〜/ anaconda3 / envs / pym / lib / python3.6 / site-packages / gensim / models / base_any2vec.py 在 init (自我,句子,语料库文件,工作者,vector_size, 时期,回调,batch_words,trim_rule,sg,alpha,窗口,种子, hs,负数,ns_exponent,cbow_mean,min_alpha,compute_loss, fast_version,** kwargs) 757提高TypeError(“您不能将生成器作为句子参数。尝试使用迭代器。”) 758 -> 759 self.build_vocab(句子=句子,corpus_file = corpus_file,trim_rule = trim_rule) 760自我训练( 761个句子=句子,corpus_file = corpus_file,total_examples = self.corpus_count,
〜/ anaconda3 / envs / pym / lib / python3.6 / site-packages / gensim / models / base_any2vec.py 在build_vocab(自我,句子,语料库文件,更新,progress_per, keep_raw_vocab,trim_rule,** kwargs) 934“”“ 935 total_words,corpus_count = self.vocabulary.scan_vocab( -> 936个句子=句子,corpus_file = corpus_file,progress_per = progress_per,trim_rule = trim_rule) 937 self.corpus_count = corpus_count 938 self.corpus_total_words = total_words
〜/ anaconda3 / envs / pym / lib / python3.6 / site-packages / gensim / models / word2vec.py 在scan_vocab(自我,句子,语料库文件,procedure_per,工作者, trim_rule)1569句子= LineSentence(corpus_file)
1570 -> 1571 total_words,corpus_count = self._scan_vocab(句子,progress_per,trim_rule)1572 1573 logger.info(〜/ anaconda3 / envs / pym / lib / python3.6 / site-packages / gensim / models / word2vec.py 在_scan_vocab中(自己,句子,progress_per,trim_rule)1538
vocab = defaultdict(int)1539checked_string_types = 0 -> 1540表示句子编号,如果未检查,则列举的句子数:1541(如果未选中)_string_types:1542
如果isinstance(句子,字符串类型):〜/ anaconda3 / envs / pym / lib / python3.6 / site-packages / gensim / models / keyedvectors.py 在获取项中(自身,实体) 337返回self.get_vector(entities) 338 -> 339 return vstack([实体中实体的self.get_vector(entity)]) 340 341 def 包含((自身,实体):
TypeError:“ int”对象不可迭代
答案 0 :(得分:0)
根据Gensim文档,您可以使用gensim.models.wrappers
函数进行以下操作:
从Facebook的本机快速文本加载隐藏输入的权重矩阵 .bin和.vec输出文件
这里是一个例子:
from gensim.models.wrappers import FastText
model = FastText.load_fasttext_format('wiki.vec')