文本预处理
文本处理的基本方法
分词
精确模式分割:试图将句子最精确的切割,适合文本分析
全模式分词:把句子中所有的可以成词的此举都扫描出来,速度非常快,但不能消除歧义
搜索引擎模式分词:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词
jieba分词的使用
import jieba
context = "更发达数据恢复艰苦撒旦合法结婚的事发生"
"""
进行分割,返回一个生成器对象
cut_all是否进行精确分割
默认为False:进行精确分词
cut_all=True:进行全模式分词
"""
jieba.cut(context, cut_all=False)
# 进行分割,返回一个列表内容,cut_all是否进行精确分割,默认为False
jieba.lcut(context,cut_all=False)
# 搜索引擎模式切割,分会一个生成器对象
jieba.cut_for_search(context)
# 搜索引擎模式切割,分会一个列表
jieba.lcut_for_search(context)
hanlp中英文分词
#%%
import hanlp
# 设定一个预训练模型(切割规则)
tokenizer = hanlp.load('CTB6_CONVSEG')
# 对中文切割
tokenizer("进行分割,返回一个列表内容,cut_all是否进行精确分割,默认为False")
# 设定一个切割规则
tokenizer = hanlp.utils.rules.tokenize_english
tokenizer("I am me")
词性标注
词性:语言中对词的一种分类方法,以语法特征为主要依据,兼容词汇意义对词进行划分的结果,常见的词性有14中,如名词、动词
词性标注:标注出一段文本中每个词的词性
import jieba.posseg as pseg
pseg.lcut("我爱中国")
输出
[pair(‘我’, ‘r’), pair(‘爱’, ‘v’), pair(‘中国’, ‘ns’)]
命名实体识别
命名实体:通常我们将人名,地名,机构名等专有名词统称命名实体,如: 周杰伦,黑山县,孔子学院,24辊方钢矫直机.
顾名思义,命名实体识别(Named Entity Recognition,简称NER)就是识别出一段文本中可能存在的命名实体.
文本张量表示方法
文本张量的表示:将一段文本使用张量进行表示,其中一半将词汇为表示成向量,再由哥哥词向量按顺序组成矩阵形成文本表示
- one-hot编码
- word2vec
- word Embedding
文本预料的数据分析
- 标签数量分布
- 句子长度分布
- 词频统计与关键词词云
文本特征处理
- 添加n-gram特征
- 文本长度规范
数据增强方法
- 回译数据增强法