【NLP_向量表示】使用Word2Vec训练词向量
发布日期:2021-06-29 02:15:44
浏览次数:2
分类:技术文章
本文共 2180 字,大约阅读时间需要 7 分钟。
重要参考
完整代码
import jieba.analyseimport codecs#以写的方式打开原始的简体中文语料库f=codecs.open('D:\Asian elephant\\biye\Spatial relation extraction\Train word vectors yourself\yuliao.txt','r',encoding="utf8")#将分完词的语料写入到wiki_jian_zh_seg-189.5.txt文件中target = codecs.open("D:\Asian elephant\\biye\Spatial relation extraction\Train word vectors yourself\yuliao_fencihou.txt.txt", 'w',encoding="utf8")print('open files')line_num=1line = f.readline()#循环遍历每一行,并对这一行进行分词操作#如果下一行没有内容的话,就会readline会返回-1,则while -1就会跳出循环while line: print('---- processing ', line_num, ' article----------------') line_seg = " ".join(jieba.cut(line)) target.writelines(line_seg) line_num = line_num + 1 line = f.readline()import loggingimport os.pathimport sysimport multiprocessingfrom gensim.models import Word2Vecfrom gensim.models.word2vec import LineSentence#程序的入口#1.如果当前脚本文件做模块供其他程序使用的话,不会执行if __name__ == '__main__':中的内容#2.如果直接执行当前的额脚本文件的话,执行if __name__ == '__main__':中的内容#1.os.path.basename('g://tf/code') ==>code#2.sys.argv[0]获取的是脚本文件的文件名称program = os.path.basename(sys.argv[0])#指定name,返回一个名称为name的Logger实例logger = logging.getLogger(program) #1.format: 指定输出的格式和内容,format可以输出很多有用信息, #%(asctime)s: 打印日志的时间 #%(levelname)s: 打印日志级别名称 #%(message)s: 打印日志信息logging.basicConfig(format='%(asctime)s: %(levelname)s: %(message)s')logging.root.setLevel(level=logging.INFO) #打印这是一个通知日志logger.info("running %s" % ' '.join(sys.argv)) # check and process input arguments #inp:分好词的文本 #outp1:训练好的模型 #outp2:得到的词向量inp, outp1, outp2 = [ "yuliao_fencihou.txt.txt", "model_name.model", "word2vec.vector"]''' LineSentence(inp):格式简单:一句话=一行; 单词已经过预处理并被空格分隔。 size:是每个词的向量维度; window:是词向量训练时的上下文扫描窗口大小,窗口为5就是考虑前5个词和后5个词; min-count:设置最低频率,默认是5,如果一个词语在文档中出现的次数小于5,那么就会丢弃; workers:是训练的进程数(需要更精准的解释,请指正),默认是当前运行机器的处理器核数。这些参数先记住就可以了。 sg ({0, 1}, optional) – 模型的训练算法: 1: skip-gram; 0: CBOW alpha (float, optional) – 初始学习率 iter (int, optional) – 迭代次数,默认为5'''model = Word2Vec(LineSentence(inp), size=100, window=5, min_count=0, sg=1,workers=multiprocessing.cpu_count())model.save(outp1) #不以C语言可以解析的形式存储词向量model.wv.save_word2vec_format(outp2, binary=False)
训练结果
分词结果(不佳)
向量结果
转载地址:https://blog.csdn.net/YWP_2016/article/details/115281006 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月26日 16时36分52秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Linux下的图形库curses写贪吃蛇,酷
2019-04-27
【毕业设计】自动泊车系统(APS)记录
2019-04-28
UVA 10100- Longest Match(dp之最长公共子序列)
2019-04-28
SDUT 3364-数据结构实验之图论八:欧拉回路(并查集)
2019-04-28
图的基础(C++)
2019-04-28
journal of neuroscience:面孔的神经表征与眼动模式相协调
2019-04-28
The Neuroscientist:运动性脑震荡的长期影响
2019-04-28
机器学习实战学习笔记一
2019-04-28
【vn.py】 策略实盘自动交易
2019-04-28
仿牛客社区项目2.5登录模块———登录退出功能
2019-04-28
LeetCode 190. 颠倒二进制位
2019-04-29
LeetCode 268. 丢失的数字
2019-04-29
LeetCode 231. 2 的幂
2019-04-29
[经典排序算法][集锦]
2019-04-29
无处不在的二分查找
2019-04-29
Java集合框架List,Map,Set等全面介绍
2019-04-29
Java 泛型(二) 泛型之中的通配符(Wildcards)使用
2019-04-29
7-36 复数四则运算 (15 分)
2019-04-29
基于powershell的渗透测试工具nishang
2019-04-29