THULAC:一个高效的中文词法分析工具包

THULAC:一个高效的中文词法分析工具包

项目官网:http://thulac.thunlp.org/

实验室官网:http://nlp.csai.tsinghua.edu.cn/site2/


THULAC 介绍

THULAC(THU Lexical Analyzer for Chinese)由清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包,具有中文分词和词性标注功能。THULAC具有如下几个特点:

能力强。

利用我们集成的目前世界上规模最大的人工分词和词性标注中文语料库(约含5800万字)训练而成,模型标注能力强大。

准确率高。

该工具包在标准数据集Chinese Treebank(CTB5)上分词的F1值可达97.3%,词性标注的F1值可达到92.9%,与该数据集上最好方法效果相当。

速度较快。

同时进行分词和词性标注速度为300KB/s,每秒可处理约15万字。只进行分词速度可达到1.3MB/s。


Demo

http://thulac.thunlp.org/demo


编译和安装

C++版

  在当前路径下运行
  make
  会在当前目录下得到 thulac 和 train_c
  (thulac 需要模型的支持,需要将下载的模型放到当前目录下)


参数

-t2s                将句子从繁体转化为简体
-seg_only           只进行分词,不进行词性标注
-deli delimeter     设置词与词性间的分隔符,默认为下划线_
-filter             使用过滤器去除一些没有意义的词语,例如“可以”。
-user userword.txt  设置用户词典,用户词典中的词会被打上uw标签。词典中每一个词一行,UTF8编码(python版暂无)
-model_dir dir      设置模型文件所在文件夹,默认为models/

java版

  可直接按照分词程序命令格式运行可执行的 jar 包
  自行编译需要安装 Gradle, 然后在项目根目录执行 gradle build, 生成文件在 build/libs 下
(thulac 需要模型的支持,需要将下载的模型放到当前目录下)


参数

-t2s                将句子从繁体转化为简体
-seg_only           只进行分词,不进行词性标注
-deli delimeter     设置词与词性间的分隔符,默认为下划线_
-filter             使用过滤器去除一些没有意义的词语,例如“可以”。
-user userword.txt  设置用户词典,用户词典中的词会被打上uw标签。词典中每一个词一行,UTF8编码(python版暂无)
-model_dir dir      设置模型文件所在文件夹,默认为models/

-input input_file   设置从文件读入,默认为命令行输入
-output output_file 设置输出到文件中,默认为命令行输出

python版(兼容python2.x和python3.x)

源代码下载
将 thulac 文件放到目录下,通过 import thulac 来引用
thulac 需要模型的支持,需要将下载的模型放到 thulac 目录下。

pip 下载 
pip install thulac
通过 import thulac 来引用


# 初始化程序,进行自定义设置
thulac(user_dict=None, model_path=None, T2S=False, seg_only=False, filt=False)

user_dict           设置用户词典,用户词典中的词会被打上uw标签。词典中每一个词一行,UTF8编码
T2S                 默认False, 是否将句子从繁体转化为简体
seg_only            默认False, 时候只进行分词,不进行词性标注
filt                默认False, 是否使用过滤器去除一些没有意义的词语,例如“可以”。
model_path          设置模型文件所在文件夹,默认为models/

# 对一句话进行分词
cut(文本, text=False) 

text                
默认为False, 是否返回文本,不返回文本则返回一个二维数组([[word, tag]..]),seg_only模式下tag为空字符。

# 对文件进行分词
cut_f(输入文件, 输出文件) 

# 命令行交互式分词(屏幕输入、屏幕输出)
run() 

使用方式

分词和词性标注程序
命令格式

C++版(接口调用参见1.5)

./thulac [-t2s] [-seg_only] [-deli delimeter] [-user userword.txt] 从命令行输入输出
./thulac [-t2s] [-seg_only] [-deli delimeter] [-user userword.txt] outputfile 利用重定向从文本文件输入输出(注意均为UTF8文本)
java版

java -jar THULAC_lite_java_run.jar [-t2s] [-seg_only] [-deli delimeter] [-user userword.txt] 从命令行输入输出
java -jar THULAC_lite_java_run.jar [-t2s] [-seg_only] [-deli delimeter] [-user userword.txt] -input input_file -output output_file 从文本文件输入输出(注意均为UTF8文本)
python版(兼容python2.x和python3.x)

通过 python 程序 import thulac,新建 thulac.thulac(args)类,其中 args 为程序的参数。之后可以通过调用 thulac.cut() 进行单句分词。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章