书山有路勤为径,学海无涯苦作舟

一、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)
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