如何将预先训练的fastText向量转换为gensim模型

时间:2018-12-21 13:28:13

标签: python nlp gensim word2vec

如何将预先训练的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”对象不可迭代

1 个答案:

答案 0 :(得分:0)

根据Gensim文档,您可以使用gensim.models.wrappers函数进行以下操作:

  

从Facebook的本机快速文本加载隐藏输入的权重矩阵   .bin和.vec输出文件

这里是一个例子:

from gensim.models.wrappers import FastText

model = FastText.load_fasttext_format('wiki.vec')