系列文章目录
Python深度学习-NLP实战:深度学习系列培训教程
- Linux服务器软件的简单使用
- Linux命令的简单使用
- 训练集、测试集、验证集的介绍及制作
- 字向量的训练与生成
- 文本分类之SVM模型的简单使用
- 文本分类之FASTTEXT实现中文文本分类
- 命名实体识别(NER)之分词与序列标注、实体识别任务简介
前言
由于神经网络计算过程为矩阵化向量化运算,因此需要先将语料中汉字进行向量化表示,即常说的进行字嵌入(Word Embedding)。
这一步操作既可以下载网络上预训练好的通用字向量,也可以自己根据特定的任务语料训练针对性更强的字向量,甚至可以直接跳过预训练,让神经网络模型自己去训练字向量。
当然,字向量的优劣对模型性能的高低会产生一定的影响。
按序安装所需的Python第三方库
- 字向量的训练需要借助Python的第三方库,包括
numpy-mkl
、scipy
、gensim
。 - 先使用
pip
命令安装,若出现找不到合适版本其他错误提示,则手动安装其whl文件,链接如下:
【python第三方库点我下载】
将语料制作成训练所需的word_list
待第三方库装好了后,将自己需要训练的任务语料,参考以下解释制作word_list
。
解释
训练字向量所需的word_list为二维列表,若待处理语料如下格式:
从明天起,做一个幸福的人
喂马,劈柴,周游世界
从明天起,关心粮食和蔬菜
我有一所房子,面朝大海,春暖花开
则word_list中元素结构为:
word_list = [
['从', '明', '天', '起', ',', '做', '一', '个', '幸', '福', '的', '人'],
['喂', '马', ',', '劈', '柴', ',', '周', '游', '世', '界'],
['从', '明', '天', '起', ',', '关', '心', '粮', '食', '和', '蔬', '菜'],
['我', '有', '一', '所', '房', '子', ',', '面', '朝', '大', '海', ',', '春', '暖', '花', '开']
]
即每一个小列表均由一个句子的单字组成(含标点符号)。
训练生成字向量文件
# 字向量训练代码
‘’‘
min_count=1 :最小字频,即频数大于等于1的字参与字向量训练
size=128 :设置的字向量维度为128维
’‘’
from gensim.models import word2vec
import codecs
model = word2vec.Word2Vec(word_list, min_count=1, size=128)
fw = codecs.open("word_vec.txt", "w", "utf-8")
fw.write(str(len(model.wv.vocab.keys())) + " " + "128")
fw.write("\n")
for k in model.wv.vocab.keys():
fw.write(k + " " + ' '.join([str(wxs) for wxs in model[k].tolist()]))
fw.write("\n")
print('done')
在正确环境下运行代码,待训练完成后,即在当前路径下生成“word_vec.txt”
字向量文件。
写在最后
【学习交流】
WX:WL1498544910
【文末小宣传】
----博主自己开发的小程序,希望大家点赞支持一下,谢谢!-----