求C++代码 如何对文本进行预处理,去除停用词、DF特征选择和TF-IDF加权的工作
发布网友
发布时间:2022-04-29 05:37
我来回答
共5个回答
热心网友
时间:2023-10-13 00:10
新的1年开始,祝好事接2连3,心情4季如春,生活5颜6色,7彩缤纷,偶尔8点小财,烦恼抛到9霄云外!请接受我10心10意的祝福。祝新春快乐!
热心网友
时间:2023-10-13 00:11
我跟你讲你不要跟他讲因为他叫我不要跟你讲现在我跟你讲你不要跟他讲我有讲如他问你我有没讲你跟他讲我没讲新春快乐
热心网友
时间:2023-10-13 00:11
一个影子很孤单,两朵玫瑰才新鲜;一颗心情常期盼,两处天空多浩瀚;正看短信的小笨蛋,为何让我总怀念,祝你春节快乐!
热心网友
时间:2023-10-13 00:12
特征值的选取按权重计算,权重计算公式Wij=TFi*IDFj,TF指Term Frequency,表示词语Ti在文档Dj中出现的次数,称为词频;IDF指Inverse Document Frequency,定义为IDFj = log(N/nj),在这个公式中,N表示文档集合中所有的文档数目,nj表示整个文档集合中现过词语Ti的文档的总数,称为特征的文档频率。在本文中使用的聚类算法中对特征项的选择,先由上面公式计算每个文档的特征项权重,选取合适的阈值条件作为特征项的抽取阀值。
你这个最主要的还是分词,分词做好了,其他的就好做了,找点相关的论文看看就明白了
热心网友
时间:2023-10-13 00:13
1 引言
Internet 已经是人们信息的重要来源,但随着Internet 的迅猛发展,人们得到的有效信息
就越来越困难,文本分类减缓了这一情况。文本分类有很多应用领域:信息检索、建立个性
化网络过滤器、用户行为识别分析等。文本分类有助于海量增长文本信息的组织,特别是针
对网页或者其他形式的电子文档。
文本分类指的是根据文本内容,将文本分到一个或者多个类中。文本分类是一个循环训
练的过程。一次循环一般情况下需要经过四个步骤[1]:
(1)建立训练文本集,对训练文本集进行预处理,将文本表示成空间向量的形式;
(2)去掉停词,进行特征提取,对特征词进行加权,并生成特征词库;
(3)选择分类器,利用训练好的特征词库对待分类文本进行分类;
(4)对分类结果进行评价,并进行适度调整,继续训练特征词库,以达到更好的分类
结果。
主要流程图如图1 所示:
特征提取
特征加权
选择分类器进行分类
分类结果评价
不符合要求
结束
预处理
文本集
符合要求
图 1. 文本分类流程图
Fig1 Text classification flow chart
-2-
2 生成特征词库
2.1 一般特征选择方法介绍
文本分类的一个难点是特征空间的高维性,例如,中文的词条就有二十多万条,为了降
低文本特征空间的维数,需要进行特征选取。现有的特征选择方法有信息增益(Information
Gain, IG)、期望交叉熵(Expected Gross Entropy,EGE)、互信息(Mutual Information,
MI)、X2 统计量(Chi-square,CHI)等[2~4]。
2.1.1 信息增益
信息增益是机器学习领域中较为广泛的特征选择方法。信息增益算法考虑了特征出现和
不出现两种情况,对于“全局”特征的选择来讲具有很好的效果,但对于“局部”特征选择来说
却达不到要求。因为该算法对某一分类进行特征选择的时候,不管特征在文本中是否出现都
将其作为该分类特征词的一部分。信息增益算法的计算公式如下:
IG( ) ( ) ( | ) log ( | ) ( ) ( | ) log ( | )
( ) ( )
t t
t t
t t t t
W P W P C W P C W P W P C W P C W
P C P C
= ∑ + ∑
公式:中 P(W) 表示特征词W 在文本集中出现的概率; P(W) 表示特征词W 在文本集
中不出现的概率; ( | ) t P C W 表示在出现特征词W 的情况下文本属于类t C 的概率;
( | ) t P C W 表示在不出现特征词W 的情况下文本属于类t C 的概率。
2.1.2 期望交叉熵
该算法反映在出现某种特征词的情况下文本类别概率分布之间的距离。公式如下:
1
CE( ) ( ) ( | )lg ( | )
( )
m
r i
r r i
i r i
t P t P c t P c t
= P c
= ∑
式中: ( ) r i P c 表示第i 类文档在文档集合中出现的概率; ( | ) r i P c t 表示在出现词t 的情
况下,文档属于第i 类的条件概率; ( ) r P t 表示词t 出现的概率。
2.1.3 互信息
该算法表达了某个特征词和类别之间的相关程度,当某一特征词只有在一个类中概率高
时,那么该特征词就被选取为该类的特征。互信息计算公式如下:
MI(t,C) log *
( )( )
A B
A C A B
=
+ +
式中,A 表示特征t 与类i C 同时出现的次数,B 表示特征t 不在类i C 中出现的次数,C 表
示类i C 中没有出现特征t 的文本数。
2.1.4 X2 统计量
该算法较好的标识特征和类别之间的独立性,X2 越大,则独立性越小,相关性也越大。
在特征选取的过程当中,如果某一特征高于阈值,则该特征将会作为该类的特征词。X2 统
计量的计算公式如下:
-3-
[P( , )*P( , ) P( , )*P( , )]2 ( , )
( )* ( ) ( )* ( )
t t t t
t
t t
Chi W C N W C W C W C W C
P W P C P W P C
?
=
式中,N 为文本集的总个数,P( , ) t W C 为文本集中出现特征W 并且属于类t C 的文本数
除以N,P( , ) t W C 为文本集中出现特征W 并且不属于类t C 的文本数除以N,P( , ) t W C 为文
本集中不出现特征W 并且不属于类t C ,的文本数除以N, ( )t P C 为类t C 的文本数除以N,
( )t P C 为非类t C ,的文本数除以N。
2.2 TF-IDF 算法分析及改进
目前常用特征库建立的一个核心思想是对每一个特征集的特征分配一个权值,即加权,
然后设定阈值,利用阈值选取一定数目的特征作为最终的特征库。这种阈值统计的方法具有
计算代价小,效率高等优点。TF-IDF 算法是最常用的特征词加权算法。
根据 TF-IDF(Terms Frequency-Inverse Document frequency,词频-反文档频率)算法,
权值越高,表示该词对该类的贡献越大。TF 指的是某一个给定的特征词在该文件中出现的
次数,TF 公式如下:
,
,
,
i j
i j
k k j
n
tf n
= ∑
上式中 ni,j 是该词在文件dj 中的出现次数,而分母则是在文件dj 中所有字词的出现次数
之和。TF 体现了频率比较高的特征词对分类的贡献。例如,关于体育的一篇文章中“体育”,
“篮球”等词的频率会很高,这些词对分类有很重要的贡献。但是仅仅有TF 是不够的,因为
出现频率最大的词,往往是最不重要的,比如“的”“和”等,IDF 则解决了这一问题,IDF 公
式如下:
{ }
log | |
i | : |
i
idf D
d t d
=
∈
其中,|D|表示语料库中的文件总数, |{d :ti∈d}|
表示包含词语ti 的文件数目。
Wi, j = tfi, j *idfi
,TF 乘以IDF 以后,像“的”、“和”这样的词,由于反文档频率比较低,特
征词的权值就会变低了。这样就不会把这些常出现的词误认为是重要的特征了。
通过研究发现TF-IDF 算法有一个缺点,如果一个特征词在某类中频繁出现,则表明这
个特征词能够很好的代表这个类,这样的特征词应该赋予较高的权重,但TF-IDF 不能很好
的表现这一点。简单举例如下:一共有四十个分类,每个分类中有1000 个文档,如果“体育”
出现在体育类的700 个文档中,而“足球”出现在200 个文档中,假设这两个词的TF 相等。
很明显“体育”的贡献要大,应该赋予较高的权值,但根据TF-IDF 公式得出的权值却是“体育”
的较小。为了弥补这一缺点,我们对TF-IDF 改进如下:
| : |
* *log
| |
i i
i
ij
ij
c t c
w tf idf
C
∈
=
-4-
其中|Ci|表示某一类中文档总数,| ci :tij ci | ∈
表示该特征词出现在该类中的次数。
3 实验设计及结果分析
3.1 试验设计
为了验证改进的TF-IDF 加权算法,我们做了如下实验。利用larbin 采集网页,构成实
验文本集,该文本集包含200 万网页,包含中、英、法、俄、德、葡萄牙、阿拉伯等语言。
实验步骤:
(1)对数据集进行保存,即将不同编码格式的网页转换成相同的编码格式,例如unicode
格式;
(2)将文本中的特殊符号去掉,例如空格,标点符号等等;
(3)去掉网页中的停词;
(4)利用向量空间模型(VSM)表示文本;
(5)利用改进的TF-IDF 算法对特征词进行加权;
(6)利用SVM 算法对网页进行分类。
3.2 实验结果
文本分类性能指标主要有:正确率和召回率、微平均与宏平均等,核心目的都是文本分
类的过程更快,结果更准确[5]。
(1)正确率=分类的正确文本数/分类得到的文本数,正确率是算法得到的正确分类结
果比所有的由算法得出的分类结果。
(2)召回率=分类的正确文本数/分类应有的文本数,召回率是算法得到的正确分类结
果比分类结果应有的正确结果。
微平均指的是每一个类的性能指标,宏平均指的是所有类的性能指标。对于同一个数据
集来说正确率和微平均正确率相等,召回率和微召回率相等。
图 2-图5 所示为传统TF-IDF 算法与改进TF-IDF 算法正确率、召回率、微平均、宏平
均方面的对比。
传统TF-IDF与改进TF-IDF分类结果正确率对比
70
75
80
85
90
95
100
1 2 3 4 5 6 7 8 9
(分类号)
(百分比,%)
改进TF-IDF
传统TF-IDF
图 2 传统TF-IDF 与改进TF-IDF 分类结果正确率对比
Fig2 accurate rate comparison between traditional and modified TF-IDF
-5-
传统TF-IDF与改进TF-IDF分类结果召回率对比
70
75
80
85
90
95
100
1 2 3 4 5 6 7 8 9
(分类号)
(百分比,%)
改进TF-IDF
传统TF-IDF
图 3 传统TF-IDF 与改进TF-IDF 分类结果召回率对比
Fig3 recall rate comparison between traditional and modified TF-IDF
75
80
85
90
95
100
(百分比,%)
正确率微平均正确率宏平均正确率
传统与改进TF-IDF在正确率方面的比较
传统TF-IDF算法
改进TF-IDF算法
图 4 传统TF-IDF 与改进TF-IDF 算法在正确率方面的比较
Fig4 accurate rate related comparison between traditional and modified TF-IDF
80
85
90
95
100
(百分比,%)
召回率微平均召回率宏平均召回率
传统与改进TF-IDF在召回率方面的比较
传统TF-IDF算法
改进TF-IDF算法
图 5 传统TF-IDF 与改进TF-IDF 算法在召回率方面的比较
Fig5 recall rate related comparison between traditional and modified TF-IDF
-6-
4 总结
本文将文本表示成向量空间模型,使用改进的TF-IDF 算法对特征词进行加权,使用
SVM 对文本进行分类。从实验结果分析得到,与传统的TF-IDF 算法相比,改进的
TF-IDF
算法在准确率,召回率方面都有明显的提高。
热心网友
时间:2023-10-13 00:10
新的1年开始,祝好事接2连3,心情4季如春,生活5颜6色,7彩缤纷,偶尔8点小财,烦恼抛到9霄云外!请接受我10心10意的祝福。祝新春快乐!
热心网友
时间:2023-10-13 00:11
我跟你讲你不要跟他讲因为他叫我不要跟你讲现在我跟你讲你不要跟他讲我有讲如他问你我有没讲你跟他讲我没讲新春快乐
热心网友
时间:2023-10-13 00:11
一个影子很孤单,两朵玫瑰才新鲜;一颗心情常期盼,两处天空多浩瀚;正看短信的小笨蛋,为何让我总怀念,祝你春节快乐!
热心网友
时间:2023-10-13 00:12
特征值的选取按权重计算,权重计算公式Wij=TFi*IDFj,TF指Term Frequency,表示词语Ti在文档Dj中出现的次数,称为词频;IDF指Inverse Document Frequency,定义为IDFj = log(N/nj),在这个公式中,N表示文档集合中所有的文档数目,nj表示整个文档集合中现过词语Ti的文档的总数,称为特征的文档频率。在本文中使用的聚类算法中对特征项的选择,先由上面公式计算每个文档的特征项权重,选取合适的阈值条件作为特征项的抽取阀值。
你这个最主要的还是分词,分词做好了,其他的就好做了,找点相关的论文看看就明白了
热心网友
时间:2023-10-13 00:13
1 引言
Internet 已经是人们信息的重要来源,但随着Internet 的迅猛发展,人们得到的有效信息
就越来越困难,文本分类减缓了这一情况。文本分类有很多应用领域:信息检索、建立个性
化网络过滤器、用户行为识别分析等。文本分类有助于海量增长文本信息的组织,特别是针
对网页或者其他形式的电子文档。
文本分类指的是根据文本内容,将文本分到一个或者多个类中。文本分类是一个循环训
练的过程。一次循环一般情况下需要经过四个步骤[1]:
(1)建立训练文本集,对训练文本集进行预处理,将文本表示成空间向量的形式;
(2)去掉停词,进行特征提取,对特征词进行加权,并生成特征词库;
(3)选择分类器,利用训练好的特征词库对待分类文本进行分类;
(4)对分类结果进行评价,并进行适度调整,继续训练特征词库,以达到更好的分类
结果。
主要流程图如图1 所示:
特征提取
特征加权
选择分类器进行分类
分类结果评价
不符合要求
结束
预处理
文本集
符合要求
图 1. 文本分类流程图
Fig1 Text classification flow chart
-2-
2 生成特征词库
2.1 一般特征选择方法介绍
文本分类的一个难点是特征空间的高维性,例如,中文的词条就有二十多万条,为了降
低文本特征空间的维数,需要进行特征选取。现有的特征选择方法有信息增益(Information
Gain, IG)、期望交叉熵(Expected Gross Entropy,EGE)、互信息(Mutual Information,
MI)、X2 统计量(Chi-square,CHI)等[2~4]。
2.1.1 信息增益
信息增益是机器学习领域中较为广泛的特征选择方法。信息增益算法考虑了特征出现和
不出现两种情况,对于“全局”特征的选择来讲具有很好的效果,但对于“局部”特征选择来说
却达不到要求。因为该算法对某一分类进行特征选择的时候,不管特征在文本中是否出现都
将其作为该分类特征词的一部分。信息增益算法的计算公式如下:
IG( ) ( ) ( | ) log ( | ) ( ) ( | ) log ( | )
( ) ( )
t t
t t
t t t t
W P W P C W P C W P W P C W P C W
P C P C
= ∑ + ∑
公式:中 P(W) 表示特征词W 在文本集中出现的概率; P(W) 表示特征词W 在文本集
中不出现的概率; ( | ) t P C W 表示在出现特征词W 的情况下文本属于类t C 的概率;
( | ) t P C W 表示在不出现特征词W 的情况下文本属于类t C 的概率。
2.1.2 期望交叉熵
该算法反映在出现某种特征词的情况下文本类别概率分布之间的距离。公式如下:
1
CE( ) ( ) ( | )lg ( | )
( )
m
r i
r r i
i r i
t P t P c t P c t
= P c
= ∑
式中: ( ) r i P c 表示第i 类文档在文档集合中出现的概率; ( | ) r i P c t 表示在出现词t 的情
况下,文档属于第i 类的条件概率; ( ) r P t 表示词t 出现的概率。
2.1.3 互信息
该算法表达了某个特征词和类别之间的相关程度,当某一特征词只有在一个类中概率高
时,那么该特征词就被选取为该类的特征。互信息计算公式如下:
MI(t,C) log *
( )( )
A B
A C A B
=
+ +
式中,A 表示特征t 与类i C 同时出现的次数,B 表示特征t 不在类i C 中出现的次数,C 表
示类i C 中没有出现特征t 的文本数。
2.1.4 X2 统计量
该算法较好的标识特征和类别之间的独立性,X2 越大,则独立性越小,相关性也越大。
在特征选取的过程当中,如果某一特征高于阈值,则该特征将会作为该类的特征词。X2 统
计量的计算公式如下:
-3-
[P( , )*P( , ) P( , )*P( , )]2 ( , )
( )* ( ) ( )* ( )
t t t t
t
t t
Chi W C N W C W C W C W C
P W P C P W P C
?
=
式中,N 为文本集的总个数,P( , ) t W C 为文本集中出现特征W 并且属于类t C 的文本数
除以N,P( , ) t W C 为文本集中出现特征W 并且不属于类t C 的文本数除以N,P( , ) t W C 为文
本集中不出现特征W 并且不属于类t C ,的文本数除以N, ( )t P C 为类t C 的文本数除以N,
( )t P C 为非类t C ,的文本数除以N。
2.2 TF-IDF 算法分析及改进
目前常用特征库建立的一个核心思想是对每一个特征集的特征分配一个权值,即加权,
然后设定阈值,利用阈值选取一定数目的特征作为最终的特征库。这种阈值统计的方法具有
计算代价小,效率高等优点。TF-IDF 算法是最常用的特征词加权算法。
根据 TF-IDF(Terms Frequency-Inverse Document frequency,词频-反文档频率)算法,
权值越高,表示该词对该类的贡献越大。TF 指的是某一个给定的特征词在该文件中出现的
次数,TF 公式如下:
,
,
,
i j
i j
k k j
n
tf n
= ∑
上式中 ni,j 是该词在文件dj 中的出现次数,而分母则是在文件dj 中所有字词的出现次数
之和。TF 体现了频率比较高的特征词对分类的贡献。例如,关于体育的一篇文章中“体育”,
“篮球”等词的频率会很高,这些词对分类有很重要的贡献。但是仅仅有TF 是不够的,因为
出现频率最大的词,往往是最不重要的,比如“的”“和”等,IDF 则解决了这一问题,IDF 公
式如下:
{ }
log | |
i | : |
i
idf D
d t d
=
∈
其中,|D|表示语料库中的文件总数, |{d :ti∈d}|
表示包含词语ti 的文件数目。
Wi, j = tfi, j *idfi
,TF 乘以IDF 以后,像“的”、“和”这样的词,由于反文档频率比较低,特
征词的权值就会变低了。这样就不会把这些常出现的词误认为是重要的特征了。
通过研究发现TF-IDF 算法有一个缺点,如果一个特征词在某类中频繁出现,则表明这
个特征词能够很好的代表这个类,这样的特征词应该赋予较高的权重,但TF-IDF 不能很好
的表现这一点。简单举例如下:一共有四十个分类,每个分类中有1000 个文档,如果“体育”
出现在体育类的700 个文档中,而“足球”出现在200 个文档中,假设这两个词的TF 相等。
很明显“体育”的贡献要大,应该赋予较高的权值,但根据TF-IDF 公式得出的权值却是“体育”
的较小。为了弥补这一缺点,我们对TF-IDF 改进如下:
| : |
* *log
| |
i i
i
ij
ij
c t c
w tf idf
C
∈
=
-4-
其中|Ci|表示某一类中文档总数,| ci :tij ci | ∈
表示该特征词出现在该类中的次数。
3 实验设计及结果分析
3.1 试验设计
为了验证改进的TF-IDF 加权算法,我们做了如下实验。利用larbin 采集网页,构成实
验文本集,该文本集包含200 万网页,包含中、英、法、俄、德、葡萄牙、阿拉伯等语言。
实验步骤:
(1)对数据集进行保存,即将不同编码格式的网页转换成相同的编码格式,例如unicode
格式;
(2)将文本中的特殊符号去掉,例如空格,标点符号等等;
(3)去掉网页中的停词;
(4)利用向量空间模型(VSM)表示文本;
(5)利用改进的TF-IDF 算法对特征词进行加权;
(6)利用SVM 算法对网页进行分类。
3.2 实验结果
文本分类性能指标主要有:正确率和召回率、微平均与宏平均等,核心目的都是文本分
类的过程更快,结果更准确[5]。
(1)正确率=分类的正确文本数/分类得到的文本数,正确率是算法得到的正确分类结
果比所有的由算法得出的分类结果。
(2)召回率=分类的正确文本数/分类应有的文本数,召回率是算法得到的正确分类结
果比分类结果应有的正确结果。
微平均指的是每一个类的性能指标,宏平均指的是所有类的性能指标。对于同一个数据
集来说正确率和微平均正确率相等,召回率和微召回率相等。
图 2-图5 所示为传统TF-IDF 算法与改进TF-IDF 算法正确率、召回率、微平均、宏平
均方面的对比。
传统TF-IDF与改进TF-IDF分类结果正确率对比
70
75
80
85
90
95
100
1 2 3 4 5 6 7 8 9
(分类号)
(百分比,%)
改进TF-IDF
传统TF-IDF
图 2 传统TF-IDF 与改进TF-IDF 分类结果正确率对比
Fig2 accurate rate comparison between traditional and modified TF-IDF
-5-
传统TF-IDF与改进TF-IDF分类结果召回率对比
70
75
80
85
90
95
100
1 2 3 4 5 6 7 8 9
(分类号)
(百分比,%)
改进TF-IDF
传统TF-IDF
图 3 传统TF-IDF 与改进TF-IDF 分类结果召回率对比
Fig3 recall rate comparison between traditional and modified TF-IDF
75
80
85
90
95
100
(百分比,%)
正确率微平均正确率宏平均正确率
传统与改进TF-IDF在正确率方面的比较
传统TF-IDF算法
改进TF-IDF算法
图 4 传统TF-IDF 与改进TF-IDF 算法在正确率方面的比较
Fig4 accurate rate related comparison between traditional and modified TF-IDF
80
85
90
95
100
(百分比,%)
召回率微平均召回率宏平均召回率
传统与改进TF-IDF在召回率方面的比较
传统TF-IDF算法
改进TF-IDF算法
图 5 传统TF-IDF 与改进TF-IDF 算法在召回率方面的比较
Fig5 recall rate related comparison between traditional and modified TF-IDF
-6-
4 总结
本文将文本表示成向量空间模型,使用改进的TF-IDF 算法对特征词进行加权,使用
SVM 对文本进行分类。从实验结果分析得到,与传统的TF-IDF 算法相比,改进的
TF-IDF
算法在准确率,召回率方面都有明显的提高。