`
lzj0470
  • 浏览: 1238509 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

基于词性的特征提取方法

阅读更多

上一节所介绍的这些方法 ,在英文特征提取方面都有各自的优势 ,但用于中文文本 ,并没有很高的效率。
主要有 2 个方面的原因 :1) 特征提取的计算量太大 ,特征提取效率太低 ,而特征提取的效率直接影响到整个
文本分类系统的效率。2) 经过特征提取后生成的特征向量维数太高 ,而且不能直接计算出特征向量中各个
特征词的权重。特征向量维数太高对于文本分类来说是个致命的缺陷 ,维数过高的特征向量不仅带来了巨

大的计算量 ,而且在这些特征向量中 ,很多的特征词对于文本的分类毫无意义 ,这样既影响了文本分类的效
率 ,也影响了分类的准确率 ,因此 ,在中文文本分类中 ,如何提取特征词以及如何控制特征向量的维数 ,成为
一个亟待解决的难题。
考虑到汉语言中 ,能标识文本特性的往往是文本中的实词 ,如名词、动词、形容词等。而文本中的一些虚
词 ,如感叹词、介词、连词等 ,对于标识文本的类别特性并没有贡献 ,也就是对确定文本类别没有意义的词。
如果把这些对文本分类没有意思的虚词作为文本特征词 ,将会带来很大噪音 ,从而直接降低文本分类的效率
和准确率。因此 ,在提取文本特征时 ,应首先考虑剔除这些对文本分类没有用处的虚词 ,而在实词中 ,又以名
词和动词对于文本的类别特性的表现力最强 ,所以可以只提取文本中的名词和动词作为文本的一级特征词。
2. 1  基于词性的特征提取算法流程
基于词性的特征提取方法 ,其主要思想是 ,提取中文文本中的名词和动词作为文本的一级特征词 ,再通
过计算这些一级特征词的文本频数( TF) 和文档频数(DF) 来计算其权重 ,最后根据各个特征词的权重 ,对这
些一级特征词进行排序 ,给定一个阈值
K
,在这些一级特征词中 ,根据其权重大小 ,选取
K
个一级特征词 ,作
为文本的核心特征词组成表示文本的特征向量。这里的文本频数 TF 是指特征词
t
i
在文本
T
i
中的频数 ,文
档频数 DF 指的是在训练库中 ,特征词
t
i
在其中至少出现一次的文档的数目。算法流程见图 1。
1) 网页预处理 剔除网页中的各种标记和符号 ,将
中文网页转化为对应内容的文本文件。
2) 统计词频 用正则表达式匹配文档中的词 ,对于
每个匹配出的词进行计数。
3) 统计文档频数 (1) 对文本的每个一级特征词 ,设
置文本频数计数器 DF。(2) 训练库中的训练文本进行比
较并计数。
2. 2  关键技术
1) 中文分词及词性标注 常用的分词方法有 :向前、
向后以及前后相结合的最大匹配法、最短路径方法、全切分方法以及最大概率方法。本论文中的分词采用中
科院的分词系统 ICTCLAS。首先 ,进行粗分词采用 N2最短路径方法将最短路径方法和全切分的有机结合。
然后对粗分词的结果按照标准字典进行词性的标注。在进行了 NE 识别以后 ,重新分词找出联合概率最大
的分词结果。最后对分词结果重新标注词性。其过程见图 2。
2) 降低特征向量的维数 在基于词性的特征提取方法中 ,因为只提取文本中的名词和动词作为特征词 ,
这样需要大量剔除文本中的虚词和部分实词 ,传统的方法是构造停用词表 ,把要从文本中剔除的词收集整理
成停用词表 ,但这种方法在基于词性的特征提取中并没有效率 ,因为需要剔除的词太多 ,考虑到汉语言词汇
的丰富性 ,要收集所有不需要的词来建立停用词表 ,工作量之大是不可估量的 ,甚至可以说是无法实现的。
而且 ,即使建立了如此庞大的停用词表 ,那么在特征提取时 ,因为停用词表里的词太多 ,查找停用词的搜索算
法会变得复杂而低效。
因此 ,在基于词性的特征提取方法中 ,引入正则表达式 ,构造一个能匹配出文本中所有名词和动词的正
则表达式 ,直接提取分词后的文本中的名词和动词作为文本的特征词。例如对“索引可以加快数据库的检索
速度”这句话进行分词的结果为 :“索引/ n 可以/ a 加快/ v 数据库/ n 的/ b 检索/ v 速度/ a ”。要提取这句话中
的名词和动词 ,就要构造一个只匹配字符串“3 3 / n”或者“3 3 / v”的正则表达式。
在正则表达式中 ,“X| Y”表示匹配“X”或者“Y”。“+ ”表示匹配至少前面的一个字符例如“AB + ”可以
匹配“ABB”、“ABBB”等。“[^M - N ]”表示某个范围之外的字符 ,匹配除 M 到 N 之间的任何字符。“\ s”匹
配任何白字符。包括空格、制表符、分页符等。因此正则表达式([^ \ \ s ! @# $% & 3 ’A - Za - z0 - 9 ])
+ / (n| v| vn)就可以在分词后的中文文本中匹配出词性标注为/ n 或者词性标注为/ v 的词。这样利用正则表
达式直接匹配出所需要的词 ,不仅有效降低了特征向量的维数 ,而且算法效率高得多。
3) 计算特征词的权重值 权重的计算则采用 TFIDF 计算公式。其指导思想是 :在一个文本中出现次
数越多的单词 ,在另一个同类文本中出现的次数也会很多 ,反之亦然。该方法是根据特征词的重要性与特征
词的文档内频数成正比 ,与训练文档中出现该词条的文档频数成反比的原理构造的。常用频率因子和文档

集因子的乘积表示 :
w
ik
=
tf
ik
3
idf
k
tf
ik
表示特征词
t
k
在文档
d
i
中出现的频率
; idf
k
表示该特征的反比文本频数。
对于它们的计算方法
,
目前有很多种
,
较为常见的公式
w
ik
= tf
ik
3 log
( N/ n
k
+
0
.
01
)
其中
tf
ik
同上
, N
表示全部训练库中的文本数量
, n
k
表示训练文本中出现
t
k
的文本数。
例如
:
训练库文本总数为 7 432 篇。在一篇文本中出现“数据库”有 2 次
,
因此它的
tf
值为 2
;
在所有训
练库中有 2 847 篇文档中出现了“数据库”
,
因此数据库在这篇文档中的权重值
w
= 2 3 log
(
7 432
/
2 847 + 0
.
01
)
= 0
.
84。如果特征词在所有训练库中出现的频率很高
,
则其权重值会较小
,
如果特征词出现比较集中
,

在部分文本中集中出现
,
则它的权重值就大。
3
 测 试
随机抽取了训练库中的分别属于数据库、数据结构、人工智能等类别的 248 个网页进行特征提取 ,再利
用 kNN 分类算法对其进行分类。为了说明基于词性的特征提取方法提取特征词的效率以及降低特征向量
的维数的结果。定义一个变量
G
来表示一级特征词的个数与文本中所有词的个数之间的比值。
G =
一级特征词的个数
文本中所有词的个数
  实验结果如表 1 所示。从表 1 可以看出 ,
G
=
0. 085 6 ,即基于词性的特征提取方法所得到的一级特
征词只占文本词数的百分之八点多 ,但对分类结果却
没有太大的影响 ,这样就大大缩减了特征词的个数 ,有
利于降低特征向量的维数。

1
 实验测试结果
特征词个数
kNN
算法
召回率
/ %
kNN
算法
准确率
/ %
文本分词
409 836
94. 76
93. 95
基于词性的
特征词提取
35 096
93. 46
92. 74
  在实际分类过程中 ,并不是把所有的一级特征词全部作为特征向量的项。为了对特征向量规范化处理 ,
需要根据第 3 节中的算法给出的方法 ,根据这些一级特征词的权重 ,给定阈值
K
,取权重高的
K
个一级特征
词作为核心特征词组成文本的特征向量。从实验结果可以看出 ,基于词性的特征提取方法不失为一种简单
高效特征提取方法。
4
 结 语
所提出的基于词性的文本特征提取方法 ,提取特征词的效率较传统方法有了明显改善 ,由特征词所形成
的特征向量的维数也有明显降低 ,在计算量和算法的复杂度方面 ,都远远小于传统方法。在一个算法中同时
实现提取文本特征词和计算其权值 ,为文本分类的下一步即文本相似度计算做好了准备。
当然 ,基于词性的文本特征提取方法还存在需要改进的地方 ,比如说本系统中采取提取名词和动词来作
为文本的一级特征词 ,忽略了其他一些实词 ,比如形容词、量词等 ,不排除被忽略的这些词中 ,也有部分词对
于标识文本类别有作用 ;还有阈值
K
的取值 ,并没有一个统一的标准 ,只能靠实验结果的反馈来决定。这些
问题 ,都有待进一步的研究。

分享到:
评论
1 楼 redsomnus 2009-03-17  
有源码吗?

相关推荐

Global site tag (gtag.js) - Google Analytics