THUCTC: 一个高效的中文文本分类工具包

目录

项目介绍

THUCTC(THU Chinese Text Classification)是由清华大学自然语言处理实验室推出的中文文本分类工具包,能够自动高效地实现用户自定义的文本分类语料的训练、评测、分类功能。文本分类通常包括特征选取、特征降维、分类模型学习三个步骤。如何选取合适的文本特征并进行降维,是中文文本分类的挑战性问题。我组根据多年在中文文本分类的研究经验,在THUCTC中选取二字串bigram作为特征单元,特征降维方法为Chi-square,权重计算方法为tfidf,分类模型使用的是LibSVM或LibLinear。THUCTC对于开放领域的长文本具有良好的普适性,不依赖于任何中文分词工具的性能,具有准确率高、测试速度快的优点。

目前THUCTC工具包下载次数为:

使用方法

我们提供了两种方式运行工具包:

  1. 使用java开发工具,例如eclipse,将包括lib\THUCTC_java_v1.jar在内的lib文件夹下的包导入自己的工程中,仿照Demo.java程序调用函数即可。

  2. 使用根目录下的THUCTC_java_v1_run.jar运行工具包。

    使用命令 java -jar THUCTC_java_v1_run.jar + 程序参数

运行参数

样例程序

我们随工具包提供了一个调用THUCTC的样例代码Demo.java,其中实现了三种功能:

  1. 对文本进行训练并测试(runTrainAndTest);
  2. 读取已经训练好的模型,对文件进行分类(runLoadModelAndUse);
  3. 按照自己的想法添加训练文件,训练模型(AddFilesManuallyAndTrain);

BasicTextClassifier类接口说明

BasicTextClassifier 是系统的入口类,提供多种设置接口供使用者调用。利用此入口类可以从文件中读入别信息、设置训练语料路径、设置训练参数以及模型保存路径等。

其中常用的类成员函数包括:

中文文本分类数据集THUCNews

THUCNews是根据新浪新闻RSS订阅频道2005~2011年间的历史数据筛选过滤生成,包含74万篇新闻文档(2.19 GB),均为UTF-8纯文本格式。我们在原始新浪新闻分类体系的基础上,重新整合划分出14个候选分类类别:财经、彩票、房产、股票、家居、教育、科技、社会、时尚、时政、体育、星座、游戏、娱乐。使用THUCTC工具包在此数据集上进行评测,准确率可以达到88.6%。

测试结果

文本分类的性能评价有多种指标,其中主流的文本分类评价指标包括准确率、召回率、F-measure、微平均与宏平均等。其中,微平均指所有样本的测试结果的算数平均值,宏平均指所有类别的测试结果的算数平均值。我们的测试也主要对这些指标进行测试。

我们选取上节介绍的数据集进行测试,测试时使用以下参数组合(-d1 -d2),(-f):

获取链接

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

注意事项

  1. 使用工具进行训练和测试时,训练语料和测试语料请严格按照如下格式放置:

     Train(Test)\
         类别1\
             1.txt
             2.txt
             3.txt
             ...
             n.txt
         类别2\
             ...
         ...
         类别n\
             ...
    
  2. 该工具是通用的中文文本分类工具包,在针对中文文本进行分类时,选取二字串bigram作为特征单元是经过全面的实验分析和比较的。但在针对英文文本进行分类时,我们不保证选取二字串bigram作为特征单元的效果是最优的。

  3. 在进行训练模型时,请注意根据自己的语料大小设置相应的使用内存上限。例如语料大小为2GB的时候,至少设置使用内存大小为4GB(-Xmx4096m)。如若程序执行缓慢,请调大使用内存上限。
  4. 由于window系统上java使用内存的限制(大约在1GB),请避免在window系统上使用较大的语料进行训练。

开源协议

  1. THUCTC面向国内外大学、研究所、企业以及个人研究者免费开放源。
  2. 如有机构或个人拟将THUCTC用于商业目的,请发邮件至thunlp@gmail.com洽谈技术许可协议。
  3. 欢迎对该工具包的任何宝贵意见和建议,请发邮件至thunlp@gmail.com。
  4. 如果您在THUCTC基础上发表论文或取得科研成果,请您在发表论文和申报成果时声明“使用了清华大学THUCTC”,并按如下格式引用:

  5. 本工具包采用LibSVMLiblinear实现分类算法,特此致谢。该模块遵守LibSVM/Liblinear工具包指定的协议。

相关论文

作者

Maosong Sun(孙茂松,导师),Jingyang Li(李景阳,博士生),Zhipeng Guo(郭志芃,本科生),Yu Zhao(赵宇,博士生),Yabin Zheng(郑亚斌,博士生),Xiance Si(司宪策,博士生),Zhiyuan Liu(刘知远,助理教授).

使用者如有任何问题、建议和意见,欢迎发邮件至 thunlp@gmail.com 。

版权所有:清华大学自然语言处理与社会人文计算实验室
Copyright:Natural Language Processing and Computational Social Science Lab, Tsinghua University