随着网络的普及, 网络上时刻都在产生大量的文本信息, 为了满足用户面对海量文本时多样化的需求, 对文本信息进行有效的分类就显得至关重要. 在文本分类领域中, 用向量空间模型表示文本的方法应用尤为普遍. 用向量空间模型表示文本, 需经过分词、特征选择、权重计算等步骤, 而权重计算方法的优劣直接影响着分类算法的性能表现. 权重计算的方法多种多样, 常用的包括文档频率、信息增益、互信息、卡方分布、TF-IDF等[1].
TF-IDF算法自提出以来, 因其算法相对简单和有较高的准确率及召回率, 一直受到广泛应用[2]. 但该算法的权重计算仅考虑了特征词的词频和逆文档频率等, 仍还有许多可改进的空间. 因此, 很多学者分析TF-IDF的缺陷, 对其进行了相应的改进. How等[2]提出利用Category Term Descriptor (CTD)来改进TF-IDF, 考虑不同类别的文档数可能存在数量级的差距, 以改善类别数据集偏斜所引起的误差; 徐冬冬等[3]引入逆类频率因子和类别比率因子用以修正TF-IDF 权重算法, 得到基于类别描述的TF-IDF-CD方法, 叶雪梅等[4]针对新词识别对分类结果的影响, 提出了基于网络新词的改进文本分类TF-IDF算法; 许甜华等[5]通过引入去中心化词频因子和特征词位置因子以加强特征权重的准确性.
本文使用TF-IDF算法计算特征词权重, 对特征词在不同规模文档集中的权重加以比较, 具体分析了特征词的类信息对于权重的影响, 并在此基础上提出一种新的衡量特征词的类间、类内分布信息的改进方法. 改进方法增加两个新的权值, 类间离散因子和类内离散因子, 将其与经典的TF-IDF算法结合, 进而提出了改进的TF-IDF-DI算法. 改进的权重计算方法有效改善了TF-IDF算法对类信息不敏感的问题. 本文通过朴素贝叶斯模型对改进后的算法的分类性能进行验证. 实验证明, 改进后的权重算法在测试数据集上的表现, 在准确率、召回率和F1值上均优于经典的TF-IDF算法.
1 经典的TF-IDF算法及权重分析 1.1 经典的TF-IDF算法TF-IDF算法作为计算特征项权重的算法, 在文本分类中的应用极为广泛, 其主要思想为: 在某一特定文档中, 某词语的出现频率越高, 且数据集中包含该词语的文档数越少, 说明该词语越是能标志文档内容的属性, 其权重自然也就越大[6-9]. 计算公式如下:
$ \begin{split} w({t_j},{d_i})& = tf({t_i},{d_j}) \times idf({t_i},{d_j}) \\ & = tf({t_i},{d_j}) \times \lg \left( {\frac{N}{{{n_j}}} + 0.01} \right) \\ \end{split} $ | (1) |
其中,
在使用时考虑到文档长度不同对权值计算的影响, 我们通常会对公式做归一化处理[10], 得到公式如下:
$w({t_j},{d_i}) = \dfrac{{tf({t_j},{d_i}) \times \lg \left( {\dfrac{N}{{{n_j}}} + 0.01} \right)}}{{\sqrt {\displaystyle\sum\limits_{k = 1}^n {tf{{({t_k})}^2} \times {{\lg }^2}\left( {\dfrac{N}{{{n_k}}} + 0.01} \right)} } }}$ | (2) |
传统TF-IDF并不能很好的区分类间和类内分布所带来的影响. 类间分布指的是特征词在不同类别间的分布情况, 通常认为集中分布于某个类别的特征词, 相比于在各个类别均匀分布的特征词, 更能体现该类别的内容属性; 类内分布指的是特征词在某类别内的分布情况, 通常认为在某类别内各文档均普遍出现的特征词能够更好的表现该类别的内容属性, 反之对于仅出现于类别内一小部分文档的特征词, 往往特征词只是体现了该小部分文档的内容属性, 我们应适当降低其权重.
我们使用IMDB语料库进行实验来说明以上问题. IMDB语料库收集了50000条来自互联网的严重两极分化的电影评论, 我们从中分别随机抽取200、500、1000条评论, 根据式(2)计算特征词的TF-IDF权重, 并进一步计算特征词在正类评论、负类评论中的平均TF-IDF权重. 为保证实验的随机性, 我们重复以上实验多次, 并计算特征词的平均TF-IDF权重. 表1是部分特征词在不同文档集的权重.
在实验中我们发现大部分特征词在不同的文档集中使用TF-IDF算法计算的权重均有较大差别, 能够较好的体现特征词的内容属性, 如表1中的特征词“awkward”. 但是我们也发现部分特征词在有些文档集中的TF-IDF十分接近, 如特征词“fighting”在样本容量为500的文档集和特征词“sincere”在样本容量为1000的文档集中, 它们在正类和负类的评价中的TF-IDF权重都极为接近. 我们进一步统计分析了此类权重接近的特征词在正类评论和负类评论中的词频和文档频率. 表2从不同容量的文档集中选取了部分TF-IDF权重接近的特征词, 并分别比较了其在正类评论和负类评论中的词频、文档频率信息.
通过表2可以发现部分特征词的TF-IDF权重极为接近, 但其在不同类别的词频、文档频率却有着较大的差异. 这说明在该情况下TF-IDF算法并不能很好的反映特征词的类间、类内的分布信息, 因此提出一种新的衡量特征词的类间、类内分布信息的方法就显得尤为重要了.
2 改进的TF-IDF算法
文献[11]提出了改进的TF-IDF-DI方法通过变异系数, 即特征词词频在类间、类内的分布标准差与均值之比来描述其类间、类内离散程度, 但仍有其缺陷: 当特征词在各类别中的平均出现频率或特征词在某类别中的各文档的平均出现频率较小, 以至趋近于0时, 即使微小的扰动也会导致也会对系数产生巨大的影响, 不利于准确描述特征词的类信息.
本文提出一种新的类间、类内离散程度的描述方法, 进而提出了改进的TF-IDF-CI算法. 我们引入特征词的类间离散度因子
$C{I_{ac}}({t_j}) = 2\arctan (S({t_j}))/\pi $ | (3) |
$C{I_{ic}}({t_j},{c_k}) = 2\arctan (s({t_j},{c_k}))/\pi $ | (4) |
其中,
$S({t_j}) = \sqrt {\left[ {\sum\limits_{k = 1}^{|C|} {{{\left( {TF({t_j},{c_k}) - \overline {TF({t_j})} } \right)}^2}} } \right]\Bigg/\left( {|C| - 1} \right)} $ | (5) |
$s({t_j},{c_k}) = TF({t_j},{c_k}) \cdot \frac{{N({c_k})}}{{n({t_j},{c_k})}} - TF({t_j},{c_k})$ | (6) |
其中,
在式(3)–式(6)中, 我们给出了类间离散因子
$W({t_j},{d_i},{c_k}) = w({t_j},{d_i}) \times \frac{{1 - C{I_{ic}}({t_j},{c_k})}}{{1 - CI_{ac}({t_j})}}$ | (7) |
其中,
同样采用表1中所使用的文档集进行实验, 表3给出部分特征词根据改进的TF-IDF-CI算法在不同文档集中计算所得的特征权重, 并与TF-IDF算法计算的权重进行对比.
通过表3的对比容易发现, 改进的TF-IDF-CI算法有效改善了TF-IDF算法并能很好的反映特征词类间、类内的分布信息的问题. 如特征词“fighting”在样本容量为500的文档集和特征词“sincere”在样本容量为1000的文档集中, 使用TF-IDF算法的计算的特征权重极为接近, 但使用TF-IDF-CI算法则得到了有效的改善. 同时, 通过实验也可发现如“awkward”等使用TF-IDF算法可以很好区分的特征词, 在使用TF-IDF-CI算法计算特征权重时亦不会有很大的偏差.
3 实验分析
实验使用的语料库是搜狗新闻数据语料库, 该语料库包含来自搜狐新闻的健康、体育、社会、娱乐等18个频道的新闻数据. 实验选取了健康、教育、军事、汽车、体育5类共5000篇文档作为训练样本, 另选取500篇文档作为测试样本.
分词使用的是Hanlp的StandardTokenizer分词器. 同时还对分词后的数据集进行去体停用词的处理, 将常用的停用词(的, 并不, 而且等) 进行过滤. 为验证改进的TF-IDF-CI算法对分类性能的影响, 实验分别采用经典的TF-IDF算法、TF-IDF-DI算法、改进的TF-IDF-CI算法计算特征词的权重, 并使用朴素贝叶斯算法进行文本分类, 评估指标使用准确率(Precision, P)、召回率(Recall, R)、F1值3个指标[12]. 分类器在测试集上的分类性能分别如表4所示.
通过实验结果, 可以发现使用改进的TF-IDF-CI算法对特征词权重进行计算, 并使用朴素贝叶斯算法对文本进行分类, 准确率、召回率和F1值都相比于经典的TF-IDF算法有了一定的提升, 其中类别“健康”的提升最为明显, F1值较TF-IDF提升了约6.42%, 较TF-IDF-DI提升了约3.23%. 这说明改进的TF-IDF-CI算法相比于TF-IDF算法, 较好的考虑了特征词的类间、类内的分布信息, 能很好的分辨出集中分布于某类别且在该类别内相对均匀出现的特征词, 从而达到了提升分类性能的效果.
4 总结与反思
本文以特征词权重的计算方法为研究对象, 总结了现有的一些方法, 并着眼于使用相对广泛的经典的TF-IDF算法, 对国内外研究者在TF-IDF算法的研究成果进行了介绍. 本文对TF-IDF算法在不同的文档集中的表现做了具体的分析对比, 针对TF-IDF算法未能很好区分特征词类间、类内分布的问题, 做了详细的研究. 基于此本文提出了一种新的衡量特征词类间、类内分布信息的方法, 提出了基于类信息的改进的TF-IDF-CI算法. 最后通过朴素贝叶斯模型对改进后的算法的分类性能进行验证. 实验发现, 改进的TF-IDFCI算法不论在准确率、召回率、F1值上, 均优于经典的TF-IDF算法, 由此证实了改进算法的有效性.
当然本文仍有不足之处: 首先本文的实验均在均衡的数据集上进行实验, 改进的TF-IDF-CI算法在数据集偏斜时的表现还需要进一步实验, 以验证其性能[2]; 同时TF-IDF-CI算法仍还有改进空间, 如将特征词在文本内的分布信息, 即其位置信息进一步纳入特征权重的考虑范畴, 这也是笔者今后要研究的内容.
[1] |
李鹏鹏, 范会敏. 文本分类中特征权重算法改进研究. 计算机与现代化, 2018, 2(2): 66-70. DOI:10.3969/j.issn.1006-2475.2018.02.014 |
[2] |
How BC, Narayanan K. An empirical study of feature selection for text categorization based on term weightage. Proceedings of the 2004 IEEE/WIC/ACM International Conference on Web Intelligence. Beijing, China. 2004. 599–602.
|
[3] |
徐冬冬, 吴韶波. 一种基于类别描述的TF-IDF特征选择方法的改进. 现代图书情报技术, 2015, 31(3): 39-48. |
[4] |
叶雪梅, 毛雪岷, 夏锦春, 等. 文本分类TF-IDF算法的改进研究. 计算机工程与应用, 2019, 55(2): 104-109, 161. DOI:10.3778/j.issn.1002-8331.1805-0071 |
[5] |
许甜华, 吴明礼. 一种基于TF-IDF的朴素贝叶斯算法改进. 计算机技术与发展, 2020, 30(2): 75-79. DOI:10.3969/j.issn.1673-629X.2020.02.016 |
[6] |
段国仑, 谢钧, 郭蕾蕾, 王晓莹. Web文档分类中TFIDF特征选择算法的改进. 计算机技术与发展, 2019, 29(5): 49-53. DOI:10.3969/j.issn.1673-629X.2019.05.010 |
[7] |
张玉芳, 彭时名, 吕佳. 基于文本分类TFIDF方法的改进与应用. 计算机工程, 2006, 32(19): 76-78. DOI:10.3969/j.issn.1000-3428.2006.19.028 |
[8] |
黄磊, 伍雁鹏, 朱群峰. 关键词自动提取方法的研究与改进. 计算机科学, 2014, 41(6): 204-207. DOI:10.11896/j.issn.1002-137X.2014.06.040 |
[9] |
周炎涛, 唐剑波, 王家琴. 基于信息熵的改进TFIDF特征选择算法. 计算机工程与应用, 2007, 43(35): 156-158, 171. DOI:10.3321/j.issn:1002-8331.2007.35.047 |
[10] |
Salton G, Buckley B. Term-weighting approaches in automatic text retrieval. Information Processing & Management, 1998, 24(5): 513-523. |
[11] |
徐凤亚, 罗振声. 文本自动分类中特征权重算法的改进研究. 计算机工程与应用, 2005, 41(1): 181-184, 220. DOI:10.3321/j.issn:1002-8331.2005.01.056 |
[12] |
黄勇, 罗文辉, 张瑞舒. 改进朴素贝叶斯算法在文本分类中的应用. 科技创新与应用, 2019, 5(5): 24, 27. |