赞
踩
学习目标:
了解文本特征处理的作用.
掌握实现常见的文本特征处理的具体方法.
文本特征处理的作用:
常见的文本特征处理方法:
添加n-gram特征
文本长度规范
什么是n-gram特征:
假设给定分词列表: [“是谁”, “敲动”, “我心”]
对应的数值映射列表为: [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取2或者3, 这里取2为例
# 我们要往里面添加二元特征
ngram_range = 2
def create_ngram_set(input_list):
'''
description: 从数值列表中提取所有的n-gram特征
:param input_list: 输入的数值列表, 可以看作是词汇映射后的列表,
里面每个数字的取值范围为[1, 25000]
:return: n-gram特征组成的集合
eg:
>>> create_ngram_set([1, 4, 9, 4, 1, 4]) 可以看出这个列表经过二元特征的提取后,得到下面四个二元特征
{(4, 9), (4, 1), (1, 4), (9, 4)}
'''
return set(zip(*[input_list[i:] for i in range(ngram_range)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。