《自然语言处理学习之路》09 使用Gensim库构造词向量Word2Vector
书山有路勤为径,学海无涯苦作舟一、Gensim构造词向量1.1 数据预处理from gensim.models import word2vecimport logging# 自定义打印日志logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level = logging.INFO)原始语料raw_sente
·
书山有路勤为径,学海无涯苦作舟
一、Gensim构造词向量
1.1 数据预处理
from gensim.models import word2vec
import logging # 自定义打印日志
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level = logging.INFO)
原始语料
raw_sentences = ['the quick brown fox jumps over the lazy dogs','you go home now to sleep']
切分
sentences = [s.split() for s in raw_sentences]
print(sentences)
[['the', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dogs'], ['you', 'go', 'home', 'now', 'to', 'sleep']]
1.2 导入模型
min count(过滤低频词):
- 在不同大小的语料集中,我们对于基准词频的需求也是不一样的。譬如在较大的语料集中,我们希望忽略那些只出现过一两次的单词,这里我们就可以通过设置min count参数进行控制。一般而言,合理的参数值会设置在0~100之间
Size(设置神经网络层数目):
- size参数主要是用来设置神经网络的层数,Word2Vec中的默认值是设置为100层。更天的层次设置意味着更多的输入数据,不过也能提升整体的准确度,合理的设置范围为10~数百。基本上默认值100就很好了
model = word2vec.Word2Vec(sentences,min_count=1)
判断词之间的相似性
y1 = model.wv.similarity('dogs','you')
print(y1)
0.0048460397
二、基于维基百科数据构建词向量
维基百科数据下载
下载的格式是一个.xml.bz2的格式,需要用脚本文件将其转为txt文件
维基百科下载的数据是一个中文繁体的数据源,需要将繁体转为简体且还需要对文档进行分词的工作

利用opencc软件实现中文繁体转为中文简体,需要下载解压opencc的文件包
将解压的繁体的文件,复制到opencc的文件夹中
利用cmd命令行进去opencc进入安装目录
opencc -i wiki texts.txt -o test.txt -c t2s.json
-i指定是输入文件名和-o生成输出的文件名字
将分好词的文本进行词向量模型的构建
将构建好的词向量模型保存下来
model.save(‘path’)
三、相似度计算
from gensim.models import word2vec
en_wiki_word2vec_model = word2vec.load("wiki.zh.text.model")
testwords =["苹果",'数学','学术',"白痴",'篮球']
for i in range (5):
res = en_wiki_word2vec_model.most_similar(testwords[i])
print (testwords [i])
print (res)
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)