赞
踩
1 文本预处理及其作用
定义:文本送给模型之前,提前要做的工作
作用:指导模型超参数的选择 、提升模型的评估指标
举个例子:
文本预处理 工作 结束 的标志:准备出来X和Y 能送给模型
2 文本预处理的主要环节
1 文本处理的基本方法
分词:按照一定规则对文本重新划分,进行分词
词性标注:把文本序列标注出来动词、名词、形容词这个过程词性标注
命名实体识别:把专有名词(人名、地名、机构名)给识别出来。
2 文本张量表示方法: 就是把我们的单词转成数值化的数据 张三【88,87, 86 ,85, 84】文本数值化、数值张量化
one-hot编码: low 稀疏词向量表示
Word2vec:稠密词向量表示
Word Embedding:稠密词向量表示
3 文本语料的数据分析:就是对数据的x y进行分析
标签数量分布:对y:十分类:类别是不是均衡
句子长度分布:对x:文本长度有的是100个长度,有的是200,
词频统计与关键词词云:形容词词云
4 文本特征处理:我 爱 北京 天安门
添加n-gram特征 【101,102,103,104,105】:105代表【北京 天安门】相邻共现,可以作为一个新的特征加入到文本序列中;增强模型对文本序列特征抽取
文本长度规范:有些模型送入的数据长度不能超过512
5 数据增强方法: 数据不够,看如何增加语料
3 思考题,文本处理的主要环节中,哪一些环节是第一个要做的?
分词定义和作用:
流行分词工具jieba
结巴分词编程api
三种模式
jieba.lcut(content, cut_all=False) 精确模式
jieba.lcut(content, cut_all=True) 全模式
jieba.cut_for_search(content) 搜素引擎模式
中文繁体分词
用户自定义词典
jieba.load_userdict('./userdict.txt')
mydata2 = jieba.lcut(sentence)
什么是命名实体识别 (NER)
词性标注
什么是one-hot词向量表示
定义: 有一个位置是1 其他全部是零
编程api
mytokenizer.fit_on_texts(vocabs) # 生成两个表 word2idx idx2word
zero_list = [0] * len(vocabs)
zero_list[idx] = 1
joblib.dump(mytokenizer, './mytokenizer')
mytokenizer = joblib.load('./mytokenizer')
# oov单词问题
one-hot编码的优劣势:
什么是word2vec
word2vec概念
CBOW(Continuous bag of words)模式:
skipgram词向量训练模型
使用fasttext工具实现word2vec的训练和使用
第一步: 获取训练数据
wikifil.pl 文件处理脚本来清除XML/HTML格式的内容
1. 下载语料库, wget -http://mattmahoney.net/dc/enwik9.zip
2. 解压语料库, unzip enwik9.zip
3. 处理语料库, perl wikifil.pl enwik9 > fil9
4. head -n enwik9 查看多少行
5. head -c 200 fil9_3 查看前200个单词
第二步: 训练词向量
词向量安装
源码安装
import fasttext
model = fasttext.train_unsupervised('data/fil9')
model.get_word_vector("the") # 获取词向量
如何查看fasttext源码安装的路径
pip freeze | grep fasttext
> fasttext @ file:///Users/bombing/.virtualenvs/nlp-py37-env/fastText
# 思考题:获取词向量的流程?
# 思考题:是无监督学习吗?
第三步: 模型超参数设定
第四步: 模型效果检验
第五步: 模型的保存与重加载
mymodel.save_model(“./data/fil9.bin”)
mymodel = fasttext.load_model(‘./data/fil9.bin’)
word embedding(词嵌入)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。