当前位置:   article > 正文

Gensim 中 word2vec 函数的使用

model=word2vec.word2vec(sentences,min_count=1)输出词向量

Gensim 是我比较常用的一个 NLP 工具包,特别是其中的 word2vec 模块,它的具体 API 如下:

  1. class gensim.models.word2vec.Word2Vec(
  2. sentences=None,
  3. size=100,
  4. alpha=0.025,
  5. window=5,
  6. min_count=5,
  7. max_vocab_size=None,
  8. sample=0.001,
  9. seed=1,
  10. workers=3,
  11. min_alpha=0.0001,
  12. sg=0,
  13. hs=0,
  14. negative=5,
  15. cbow_mean=1,
  16. hashfxn=<built-in function hash>,
  17. iter=5,
  18. null_word=0,
  19. trim_rule=None,
  20. sorted_vocab=1,
  21. batch_words=10000,
  22. compute_loss=False)

模型创建

Gensim 中 word2vec 模型的输入是经过分词的句子列表,即是某个二位数组。但由于中文没有像英文那么自带天然的分词,所有这里我们简单采用 jieba 来进行分词处理。

  1. # 引入 word2vec
  2. from gensim.models import word2vec
  3. # 引入日志配置
  4. import logging
  5. logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
  6. # 引入分词工具
  7. import jieba
  8. # 引入数据集
  9. raw_sentences = ["但由于中文没有像英文那么自带天然的分词","所以我们第一步采用分词"]
  10. # 切分词汇
  11. sentences = []
  12. for s in raw_sentences:
  13. tmp = []
  14. for item in jieba.cut(s):
  15. tmp.append(item)
  16. sentences.append(tmp)
  17. # print(sentences)
  18. # 构建模型
  19. model = word2vec.Word2Vec(sentences, min_count=1)
  20. # 进行词向量输出
  21. model['中文']

但这种方法在数据集比较大的情况下会占用大量的 RAM,Gensim 本身只是要求能够迭代的有序句子列表,因此在工程实践中我们可以使用一些自定义的生成器,只在内存中保存单条语句,并且在导入内存之前进行分词操作。

Word2Vec 参数

  • sentences: 可以是一个 list,对于大型的预料集,我们建议使用
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/477613
推荐阅读
相关标签
  

闽ICP备14008679号