THUCTC(THU Chinese Text Classification)是由清华大学自然语言处理实验室推出的中文文本分类工具包,能够自动高效地实现用户自定义的文本分类语料的训练、评测、分类功能。文本分类通常包括特征选取、特征降维、分类模型学习三个步骤。如何选取合适的文本特征并进行降维,是中文文本分类的挑战性问题。我组根据多年在中文文本分类的研究经验,在THUCTC中选取二字串bigram作为特征单元,特征降维方法为Chi-square,权重计算方法为tfidf,分类模型使用的是LibSVM或LibLinear。THUCTC对于开放领域的长文本具有良好的普适性,不依赖于任何中文分词工具的性能,具有准确率高、测试速度快的优点。
目前THUCTC工具包下载次数为:
我们提供了两种方式运行工具包:
使用java开发工具,例如eclipse,将包括lib\THUCTC_java_v1.jar在内的lib文件夹下的包导入自己的工程中,仿照Demo.java程序调用函数即可。
使用根目录下的THUCTC_java_v1_run.jar运行工具包。
使用命令 java -jar THUCTC_java_v1_run.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%。
文本分类的性能评价有多种指标,其中主流的文本分类评价指标包括准确率、召回率、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 |
Source | Description | Size | Data |
---|---|---|---|
THUCTC_java_v1_run.zip | THUCTC可执行的jar包(Java版) | 1.2MB | 2016-01-25 |
THUCTC_java_v1.zip | THUCTC可导入的jar包,包括源代码(Java版) | 1.1MB | 2016-01-25 |
THUCNews.zip | THUCNews中文文本数据集 | 1.56GB | 2016-01-25 |
THUCNews_model.zip | 使用THUCNews中文文本数据集训练出来的THUCTC模型,可直接使用;参数为-d1 0.8 -d2 0.2 -f 20000 |
2.6MB | 2016-12-18 |
使用工具进行训练和测试时,训练语料和测试语料请严格按照如下格式放置:
Train(Test)\
类别1\
1.txt
2.txt
3.txt
...
n.txt
类别2\
...
...
类别n\
...
该工具是通用的中文文本分类工具包,在针对中文文本进行分类时,选取二字串bigram作为特征单元是经过全面的实验分析和比较的。但在针对英文文本进行分类时,我们不保证选取二字串bigram作为特征单元的效果是最优的。
如果您在THUCTC基础上发表论文或取得科研成果,请您在发表论文和申报成果时声明“使用了清华大学THUCTC”,并按如下格式引用:
中文:孙茂松,李景阳,郭志芃,赵宇,郑亚斌,司宪策,刘知远. THUCTC:一个高效的中文文本分类工具包. 2016.
英文: Maosong Sun, Jingyang Li, Zhipeng Guo, Yu Zhao, Yabin Zheng, Xiance Si, Zhiyuan Liu. THUCTC: An Efficient Chinese Text Classifier. 2016.
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(孙茂松,导师),Jingyang Li(李景阳,博士生),Zhipeng Guo(郭志芃,本科生),Yu Zhao(赵宇,博士生),Yabin Zheng(郑亚斌,博士生),Xiance Si(司宪策,博士生),Zhiyuan Liu(刘知远,助理教授).
使用者如有任何问题、建议和意见,欢迎发邮件至 thunlp@gmail.com 。