文本预处理与特征选择 下载本文

内容发布更新时间 : 2024/5/22 9:31:23星期一 下面是文章的全部内容请认真阅读。

我们运用爬虫在网页上抓取文本数据,经过文本切分得出1000个中文文本。由于爬下来的文本中有很多html的标签,因此首先我们要去除这些非文本的内容。接下来,我们就要进行真正的文本预处理。 一、 文本预处理 1、

文本分词——中文分词

中文分词指的是将一个汉字序列切分成一个一个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程,中文分词是文本挖掘的基础。 中文分词所要解决的关键问题就是通用词表和切分规范、切分歧义和登录词识别(人名、地名等),中文分词方法可以大致分为3类: 1.1机械分词方法

机械分词方法又叫作基于字符串匹配的分词方法,它是按照一定的策略将待分析的汉字串与一个“充分大的”机械词典中的词条进行匹配,若在词典中找到某个字符串,则匹配成功。目前机械分词有三种方法: a、 b、 c、

正向最大匹配法(由左到右) 逆向最大匹配法(由右到左)

最少切分(使每一句中切出的词数最小)

主要过程:

“我要去南京师范大学”。对于这句话,运用正向最大匹配法。

首先,“最大”是指我们每次都取最大词长进行匹配。假设词典中最长次长度为4,从左向右取4个字就是“我要去南”,然后与词典中的词条进行匹配,显然词典中没有这个词,我们将最后一个字去掉变成“我要去”,同样再到词典中进行匹配,一直到“我”匹配成功,就可以将句子切分开:“我/要去南”。接下俩从下一个字继续取4个字“要去南京”作为一个词到词典中进行匹配,重复上述步骤,就可以将整个句子切分为:“我/要/去/南京/师范大学”。

由此我们也可以类推出逆向最大匹配法。切出来的句子为:“我/要/去/南京/师范大学”。 缺点: 长度限制

最大匹配法必须要先设定一个最长词长进行匹配。若词长过短,长词会被切错,比如词长为5,“中华人民共和国”这样7词长的词就会被错切;若词长过长,效率会较低,假设最大词长为100,我们必须将词从100开始一直往下匹配到要找到所要查的词,这意味着要有很大的工作量。

掩盖分词歧义

中文的句子构成成分很复杂,所以正向匹配和逆向匹配会出现结果不同的情况。 比如“有意见分歧”

正向最大匹配:“有意/见/分歧” 逆向最大匹配:“有/意见/分歧” 最大匹配的不一定是想要的分词方式

机械分词基于找到最大的匹配词,但有时候除了最大词外,我们想要的只是这个词的一部分。

1.2基于统计分词方法

基于统计分词方法就是先切分出与词表匹配的所有可能的词,然后运用统计语言模型和决策算法来决定最优的切分结果。

主要步骤:获取候选词—构造前趋词—寻找最佳前趋词—确定最优路径

缺点:不能解决交集型和组合型歧义问题。

1.3基于规则和基于统计相结合的方法

我们选择的中文分词方法是机械分词方法。 2、 3、

二、 特征选择 1、

卡方检验(CHI) 过滤虚词 同义词合并

过滤掉文本中一些没有意义的虚词和标点符号

卡方检验是以X^2分布为基础的一种常用假设检验方法,它的无效假设H0是观察频数与期望频数没有差别(有效假设为H1,即两者之间有差别)。公式:

主要思想:

X^2指实际值与理论值的差异,A为实际值,T为理论值。

首先假设H0成立,基于此前提计算出x^2的值。x^2值越小,观察频数与期望频数之间差别越小,H0成立;反之H1成立。

主要过程:

例:选取一堆新闻标题,标题中含有吴亦凡的与该条新闻属于娱乐新闻是否有关。 观察值: 不包含吴亦凡 包含吴亦凡 合计 属于娱乐新闻 20 36 56 不属于娱乐新闻 32 12 44 合计 52 48 100 首先假设标题是否含有吴亦凡和新闻是否是娱乐新闻是无关的(无关性假设H0)。 随机抽取一条标题,是娱乐新闻的概率为:P=56/100=56% 根据无关性假设H0生成期望的表格 期望值: 不包含吴亦凡 包含吴亦凡

如果两个变量无关,那么实际值与理论值的差异会很小,即无关性假设H0成立。 根据公式可以算出:

X^2=(20-29.12)^2/29.12+(32-22.88)^2/22.88+(36-26.88)^2/26.88+(12-21.12)^2/21.12=12.93 得出卡方值为12.93。

确定自由度为(2-1)(2-1)=1,选择显著水平α=0.05,利用Excel提供的CHIINV函数计算显著水平为0.05,自由度为1卡方分布的临界值,将临界值与统计值x^2比较,若统计值小于临界值,则H0成立,反之不成立。

缺点:卡方检验只统计了是否包含或者是否存在,对包含或存在的次数没有要求,尽管有些词条在文本中出现,但是由于该词条出现次数少,不能代表这类文本的特征。 2、

信息增益(IG)

属于娱乐新闻 52*0.56=29.12 48*0.56=26.88 不属于娱乐新闻 52*0.44=22.88 48*0.44=21.12 合计 52 48