尊敬的读者您好:笔者很高兴自己的文章能被阅读,但原创与编辑均不易,所以转载请必须注明本文出处并附上本文地址超链接以及博主博客地址:https://blog.csdn.net/vensmallzeng。若觉得本文对您有益处还请帮忙点个赞鼓励一下,笔者在此感谢每一位读者,如需联系笔者,请记下邮箱:zengzenghe@gmail.com,谢谢合作!

以前在做自然语言处理任务时,都是用别人训练好的词向量字典,感觉这一块依赖性太强了,怕会影响到后期的业务需求,所以最近没事就自己亲手做了一个属于自己的词向量字典。

1、如果需要本文源码请自行转向“https://download.csdn.net/download/vensmallzeng/11211311”。

2、笔者准备了两个语料库,一个是“倚天屠龙记.txt”还有一个是“English Corpora”,后者的数据量会远大于前者,所以为了方便实验,笔者选择了数据量少一点的前者即-倚天屠龙记.txt,它们的具体格式分别如下图所示:

倚天屠龙记.txt(笔者选用):

English Corpora:

3、在对语料数据进行训练之前,先要将语料中的句子进行分词并做数据清洗,因此这里写了一个cut_txt函数用于实现上述目的,其中主要功能代码如下:

句子分词部分:

数据清洗部分:

4、接下来就是用分好词的语料进行模型训练并生成词向量,因此这里写了一个model_train函数用于实现上述目的,其中主要功能代码如下:

5、最后就是写一个主函数,用于调用cut_txt函数实现分词,调用model_train函数产生词向量,并将获得的词及其对应的词向量按字典的格式写入文本文件中,另外还可以实现计算一些词之间的相似度以及获取其近义词功能。

词与词向量在文本文件中存储效果如下:

6、至此本文该写的就写完了。对于word2vec这个函数,更多的只是调用,所以在给这个函数传参数时,需要注意一下参数的含义,为此下面特意给出了各参数的含义以供参考。

    1.sentences:可以是一个List,对于大语料集,建议使用BrownCorpus,Text8Corpus或·ineSentence构建。2.sg: 用于设置训练算法,默认为0,对应CBOW算法;sg=1则采用skip-gram算法。3.size:是指输出的词的向量维数,默认为100。大的size需要更多的训练数据,但是效果会更好. 推荐值为几十到几百。4.window:为训练的窗口大小,8表示每个词考虑前8个词与后8个词(实际代码中还有一个随机选窗口的过程,窗口大小<=5),默认值为5。5.alpha: 是学习速率6.seed:用于随机数发生器。与初始化词向量有关。7.min_count: 可以对字典做截断. 词频少于min_count次数的单词会被丢弃掉, 默认值为5。8.max_vocab_size: 设置词向量构建期间的RAM限制。如果所有独立单词个数超过这个,则就消除掉其中最不频繁的一个。每一千万个单词需要大约1GB的RAM。设置成None则没有限制。9.sample: 表示 采样的阈值,如果一个词在训练样本中出现的频率越大,那么就越会被采样。默认为1e-3,范围是(0,1e-5)10.workers:参数控制训练的并行数。11.hs: 是否使用HS方法,0表示: Negative Sampling,1表示:Hierarchical Softmax 。默认为012.negative: 如果>0,则会采用negative samping,用于设置多少个noise words13.cbow_mean: 如果为0,则采用上下文词向量的和,如果为1(default)则采用均值。只有使用CBOW的时候才起作用。14.hashfxn: hash函数来初始化权重。默认使用python的hash函数15.iter: 迭代次数,默认为5。16.trim_rule: 用于设置词汇表的整理规则,指定那些单词要留下,哪些要被删除。可以设置为None(min_count会被使用)或者一个接受()并返回RU·E_DISCARD,uti·s.RU·E_KEEP或者uti·s.RU·E_DEFAU·T的函数。17.sorted_vocab: 如果为1(defau·t),则在分配word index 的时候会先对单词基于频率降序排序。18.batch_words:每一批的传递给线程的单词的数量,默认为10000

注:如果在建立自己的词向量库时报如下错误:

RuntimeError:you must first build vocabulary before training the model

一般是因为所给的训练语料不满足最低要求,说白了就是词太少了, 没有达到默认的最少计数 mincount

解决方法:

① 扩大语料规模或寻找一个合适大小的语料

② 修改min_count以适应自己的语料库规模

日积月累,与君共进,增增小结,未完待续。

