【NLP_向量表示】使用Word2Vec训练字向量
发布日期:2021-06-29 02:15:44
浏览次数:2
分类:技术文章
本文共 2421 字,大约阅读时间需要 8 分钟。
重要参考
原文作者提供了字向量、拼音向量、词向量、词性向量与依存关系向量,共5种类型的向量训练,
在此,只取其字符向量训练部分,加以修改后,做一记录。
完整代码
train_vector.py
在此,设置字向量维度为100。
#!/usr/bin/env python3# coding: utf-8# File: train.py.py# Author: lhy# Date: 18-10-26import osimport gensimfrom gensim.models import word2vecfrom sklearn.decomposition import PCAimport numpy as npimport logginglogging.basicConfig(format='%(asctime)s:%(levelname)s:%(message)s', level=logging.INFO)class TrainVector: def __init__(self): cur = '/'.join(os.path.abspath(__file__).split('/')[:-1]) # 训练语料所在目录 self.token_filepath = os.path.join(cur, 'F:\浏览器下载\ChineseEmbedding-master\yuliao.txt') # 向量文件所在目录 self.token_embedding = os.path.join(cur, 'F:\浏览器下载\ChineseEmbedding-master\\token_vec_300.bin') #向量大小设置 self.token_size = 100 '''基于gensimx训练字符向量,拼音向量,词性向量''' def train_vector(self, train_path, embedding_path, embedding_size): sentences = word2vec.Text8Corpus(train_path) # 加载分词语料 model = word2vec.Word2Vec(sentences, size=embedding_size, window=5, min_count=0) # 训练skip-gram模型,默认window=5 model.wv.save_word2vec_format(embedding_path, binary=False) '''训练主函数''' def train_main(self): #训练汉字字向量 self.train_vector(self.token_filepath, self.token_embedding, self.token_size)if __name__ == '__main__': handler = TrainVector() handler.train_main()
得到的字向量文件如下:
test_vector.py
测试效果(主观测试,无精确指标)
#!/usr/bin/env python3# coding: utf-8# File: test_vector.py# Author: lhy# Date: 18-11-1import osimport gensimfrom gensim.models import word2vecfrom sklearn.decomposition import PCAimport numpy as npimport logginglogging.basicConfig(format='%(asctime)s:%(levelname)s:%(message)s', level=logging.INFO)class TrainVector: def __init__(self): cur = '/'.join(os.path.abspath(__file__).split('/')[:-1]) self.token_embedding = os.path.join(cur, 'F:\浏览器下载\ChineseEmbedding-master\\token_vec_300.bin') '''对训练好的模型进行测试''' def test_model(self, embedding_path): model = gensim.models.KeyedVectors.load_word2vec_format(embedding_path, binary=False) while (1): wd = input('enter an word to search:') result = model.most_similar(wd) for res in result: print(res) returnif __name__ == '__main__': handler = TrainVector() handler.test_model('F:\浏览器下载\ChineseEmbedding-master\\token_vec_300.bin')
转载地址:https://blog.csdn.net/YWP_2016/article/details/115282253 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月16日 11时50分41秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
vmware vcenter converter(物理机转换虚拟机)
2019-04-29
解决Surface 网卡不识别
2019-04-29
回收站东西太多删不掉
2019-04-29
超融合与云计算的区别是什么?
2019-04-29
SuperSocket
2019-04-29
修改ant design的tooltip组件中的字体颜色(2分钟解决战斗)
2019-04-29
参观邓小平故居有感
2019-04-29
教你如何查看linux版本
2019-04-29
Linux下利用crontab执行任务
2019-04-29
RedHat Linux下注册Apache为系统服务
2019-04-29
使用LoadRunner监控Apache的步骤
2019-04-29
LoadRunner录制脚本时报加载GrooveUtil.dll出错的解决方法
2019-04-29
用Spotlight实时监控Windows Server 2008
2019-04-29
Tomcat 6.0.32中调整JVM大小及最大线程数
2019-04-29
Mysql数据库下载及安装
2019-04-29
MySql安装时解决要输入current root password的方法
2019-04-29
Linux下free命令详解
2019-04-29
Linux下启动rpc时提示Cannot register service: RPC: Unableto receive; errno = Connectionrefused的问题
2019-04-29
Google纪念遗传学之父孟德尔诞辰一百周年图标
2019-04-29