THUCTC(THU Chinese Text Classification)是由清华大学自然语言处理实验室推出的中文文本分类工具包,能够自动高效地实现用户自定义的文本分类语料的训练、评测、分类功能。文本分类通常包括特征选取、特征降维、分类模型学习三个步骤。如何选取合适的文本特征并进行降维,是中文文本分类的挑战性问题。我组根据多年在中文文本分类的研究经验,在THUCTC中选取二字串bigram作为特征单元,特征降维方法为Chi-square,权重计算方法为tfidf,分类模型使用的是LibSVM或LibLinear。THUCTC对于开放领域的长文本具有良好的普适性,不依赖于任何中文分词工具的性能,具有准确率高、测试速度快的优点。
我们提供了两种方式运行工具包:
使用java开发工具,例如eclipse,将包括lib\THUCTC_java_v1.jar在内的lib文件夹下的包导入自己的工程中,仿照Demo.java程序调用函数即可。
使用根目录下的THUCTC_java_v1_run.jar运行工具包。
使用命令 java -jar THUCTC_java_v1.jar + 程序参数
我们随工具包提供了一个调用THUCTC的样例代码Demo.java,其中实现了三种功能:
BasicTextClassifier 是系统的入口类,提供多种设置接口供使用者调用。利用此入口类可以从文件中读入别信息、设置训练语料路径、设置训练参数以及模型保存路径等。
其中常用的类成员函数包括:
public void Init(String[] args)
功能:输入运行参数,初始化系统。
public void runAsBigramChineseTextClassifier()
功能:根据参数,运行系统。
public boolean loadCategoryListFromFile(String filePath)
功能:从文件中获取分类列表,等同于参数-c filePath
public boolean loadCategoryListFromFolder(String folder)
功能:从文件夹中获取分类列表
public void addTrainingText(String category, String filename)
功能:给定类别,添加训练文本
public void addfiles(String filename)
功能:根据训练文件所在的文件夹名称,自动判别类别并加入训练,等同于参数-train filename
public ClassifyResult[] classifyFile(String filepath, int topN)
功能:对一个文件进行分类,返回前 topN 个分类结果。如果输入的 filepath 是文件夹,则只会在 Console 中打印每个子文件的分类结果,返回值是空数组,等同于参数-classify filepath -n topN
public ClassifyResult[] classifyText(String text, int topN)
功能:对一个文本进行分类,返回前 topN 个分类结果
public void testfiles(String filename)
功能:对文件进行自动分类测试,等同于参数-test filename
public double getPrecision()
功能:获得测试准确率
THUCNews是根据新浪新闻RSS订阅频道2005~2011年间的历史数据筛选过滤生成,包含74万篇新闻文档(2.19 GB),均为UTF-8纯文本格式。我们在原始新浪新闻分类体系的基础上,重新整合划分出14个候选分类类别:财经、彩票、房产、股票、家居、教育、科技、社会、时尚、时政、体育、星座、游戏、娱乐。使用THUCTC工具包在此数据集上进行评测,准确率可以达到88.6%。
数据集请登录thuctc.thunlp.org网站填写个人信息进行下载。
文本分类的性能评价有多种指标,其中主流的文本分类评价指标包括准确率、召回率、F-measure、微平均与宏平均等。其中,微平均指所有样本的测试结果的算数平均值,宏平均指所有类别的测试结果的算数平均值。我们的测试也主要对这些指标进行测试。
我们选取上节介绍的数据集进行测试,测试时使用以下参数组合(-d1 -d2),(-f)
:
-d1 0.7 -d2 0.3 -f 5000
微平均为最优
类别 | 正确率 | 召回率 | F-measure |
---|---|---|---|
体育 | 0.979 | 0.990 | 0.985 |
娱乐 | 0.946 | 0.958 | 0.952 |
家具 | 0.864 | 0.832 | 0.848 |
彩票 | 0.813 | 0.757 | 0.779 |
房产 | 0.973 | 0.972 | 0.973 |
教育 | 0.911 | 0.879 | 0.895 |
时尚 | 0.746 | 0.874 | 0.805 |
时政 | 0.780 | 0.901 | 0.836 |
星座 | 0.816 | 0.516 | 0.632 |
游戏 | 0.922 | 0.594 | 0.707 |
社会 | 0.836 | 0.820 | 0.828 |
科技 | 0.850 | 0.921 | 0.884 |
股票 | 0.895 | 0.833 | 0.863 |
财经 | 0.772 | 0.685 | 0.726 |
宏平均 | 0.861 | 0.823 | 0.842 |
微平均 | 0.884 |
-d1 0.8 -d2 0.2 -f 20000
宏平均为最优
类别 | 正确率 | 召回率 | F-measure |
---|---|---|---|
体育 | 0.979 | 0.986 | 0.983 |
娱乐 | 0.936 | 0.966 | 0.951 |
家具 | 0.871 | 0.883 | 0.877 |
彩票 | 0.967 | 0.862 | 0.911 |
房产 | 0.957 | 0.953 | 0.955 |
教育 | 0.887 | 0.850 | 0.868 |
时尚 | 0.868 | 0.881 | 0.875 |
时政 | 0.764 | 0.868 | 0.813 |
星座 | 0.974 | 0.618 | 0.756 |
游戏 | 0.922 | 0.536 | 0.678 |
社会 | 0.796 | 0.802 | 0.799 |
科技 | 0.845 | 0.882 | 0.863 |
股票 | 0.858 | 0.854 | 0.856 |
财经 | 0.779 | 0.656 | 0.713 |
宏平均 | 0.886 | 0.829 | 0.856 |
微平均 | 0.875 |
使用工具进行训练和测试时,训练语料和测试语料请严格按照如下格式放置:
Train(Test)\
类别1\
1.txt
2.txt
3.txt
...
n.txt
类别2\
...
...
类别n\
...
该工具是通用的中文文本分类工具包,在针对中文文本进行分类时,选取二字串bigram作为特征单元是经过全面的实验分析和比较的。但在针对英文文本进行分类时,我们不保证选取二字串bigram作为特征单元的效果是最优的。
在进行训练模型时,请注意根据自己的语料大小设置相应的使用内存上限。例如语料大小为2GB的时候,至少设置使用内存大小为4GB(-Xmx4096m)。如若程序执行缓慢,请调大使用内存上限。
由于window系统上java使用内存的限制(大约在1GB),请避免在window系统上使用较大的语料进行训练。
THUCTC面向国内外大学、研究所、企业以及个人研究者免费开放源。
如有机构或个人拟将THUCTC用于商业目的,请发邮件至[email protected]洽谈技术许可协议。
欢迎对该工具包的任何宝贵意见和建议,请发邮件至[email protected]。
如果您在THUCTC基础上发表论文或取得科研成果,请您在发表论文和申报成果时声明“使用了清华大学THUCTC”,并按如下格式引用:
中文:郭志芃,赵宇,郑亚斌,司宪策,刘知远,孙茂松. THUCTC:一个高效的中文文本分类工具包. 2016.
英文: Zhipeng Guo, Yu Zhao, Yabin Zheng, Xiance Si, Zhiyuan Liu, Maosong Sun. THUCTC: An Efficient Chinese Text Classifier. 2016.
本工具包采用LibSVM和Liblinear实现分类算法,特此致谢。该模块遵守LibSVM/Liblinear工具包指定的协议。
Jingyang Li, Maosong Sun. Scalable Term Selection for Text Categorization. Proc. of the 2007 Joint Conference on Empirical Methods in Natural Language Processing and Computational Natural Language Learning (EMNLP-CoNLL), Prague, Czech Republic, 2007, pp. 774-782.
Jingyang Li, Maosong Sun, Xian Zhang. A Comparison and Semi-Quantitative Analysis of Words and Character-Bigrams as Features in Chinese Text Categorization. Proc. of the 2006 Joint Conference of the International Committee on Computational Linguistics and the Association for Computational Linguistics (COLING-ACL 2006), Sydney, Australia, 2006, pp. 545-552.
指导教师:Maosong Sun(孙茂松教授)
贡献者:Zhipeng Guo(郭志芃),Yu Zhao(赵宇),Yabin Zheng(郑亚斌),Xiance Si(司宪策),Zhiyuan Liu(刘知远).
使用者如有任何问题、建议和意见,欢迎发邮件至 [email protected] 。