`

HanLP vs LTP 分词功能测试

 
阅读更多

 

 

文章摘自github,本次测试选用 HanLP 1.6.0 , LTP 3.4.0

 

测试思路

 

使用同一份语料训练两个分词库,同一份测试数据测试两个分词库的性能。

 

语料库选取1998年01月的人民日报语料库。199801人民日报语料

 

该词库带有词性标注,为了遵循LTP的训练数据集格式,需要处理掉词性标注。

 

测试数据选择SIGHan2005提供的开放测试集。

 

SIGHan2005的使用可以参见其附带的readme。

 

HanLP

 

java -cp libs/hanlp-1.6.0.jar com.hankcs.hanlp.model.perceptron.Main -task CWS -train -reference ../OpenCorpus/pku98/199801.txt -model cws.bin

 

mkdir -p data/model/perceptron/pku199801

 

mv -f cws.bin data/model/perceptron/pku199801/cws.bin

 

默认情况下,训练的迭代次数为5。

 

修改 src/main/resouces 文件:

 

root=../test-hanlp-ltp

 

打包命令:

 

gradle clean build

 

SIGHan2005的MSR测试集

 

执行命令:

 

java -cp build/libs/test-hanlp-ltp-1.0-SNAPSHOT.jar  com.zongwu33.test.TestForSIGHan2005 ../NLP/icwb2-data/testing/msr_test.utf8    segment-msr-result.txt

将分词的结果生成到segment-msr-result.txt文件里。 利用SIGHan2005的脚本生成分数:

 

perl ../NLP/icwb2-data/scripts/score ../NLP/icwb2-data/gold/msr_training_words.utf8 \

    ../NLP/icwb2-data/gold/msr_test_gold.utf8 segment-msr-result.txt > score-msr.ut8

可以得到 HanLP在MSR数据集上的测试结果:

 

=== TOTAL TRUE WORDS RECALL:0.870

=== TOTAL TEST WORDS PRECISION:0.848

=== F MEASURE:0.859

SIGHan2005的PKU测试集

 

java -cp build/libs/test-hanlp-ltp-1.0-SNAPSHOT.jar  com.zongwu33.test.TestForSIGHan2005 ../NLP/icwb2-data/testing/pku_test.utf8  segment-pku-result.txt

perl ../NLP/icwb2-data/scripts/score ../NLP/icwb2-data/gold/pku_training_words.utf8  ../NLP/icwb2-data/gold/pku_test_gold.utf8   segment-pku-result.txt > score-pku.utf8

结果:

 

=== TOTAL TRUE WORDS RECALL:0.894

=== TOTAL TEST WORDS PRECISION:0.915

=== F MEASURE:0.905

Docker安装 LTP

 

LTP

 

生成符合LTP训练格式的训练集文件:

 

java  -cp build/libs/test-hanlp-ltp-1.0-SNAPSHOT.jar  com.zongwu33.test.CreateSimpleCorpus ../OpenCorpus/pku98/199801.txt  simple-199801.txt

simple-199801.txt 即为结果。 训练集 和开发集都指定为这个文件:

 

../LTP/ltp-3.4.0/tools/train/otcws learn  --model model-test --reference simple-199801.txt --development simple-199801.txt  --max-iter  5

SIGHan2005的MSR测试集

 

测试:

 

../LTP/ltp-3.4.0/tools/train/otcws test  --model model-test  --input /data/testLTP/icwb2-data/testing/msr_test.utf8  > msr_result.txt

利用SIGHan2005的脚本生成分数:

 

perl icwb2-data/scripts/score icwb2-data/gold/msr_training_words.utf8 \

    icwb2-data/gold/msr_test_gold.utf8 msr_result.txt > ltp-msr-score.utf8

查看ltp-msr-score.utf8 :

 

=== TOTAL TRUE WORDS RECALL:0.886

=== TOTAL TEST WORDS PRECISION:0.854

=== F MEASURE:0.870

SIGHan2005的PKU测试集

 

../LTP/ltp-3.4.0/tools/train/otcws test  --model model-test  --input /data/testLTP/icwb2-data/testing/pku_test.utf8  > pku_result.txt

perl icwb2-data/scripts/score icwb2-data/gold/pku_training_words.utf8  \

    icwb2-data/gold/pku_test_gold.utf8  pku_result.txt > ltp-pku-score.ut8

=== TOTAL TRUE WORDS RECALL:0.928

=== TOTAL TEST WORDS PRECISION:0.939

=== F MEASURE:0.934

对比

 

MSR测试集:

 



 

1

 

性能测试

 

阿里云ECS机器配置:

 

机器配置:Intel Xeon CPU *4 2.50GHz,内存16G

 

测试数据集 20M的网络小说,约140315句(不含空行)。

 

HanLP

 

java -cp test-hanlp-ltp-1.0-SNAPSHOT.jar com.zongwu33.test.PerformanceTest  ../NLP/strict-utf8-booken.txt  

init model: 313 ms

total time:15677 ms

total num:140315

需要15.677 s,可以计算得到处理速度 1375k/s 。

 

LTP

 

 

../LTP/ltp-3.4.0/tools/train/otcws test  --model model-test  --input  strict-utf8-booken.txt  > /dev/null

 

[INFO] 2018-03-26 17:04:19 ||| ltp segmentor, testing ...

[INFO] 2018-03-26 17:04:19 report: input file = strict-utf8-booken.txt

[INFO] 2018-03-26 17:04:19 report: model file = model-test

[INFO] 2018-03-26 17:04:19 report: evaluate = false

[INFO] 2018-03-26 17:04:19 report: sequence probability = false

[INFO] 2018-03-26 17:04:19 report: marginal probability = false

[INFO] 2018-03-26 17:04:19 report: number of labels = 4

[INFO] 2018-03-26 17:04:19 report: number of features = 491820

[INFO] 2018-03-26 17:04:19 report: number of dimension = 1967296

[INFO] 2018-03-26 17:05:13 Elapsed time 53.680000

需要53s。处理速度389k/s。

 

对比



 

2

 

开源协议

 

Apache License Version 2.0

  • 大小: 44.1 KB
  • 大小: 10.1 KB
分享到:
评论

相关推荐

    ltp 分词模型

    ltp3.4.0 python 版本的分词模型,百度网盘下载太慢,我同时还找到了 windows 版本,具体详见: nlp demo 系列博文 https://blog.csdn.net/wangyaninglm/article/details/83479837 本下载资源免费,如有需要,请参照...

    LTP分词器python版本

    LTP分词器python版本,用于全文检索引擎中分词器部分,对于全文检索来说,建立索引时指定的分词器决定了后续检索和匹配的准确度 具体用法可以参考文章 ...

    ltp-cws:LTP中文分词模块

    为了方便用户使用分词功能,我们把分词模块独立出来开发了LTP分词版(LTP-CWS)。#安装LTP分词版##获得LTP分词版作为安装的第一步,你需要获得LTP-CWS。LTP-CWS包括两部分,分别是项目源码和编译好的模型文件。你可以...

    ltp工具包包括ltp分词模型、pos模型、ner模型、解析模型等

    里面包括ltp分词模型、pos模型、ner模型、解析模型等。

    ltp学习,测试方法

    测试Linux 内核的稳定性,熟悉ltp的用法,和具体的测试用例。

    Linux压力测试与LTP体系结构

    LTP性能测试相关资料 1 测试选择 2 评价系统资源利用率 3 分析内核代码覆盖率 4 评价最终压力测试

    LTP并口测试工具

    LTP并口测试工具,能够方便快速测试LTP并口好坏,使用简单的并口接头即可

    linux压力测试LTP

    linux压力测试LTP

    windows下LTP分词python3.5编译包

    解决windows下无法运行哈工大的分词数据,相比较于其他的分词工具,如jieba和中科院等等,做出一个比较,以便更好的优化分词质量

    linux下LTP测试环境使用说明

    linux下LTP测试环境使用说明

    LTP自动化测试

    很好啊,适合错Linux测试的人看看,当初我下载这个东西的时候可是要付钱的啊!

    LTP测试工具使用.docx

    这份文档是关于Linux Test Project(LTP)测试工具的使用说明: 1. LTP简介: 2. 源目录结构: 3. LTP安装: 4. LTP测试套件结构说明: 5. LTP测试套件测试内容: 详细介绍了LTP测试套件的测试内容,包括commands、...

    论文《基于LTP的LINUX内核测试方法研究》

    论文《基于LTP的LINUX内核测试方法研究》

    pyltp使用的cws_V3.4.0.model

    使用哈工大的ltp,少不了分词模型,由于ltp_data全量模型包太大,经常遇到下载不下来的问题,可以通过下载cws.model直接解决。该文件需要放置到全英文名的路径下才能用: import pyltp from pyltp import Segment...

    分词程序代码

    关于中文分词的算法实现

    ltp-linux稳定性测试文档

    ltp-linux稳定性测试文档,详细介绍ltp安装、测试过程。

    ltp哈工大NLP源码含(c# c++ ,java python ruby等)

    ltp哈工大NLP源码含(c# c++ ,java python ruby等)

    ltp-full-20150420

    ltp最新源码包。LTP套件是由 Linux Test Project 所开发的一套系统测试套件。它基于系统资源的利用率统计开发了一个测试的组合,为系统提供足够的压力。通过压力测试来判断系统的稳定性和可靠性。

    LTP测试套件.pdf

    LTP测试套件.pdf

Global site tag (gtag.js) - Google Analytics