(1) 准备文本
可以用爬虫爬,也可以去下载,必须是全文本。
(2)对数据进行分词处理
因为英文但此只见是空格所以不需要分词,二中文需要分词,
中文分词工具还是很多的,我自己常用的:
- 中科院NLPIR
- 哈工大LTP
- 结巴分词
注意:分词后保存的文件将会作为word2vec的输入文件进行训练
(3)训练与实验
python 需要先安装gensim,参考http://blog.csdn.net/u013378306/article/details/54629643
#!/usr/bin/env python # -*- coding: utf-8 -*- """ 功能:测试gensim使用,处理中文语料 时间:2016年5月21日 20:49:07 """ from gensim.models import word2vec import logging # 主程序 logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO) sentences = word2vec.Text8Corpus(u"C:\\Users\\lenovo\\Desktop\\word2vec实验\\分词后的文件.txt") # 加载语料 model = word2vec.Word2Vec(sentences, size=200) # 训练skip-gram模型; 默认window=5 # 计算两个词的相似度/相关程度 y1 = model.similarity(u"不错", u"好") print u"【不错】和【好】的相似度为:", y1 print "--------\n" # 计算某个词的相关词列表 y2 = model.most_similar(u"书", topn=20) # 20个最相关的 print u"和【书】最相关的词有:\n" for item in y2: print item[0], item[1] print "--------\n" # 寻找对应关系 print u"书-不错,质量-" y3 = model.most_similar([u'质量', u'不错'], [u'书'], topn=3) for item in y3: print item[0], item[1] print "--------\n" # 寻找不合群的词 y4 = model.doesnt_match(u"书 书籍 教材 很".split()) print u"不合群的词:", y4 print "--------\n" # 保存模型,以便重用,保存后会生成一个文件,里面存的是语料库的向量 model.save(u"书评.model") # 对应的加载方式 # model_2 = word2vec.Word2Vec.load("text8.model") # 以一种C语言可以解析的形式存储词向量 model.save_word2vec_format(u"书评.model.bin", binary=True) # 对应的加载方式 # model_3 = word2vec.Word2Vec.load_word2vec_format("text8.model.bin", binary=True) if __name__ == "__main__": pass