获取Word2vec训练得到的所有词与词向量相关推荐

  1. 利用word2vec训练词向量

    利用word2vec训练词向量 这里的代码是在pycharm上运行的,文件列表如下: 一.数据预处理 我选用的数据集是新闻数据集一共有五千条新闻数据,一共有四个维度 数据集:https://pan.b ...

  2. word2vec训练中文词向量

    词向量作为文本的基本结构--词的模型.良好的词向量可以达到语义相近的词在词向量空间里聚集在一起,这对后续的文本分类,文本聚类等等操作提供了便利,这里简单介绍词向量的训练,主要是记录学习模型和词向量的保 ...

  3. word2vec训练词向量 python_使用Gensim word2vector训练词向量

    注意事项 Skip-Gram models:输入为单个词,输出目标为多个上下文单词: CBOW models:输入为多个上下文单词,输出目标为一个单词: 选择的训练word2vec的语料要和要使用词向 ...

  4. 使用word2vec训练中文词向量

    https://www.jianshu.com/p/87798bccee48 一.文本处理流程 通常我们文本处理流程如下: 1 对文本数据进行预处理:数据预处理,包括简繁体转换,去除xml符号,将单词 ...

  5. Python Word2vec训练医学短文本字/词向量实例实现,Word2vec训练字向量,Word2vec训练词向量,Word2vec训练保存与加载模型,Word2vec基础知识

    一.Word2vec概念 (1)Word2vec,是一群用来产生词向量的相关模型.这些模型为浅而双层的神经网络,用来训练以重新建构语言学之词文本.网络以词表现,并且需猜测相邻位置的输入词,在word2 ...

  6. Python word2vec训练词向量,电子病历训练词向量,超简单训练电子病历的词向量,医学电子病历词向量预训练模型

    1.词向量预训练模型的优势: (1)训练和保存含有语义信息的词向量,在用于模型训练之前,enbedding的过程同样带有语义信息,使模型训练的效果更好: (2)可以用预训练好的词向量模型直接计算两个词 ...

  7. 自然语言处理之使用gensim.Word2Vec训练词向量进行词义消歧

    自然语言处理之使用gensim.Word2Vec训练词向量进行词义消歧 NLP中进行词义消歧的一个非常方便且简单的方法就是训练词向量,通过词向量计算余弦值,来推断某个词在句子中的含义.python中的 ...

  8. Pytorch:jieba分词、hanlp分词、词性标注、命名实体识别、one-hot、Word2vec(CBOW、skipgram)、Word Embedding词嵌入、fasttext

    日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 文本预处理及其作用: 文本语料在输送给模型前一般需要一系列的预 ...

  9. 中文Word2Vec训练

    中文的词向量训练和英文的差不多,输入数据的格式都一样,均需要可迭代的句子列表.但有一点需要注意的是,在英文句子里,单词之间自然地就很清楚哪个是哪个单词了,而中文句子则不然,计算机需要知道哪个部分称之为 ...

最新文章

  1. 简洁版本 STP/RSTP/MSTP的区别以及各自的特点
  2. android opencv 书籍,opencv android
  3. 奔四的技术人,内心都有哪些波澜?
  4. 给自己新申请的阿里云服务器ECS免费搭建WDCP环境
  5. Delphi开发单机瘦数据库程序要点
  6. 【线段树】Optimal Insertion(CF751E)
  7. Linux中kobject的作用,Linux设备驱动模型-- 数据结构Kset/KObject
  8. 库论计量计算电池容量
  9. 干货!手把手教你搭建高可用架构
  10. 『每日AI』马化腾丨中国互联网已从C2C进化为KFC!
  11. 从零开始学习Java神经网络、自然语言处理和语音识别,附详解和简易版GPT,语音识别完整代码示例解析
  12. 王乐畅草书签名怎么写
  13. 服务器终端输出,服务器与终端数据交互程序
  14. cocos2d-x3.x实现屏幕画线并添加刚体属性
  15. 电子计算机与多媒体短文阅读答案,电子计算机和多媒体习题精选.doc
  16. 手机 听广播 不用 耳机 android,FM手机调频收音机无广告
  17. 借助 ONLYOFFICE 宏通过 OpenAI 数据填充单元格
  18. Linux运维提升之路
  19. 河南师范大学计算机研究生投档线,2020河南师范大学研究生分数线汇总(含2018-2019历年复试)...
  20. 关于虚拟现实叙事方式的终极入门指南

热门文章

  1. 自动驾驶分级 - 练习测验
  2. LT3759 宽输入电压范围升压 / 负输出 / SEPIC 控制器 可在输入电压低至 1.6V 的情况下工作...
  3. 【公告】C币兑换平台上线
  4. Guys, what is better than sex?
  5. 前窗玻璃膜贴了一周还有气泡_窗户贴膜怎么贴 玻璃膜有气泡怎么办
  6. 中国机器视觉产业业发展战略研究及投资方向分析报告2022-2027年
  7. 数据标准化方法z-score讲解(matlab)
  8. 饥荒开服(含各种踩雷)
  9. pytorch中的collate_fn 是什么作用
  10. Laravel + Laragon 搭建php项目