1,背景说明 GooSeeker分词软件在扩展功能模块上支持了经典的tf-idf算法和使用tf-idf手工筛选特征词的功能。 计算tf-idf的算法有很多,各自不同,为了适应各种不同的计算场景。此前,我们发布过两篇文章,介绍怎样利用从GooSeeker分词软件导出的词频表计算tf-idf值。那个算法十分简化,忽略了很多信息。而最经典的算法的特点是:
GooSeeker分词软件的扩展功能模块计算了一个词在每个文档中的tf-idf值,然后累加在一起得到这个词的全局tf-idf值。所以,从扩展模块V6.0.0版本开始,导出的分词结果表有下面的变化:
图1.词频表 图2.选词矩阵表 图3.选词矩阵TFIDF表 2,tf-idf计算公式 如上图3所示,算出来的tf-idf值存成一个矩阵,某个词对应某个文档算出来一个值,该词对应另一个文档算出来另一个值。计算公式是: TF-IDF = TF * IDF 其中: IDF = log((文档总数 + 1) / (包含该词的文档数 + 1)) + 1 TF = 词在该文档中的词频 / 该文档的总词频 观察上图1红框里面的两个词的tf-idf值,这两个词总词频和文档频率都一样,但是tf-idf值是不一样的。因为在计算TF的时候,分母是“该文档的总词频”,如果文档的词数多,这个分母的值就大;另外,如果在某个文档中出现这个词的次数多,另一个文档中出现的次数少,也会影响到tf-idf的值。所以,这样算出来的tf-idf包含的信息比以前的简化算法要多。 3,使用tf-idf值筛选词语 GooSeeker分词软件的一个重要功能是手工做特征选择。在GooSeeker分词扩展模块的聚类分析和LDA分析那里已经体会过通过“调参”改变所选特征词的范围,那是自动化的特征选择,只能通过改变一些参数来影响选择范围。要想精确控制选择哪些词,需要手工的特征选择。 在GooSeeker分词软件的扩展功能模块上,可以利用tf-idf值进行排序,把最前面的词选出来。如下图,勾选“所有页”,表示要选择所有词,在弹出框中决定是否再利用tf-idf进行排序,然后只要符合条件的词。这样做到既一次性选择所有词,又可以手工设定筛选条件。还可以在选词结果页面上观察所选的词,把不需要的词剔除掉。 |