文本预处理-文本特征处理
文本特征处理的作用
- 文本特征处理包括为语料添加具有普适性的文本特征,如n-gram特征,以及对加入特征之后的文本语料进行必要的处理,如:长度规范。这些特征处理工作能够有效的将重要的文本特征加入模型训练中,增强模型评估指标
常见的文本特征处理方法
- 添加n-gram特征
- 文本长度规范
n-gram特征
什么是n-gram特征
- 给定一段文本序列,其中n个词或字的相邻共现特征即n-gram特征,常用的n-gram特征是bi-gram和tri-gram特征,分别对应n为2和3
例:
假设给定分词列表:["是谁", "敲动", "我心"]
对应的数值映射列表为:[1, 34, 21]
我们可以认为数值映射列表中的每个数学是词汇特征。
除此之外,我们还可以把“是谁“和”敲动“两个词共同出现且相邻也作为一种特征加入到序列列表中,假设1000就代表”是谁“和”敲动“共同出现且相邻
此时数值映射列表就变成了包含2-gram特征的特征列表:[1, 34, 21, 1000]
这里的”是谁“和”敲动“共同出现且相邻就是bi-gram特征中的一个
”敲动“和”我心“也是共现且相邻的两个词汇,因此它们也是bi-gram特征。
假设1001代表”敲动“和”我心“共同出现且相邻,那么最后原始的数值映射列表[1, 34, 21]添加了bi-gram特征之后就变成了[1, 34, 21, 1000, 1001]
提取n-gram特征
- 一般n-gram中的n取2或3
1 | ngram_range = 2 |
{(3, 2), (1, 3), (2, 1), (1, 5), (5, 3)}
文本长度规范
文本长度规范及其作用
- 一般模型的输入需要等尺寸大小的矩阵,因此在进入模型前需要对每条文本数值映射后的长度进行规范,此时将根据句子长度分布分析出覆盖大多数文本的合理长度,对照长文本进行截断,对不足文本进行补齐(一般使用数字0),这个过程就是文本长度规范
文本长度规范的实现
1 | from keras.preprocessing import sequence |
[[ 5 32 55 63 2 21 78 32 23 1]
[ 0 0 0 0 0 2 32 1 23 1]]