wiki百科词向量训练资料及其模型
wiki百科词向量训练模型
- 一、结果预览
- 二、作用
- 训练过程
- (一)下载问题解决
- 下载方式一:
- 下载方式二:
- 下载方式三:
- (二)训练过程的问题
一、结果预览
目标为求取python相关的内容为:
从结果上看,与python相关的内容为java、perl等编程语言
二、作用
个人简单理解:就是寻找相关的词,如上面的oython是一种编程语言,而perl、java等也是如此,但是又不是近义词,比如bash,bash是linux的命令处理器。
扩展用途:通过相关联的词进行分类、推荐(如广告推荐)、比较相似度等等;(个人觉得就是一个fuzzywuzzy更精确的版本)
理解可能不是很准确,可以参见以下:
关于其技术原理,可以参见链接: 全面理解word2vec.
训练过程
参见:: 《使用中文维基百科语料库训练一个word2vec模型》.
模型基本上也是参照这篇文章训练出来的,
(一)下载问题解决
只是相关工具下载过于困难,wiki资源最新的20200801的有2G左右,直接网页下载特别缓慢,换成迅雷只能享受几十秒的快速,接着也是几十kb的速度。
下载方式一:
首先下载idm,
就是这个
然后将网址导入idm
这个下载速度快点,大致在1mb左右
下载方式二:
使用闪电下载
下载速度大致也在1mb左右
下载方式三:
我将资源以及训练的模型放在了天翼云盘中,下载速度平均在8M左右,最快能有十几M,
但是麻烦的是需要注册
下载链接: 模型以及资源.
(二)训练过程的问题
训练时长在40多分钟左右,我的计算机比较老了,更好的计算机能更快点
1、训练时设置的一个参数,min_count=1,默认为5,这应该实在计算词语的频数,默认为5,即小于5的可能是被省略了,因而设为1可能更好,当然这取决于个人训练的模型的用途
def main():
print("开始....................")
start_time = time.time()
#logging.basicConfig(format="%(asctime)s:%(levelname)s:%(message)s", level=logging.INFO)
sentences = word2vec.LineSentence(r"---.txt".strip('\u202a'))
model = word2vec.Word2Vec(sentences, size=250,min_count=1)
# 保存模型
model.save(r"law1.model".strip('\u202a'))
end = time.time()
across = (end-start_time)/60
print(across)
2、训练时可能遇到报错
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xba in position 0: invalid start byte
这个报错的原因不明,因为预训练的内容就是utf-8写入的(不是wiki数据,而是另一个训练的模型中遇到这个报错)
解决方式就是另存一份utf-8的文件
3、模型预测时的问题
可能遇到KeyError:
KeyError: "word 'python' not in vocabulary"
在我训练的另一个模型中,对python进行模型预测,发现了这个问题。当然在wiki模型中,如果预测内容为:
["腾讯","阿里巴巴"]
也会出现这种报错:
KeyError: "word '腾' not in vocabulary" 或者 KeyError: "word '阿' not in vocabulary"
这是训练时某些字被去掉了,”腾“字不明白为什么,但是”阿“字可能在停用词处理就去掉了,因而训练时会出现一定的失误
解决方法,就是将该词训练进去
def solution_keyerror():
"""对模型更新"""
sentences = [["腾讯","腾讯","腾讯","腾讯","腾讯","腾讯","腾讯","腾讯","腾讯","腾讯","腾讯" ]]model = word2vec.Word2Vec.load('J:\PyCharm项目\项目\中国裁判文书网\word2ver裁判文书词向量\law.model')
print(model)
model.build_vocab(sentences, update=True) # prepare the model vocabulary
model.train(sentences, total_examples=model.corpus_count, epochs=model.iter)
print(model.most_similar("腾讯", topn=20))solution_keyerror()
结果为:
这个方法并不是我想到的,而是来源于链接: KeyError: “word ‘在行’ not in vocabulary”.
wiki百科词向量训练资料及其模型相关推荐
- Onehot_encode与Word2vec词向量训练
Onehot_encode与Word2vec词向量训练 1.编写onehot_encode函数 使用: class sklearn.preprocessing.OneHotEncoder(*, cat ...
- 【Pytorch基础教程37】Glove词向量训练及TSNE可视化
note Glove模型目标:词的向量化表示,使得向量之间尽可能多蕴含语义和语法信息.首先基于语料库构建词的共现矩阵,然后基于共现矩阵和GloVe模型学习词向量. 对词向量计算相似度可以用cos相似度 ...
- Gensim训练维基百科词向量模型(含代码)
由于平时会用到很多的文本预处理,这里就系统的讲解一下Gensim是如何训练维基百科词向量模型的!! 其中训练好的模型,也就是最终生成的 **.model 文件,可以作为预训练词向量使用. 训练维基百科 ...
- Windows下维基百科中文语料库词向量训练
Windows下维基百科中文语料库词向量训练 Garbage in,garbage out. 自然语言处理中,词向量的处理尤为重要.而生成词向量的好坏往往取决于语料库的训练,所以,语料库的选择十分 ...
- 十四、中文词向量训练一
1.Word2vec介绍 1.1 Word Embedding介绍 WordEmbedding将「不可计算」「非结构化」的词转化为「可计算」「结构化」的向量. 1.2 Word2vec 基本内容 Wo ...
- 十五、中文词向量训练二
中文词向量训练二 1. Gensim工具训练中文词向量 1.1 中文词向量过程 源程序:train_word2vec_model.py 执行方法:在命令行终端执行下列代码. python train_ ...
- word2vec词向量训练及中文文本类似度计算
本文是讲述怎样使用word2vec的基础教程.文章比較基础,希望对你有所帮助! 官网C语言下载地址:http://word2vec.googlecode.com/svn/trunk/ 官网Python ...
- python 词向量_利用python实现词向量训练----
python的一堆工具包 https://www.lfd.uci.edu/~gohlke/pythonlibs/ ------------------------------------------- ...
- ELMO中文词向量训练及使用的完整流程
笔者最近在学习elmo中文的词向量训练及使用,由于网上相关资料比较缺乏,也比较零碎,没有完整的从中文词向量的训练到使用的介绍,学起来困难较多.经过漫长的尝试,笔者终于将整套流程走通,相信应该是目前最完 ...
最新文章
- php作为文本进行处理,PHP处理文本和爬虫技巧
- AutoFac Ioc依赖注入容器
- 关于yum安装后提示There are no enabled repos Run yum repolist all..的问题解决
- 主键id 请求参数用什么类型_中小型项目用SpringBoot太大了,不如尝试下Martian
- java 1.6u29 下载_jdk1.6 64位下载|JDK 6(Java SE Development Kit)下载6u43 64位官方版_java运行环境 IT猫扑网...
- 【转】wifi的几种工作模式
- 配置nginx-rtmp流媒体服务器(宝塔面板配置教程)
- umask:默认权限分配的命令
- 永久linux修改内核打印级别,终端下更改printk打印级别
- 关于SVN更新时文件加锁的小结
- java出现中文乱码_JAVA中文显示乱码问题
- 亲测有效,推荐4款好用的录屏软件
- torch.erf()/gelu()/误差函数科普
- Windows10磁盘分区和扩展
- 蓝桥杯:国二选手经验贴 附蓝桥杯历年真题
- 同态加密中无符号数之间比较大小
- 【转租】【房东直租】【次渠东里一区、高层正规两居室、次卧】
- 文件共享服务器onedrive,共享 OneDrive 文件和文件夹
- sap客户信贷_SAP信贷控制功能与配置详解
- shell脚本 sh shebang “#!/bin/sh“