在之前通过jieba分词统计出了各人物的出场次数的基础上,我们可以利用Gensim Word2vec进一步分析人物关系,
Gensim是自然语言处理中的一款具备多种功能的神器。Gensim是一款开源的第三方Python工具包,用于从原始的非结构化的文本中,无监督地学习到文本隐层的主题向量表达。它支持包括TF-IDF,LSA,LDA,和word2vec在内的多种主题模型算法,支持流式训练,并提供了诸如相似度计算,信息检索等一些常用任务的API接口,里面的语意推断分析相似词汇 功能非常著名。
基本概念
- 语料(Corpus):一组原始文本的集合,用于无监督地训练文本主题的隐层结构。语料中不需要人工标注的附加信息。在Gensim中,Corpus通常是一个可迭代的对象(比如列表)。每一次迭代返回一个可用于表达文本对象的稀疏向量。
- 向量(Vector):由一组文本特征构成的列表。是一段文本在Gensim中的内部表达。
- 稀疏向量(SparseVector):通常,我们可以略去向量中多余的0元素。此时,向量中的每一个元素是一个(key, value)的元组
- 模型(Model):是一个抽象的术语。定义了两个向量空间的变换(即从文本的一种向量表达变换为另一种向量表达)。
代码实现
import gensim
print('开始训练模型')
model = gensim.models.Word2Vec(sentence, size=300, window=3, min_count=10, workers=4)
print('训练完毕。正在将模型保存到本地')
model.save('xh.mode