基于tfidf算法和相关词权重修正的文本分类方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于tfidf算法和相关词权重修正的文本分类方法。
背景技术
现有技术中,文本分类常用的技术是通过tfidf算法,计算机出相关词的权值,将相关词向量化。
tfidf算法由Salton在1988年提出,算法核心是:在同一文本中出现的频率较高,在不同文本中出现的频率较低的词应该赋予更高的权值,其中,词语在文本中出现的频率(TF),用于描述该词反映该文档内容的能力;反文档频率(IDF),用于计算该词区分不同文档的能力,计算公式如下:
TF_IDF(i,j)=TF(i,j)*IDFi
n(i,j):i词在文档j中出现的次数
Σkn(k,j):文档j中所有有效字词的出现次数之和
|D|:语料库中的文档总数
|{j:ti∈dj}|:包含词语i的文档总数,为了避免词语不在语料库中分母为零的情况,一般+1操作。
利用tfidf算法进行文本分类的缺点是:tfidf算法假设条件是,文本频数越小的单词区分不同的类别的文本的能力就越大,因此引出了逆文档频率IDF的概念,完成对权值TF的调整,调整权值的目的在于突出重要单词,抑制次要单词,该算法的简单结构不能有效的反映单词的重要程度以及特征词的位置分布情况,无法很好的完成对权值调整的功能,文本分类的精度不是很高。
发明内容
本发明所要解决的技术问题是提供一种基于tfidf算法和相关词权重修正的文本分类方法,加大类别关键词权重,同时考虑类别关键词窗口内的其他词语,修正窗口内其他词语的权重,以提高文本分类的精度。
为解决上述技术问题,本发明的技术方案是:一种基于tfidf算法和相关词权重修正的文本分类方法,包括以下步骤:
S1:从部分训练数据中或根据用户提供的关键字提取出类别关键字;
S2:将文本的分词结果构成一个滑动文本窗,对各个词语的权重进行设定,并修正其在滑动文本窗的位置;
S3:根据所述词语的权重,及其在滑动文本窗中的位置,根据词频统计修正函数计算出所述词语的词频;
S4:根据TFIDF算法将所述文本的词语分别进行加权计算,实现所述文本词语的向量化;
S5:通过SVM分类器,进行文本分类。
作为优选的技术方案,步骤S1具体包括以下步骤:
输入部分训练数据;
根据TFIDF算法,将所述训练数据转成TFIDF向量的模式;
选择TFIDF值最大的若干个词语为类别关键字。
作为优选的技术方案,步骤S1还包括以下步骤:
用户提供若干个类别关键字,将用户提供的类别关键字与根据TFIDF算法提取的类别关键字合并,形成最终类别关键字。
作为优选的技术方案,步骤S2具体包括以下步骤:
将所述文本的分词结果构成一个滑动文本窗,每个词语在所述滑动文本窗中占用一个位置,设定所述滑动文本窗的长度为2t+1,当前词语的位置为i,处于首位的词语的位置为i-t;位于末位的词语的位置为i+t;
将所述词语与类别关键字比较,若所述词语是类别关键字,设定所述词语的权重为K3,所述滑动文本窗的位置移动2t+1,所述词语在所述滑动文本窗的当前位置修正为i+2t+1,处于首位的词语的位置修正为i+t+1,位于末位的词语的位置为修正i+3t+1;
若所述词语是窗口中的其他词语,设定所述词语的权重为K2,所述滑动文本窗的位置移动一个位置,所述词语在所述滑动文本窗的当前位置修正为i+1,处于首位的词语的位置修正为i-t+1,位于末位的词语的位置修正为i+t+1;
若所述词语是普通词语,设定所述词语的权重为K1,所述滑动文本窗的位置移动一个位置,所述词语在所述滑动文本窗的当前位置修正为i+1,处于首位的词语的位置修正为i-t+1,位于末位的词语的位置为修正i+t+1;
其中,K3>K2>K1。
作为优选的技术方案,所述步骤S3中,词频统计修正函数的公式是:n(i,j,x)=n(i,j)*k(i,x),其中
k(i,x):表示针对x类别的权重设置函数;
n(i,j):表示j文档中i词语出现的位置情况;
n(i,j,x):表示针对x类别的词频统计权重修正函数。
由于采用了上述技术方案,本发明的有益效果是:
文本分类过程中,增加类别关键字的权重,使得文本向量化之后的结果更好的反应文本信息。
由于传统的tfidf算法没有考虑词语的位置信息,在实际操作中,如果当前词语对类别影响较大,则当前类别所在的句子对文本的类别划分同样有很大的贡献,本发明引入文本滑动窗口,充分考虑了词语在文本中的位置信息。
类别关键词来源于一部分的训练数据以及用户提供,类别关键字的提取利用了tfidf算法,可以高效准确的提取关键词的特性,同时兼顾了实际应用场景类别关键词较少的情况,类别关键字提取全面且准确。
本发明通过滑动窗口对词频TF进行统计,算法复杂度较低,计算和处理的周期短,对文本分类的流程、难度以及数据处理速度影响有限。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的流程图;
图2是本发明实施例中滑动文本窗中类别关键词的分布位置结构图;
图3是本发明实施例中修正后滑动文本窗中类别关键词的分布位置结构图;
图4是本发明实施例中滑动文本窗中窗口词语或其他词语的分布位置结构图;
图5是本发明实施例中修正后滑动文本窗中窗口词语或其他词语的分布位置结构图。
具体实施方式
如图1所示,一种基于tfidf算法和相关词权重修正的文本分类方法,包括以下步骤:
S1:从部分训练数据中或根据用户提供的关键字提取出类别关键字;
S2:将文本的分词结果构成一个滑动文本窗,对各个词语的权重进行设定,并修正其在滑动文本窗的位置;
S3:根据词语的权重,及其在滑动文本窗中的位置,根据词频统计修正函数计算出该词语的词频;
S4:根据TFIDF算法将所述文本的词语分别进行加权计算,实现文本词语的向量化;
S5:实现文本的向量化之后,通过svm分类器,进行文本分类。
较传统tfidf算法,本发明实施例准确率提升了1%左右,时间性能不变。
本实施例中,类别关键字的来源包括两部分,一部分来源于部分训练数据,一部分来源于用户提供,因此,优选的,步骤S1具体包括以下步骤:
输入部分训练数据;
根据TFIDF算法,将训练数据转成TFIDF向量的模式;
选择TFIDF值最大的若干个词语为类别关键字。
步骤S1还包括以下步骤:
用户提供若干个类别关键字,将用户提供的类别关键字与根据TFIDF算法提取的类别关键字合并,形成最终类别关键字。
步骤S2具体包括以下步骤:
将文本的分词结果构成一个滑动文本窗,每个词语在滑动文本窗中占用一个位置,设定滑动文本窗的长度为2t+1,当前词语的位置为i,处于首位的词语的位置为i-t;位于末位的词语的位置为i+t;
将该词语与类别关键字比较,若该词语是类别关键字,设定该词语的权重为K3,滑动文本窗中类别关键词的分布位置结构如图2所示,滑动文本窗的位置移动2t+1,词语在滑动文本窗的当前位置修正为i+2t+1,处于首位的词语的位置修正为i+t+1,位于末位的词语的位置修正为i+3t+1,修正后滑动文本窗中类别关键词的分布位置结构如图3所示。
若该词语是窗口中的其他词语,设定词语的权重为K2,滑动文本窗的位置移动一个位置,该词语在滑动文本窗的当前位置修正为i+1,处于首位的词语的位置修正为i-t+1,位于末位的词语的位置为修正i+t+1;
若该词语是普通词语,即该词语是除类别关键词和窗口词语之外的其他词语,设定词语的权重为K1,滑动文本窗中窗口词语或其他词语布位置结构如图4所示,滑动文本窗的位置移动一个位置,该词语在滑动文本窗的当前位置修正为i+1,处于首位的词语的位置修正为i-t+1,位于末位的词语的位置为修正i+t+1,修正后滑动文本窗中窗口词语或其他词语的分布位置结构如图5所示。
其中,K3>K2>K1。
步骤S3中,词频统计修正函数的公式是:n(i,j,x)=n(i,j)*k(i,x),其中
k(i,x):表示针对x类别的权重设置函数;
n(i,j):表示j文档中i词语出现的位置情况;
n(i,j,x):表示针对x类别的词频统计权重修正函数。
根据TFIDF算法:
TF_IDF(i,j,x)=TF(i,j,x)*IDFi
实际操作中,可设置K3=3,K2=2,K1=1。
以上显示和描述了本发明的基本原理、主要特征及本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。