赞
踩
**数据和特征决定了机器学习的上限,而模型和算法只是无线逼近这个上限。**正是因为数据处理的重要性,在NLP算法的工作中,大部分的时间是与数据打交道,文本预处理更是重中之重!
方法:
文本处理的基本方法
文本张量表示方法
One-hot编码 0 1 001 010 100
Word2vec(what)—(why)
第一种模式: CBOW: 词袋模式—> 两边(输入)到中间(输出)
第二种模式: skipgram—> 中间(输入)到两边(输出)
fasttext工具进行词向量的训练(how)
安装:
第一种方式的安装: pip install fasttext(简洁版)
第二种方式安装: (建议使用这种方式)
$ git clone https://github.com/facebookresearch/fastText.git
$ cd fastText
# 使用pip安装python中的fasttext工具包
$ sudo pip install .
训练词向量(how)
Word Embedding
文本语料的数据分析—> 绘制图像
标签数量的分析
句子的长度进行分析—绘制柱状图
词频的统计和关键词词云
不同词汇的统计
# 不同词汇总数的统计 --> embedding上 one-hot
set(chain(*map(lambda x: jieba.lcut(x), train_data["sentence"])))
词云的绘制
文本特征处理
n_gram特征
定义: 在文本序列中, n个词或字相邻且共现即n_gram特征 n: 1 2 3 4 5
作用 为了增加更多的语义信息, 是语句有更多元化的语义表示
如何实现
set(zip(*[input_list[i:] for i in range(ngram_range)]))
文本长度的规范 处理成一定的长度
原因: 网络需要等尺寸大小的语句序列.
前期要进行的处理: 进行句子长度的分析(绘制图像), 然后确定要规范的句子长度
How 怎么做
# 在此api函数中, 可以根据业务需求, 进行前面截断补齐或是后面截断补齐的选择
sequence.pad_sequences(x_train, cutlen, padding='post', truncating='post')
数据增强方法
回译增强法
import itranslate
text = ["酒店设施非常不错", "这家酒店服务好,价格便宜"]
ko_result = itranslate.itranslate(text, from_lang='zh-cn', to_lang='ko')
print(text)
print("翻译成韩文:", ko_result)
cn_result = itranslate.itranslate(ko_result, from_lang='ko', to_lang='zh-cn')
print('回译成中文:', cn_result)
第二种方式: google接口 pip install google_trans_new
如果发生错误: json解析错误 修改源码: google_trans_new.py文件中151行
# 151行 修改源码
# response = (decoded_line + ']')
# 导致json解析错误
# 修改成
# response = decoded_line
# 即可
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。