word2vec初探(用python简单实现)
为什么要用这个?
因为看论文和博客的时候很常见,不论是干嘛的,既然这么火,不妨试试.
如何安装
- 从网上爬数据下来
- 对数据进行过滤、分词
- 用word2vec进行近义词查找等操作
完整的工程传到了我的github上了:https://github.com/n2meetu/word2vec.git
运行结果:
需要安装的包,可以用pycharm的preference:
点「+」加号
同样,点「+」加号。过一会儿会提示你安装是否成功的。
整个的文件结构:
-语料(网上爬下来的)
-自定义词典
-主要的python文件
主要的py文件:
# -*- coding: utf-8-*- import jieba from gensim.models import word2vec # 去掉中英文状态下的逗号、句号 def clearSen(comment): comment = comment.strip(' ') comment = comment.replace('、','') comment = comment.replace('~','。') comment = comment.replace('~','') comment = comment.replace('{"error_message": "EMPTY SENTENCE"}','') comment = comment.replace('…','') comment = comment.replace('\r', '') comment = comment.replace('\t', ' ') comment = comment.replace('\f', ' ') comment = comment.replace('/', '') comment = comment.replace('、', ' ') comment = comment.replace('/', '') comment = comment.replace(' ', '') comment = comment.replace(' ', '') comment = comment.replace('_', '') comment = comment.replace('?', ' ') comment = comment.replace('?', ' ') comment = comment.replace('了', '') comment = comment.replace('➕', '') return comment # 用jieba进行分词 comment = open('./corpus/comment.txt').read() comment = clearSen(comment) jieba.load_userdict('./user_dict/userdict_food.txt') comment = ' '.join(jieba.cut(comment)) # 分完词后保存到新的txt中 fo = open("./corpus/afterSeg.txt","w") fo.write(comment) print("finished!") fo.close() # 用 word2vec 进行训练 sentences=word2vec.Text8Corpus(u'./corpus/afterSeg.txt') # 第一个参数是训练语料,第二个参数是小于该数的单词会被剔除,默认值为5, 第三个参数是神经网络的隐藏层单元数,默认为100 model=word2vec.Word2Vec(sentences,min_count=3, size=50, window=5, workers=4) y2=model.similarity(u"不错", u"好吃") #计算两个词之间的余弦距离 print(y2) for i in model.most_similar(u"好吃"): #计算余弦距离最接近“滋润”的10个词 print(i[0],i[1]) # 训练词向量时传入的两个参数也对训练效果有很大影响,需要根据语料来决定参数的选择,好的词向量对NLP的分类、聚类、相似度判别等任务有重要意义
清洗数据的clearSen()不要笑。萌新就是这样很傻很粗暴的……
相关推荐
lirika 2020-09-27
sxyhetao 2020-04-14
pySVNA 2019-12-24
yishujixiaoxiao 2019-10-30
快看是Charlie 2015-08-21
aaJamesJones 2019-07-01
WisdomXLH 2019-06-28
五小郎的学习笔记 2019-06-27
yukyinbaby 2019-06-27
yuzhou 2019-06-26
xiaocao0 2019-06-26
mori 2019-06-21
minerzhu 2019-05-21
FZUrxd 2019-03-29
lingpy 2017-12-14
cenylon 2018-09-05
manongpengzai 2018-09-05
Joyliness 2018-09-05