Skip to content

Navigation Menu

Sign in
Sign up

Latest commit

History

37 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Build Status npm version NPM Downloads

node-analyzer

基于 IKAnalyzer 字典分词器的 node.js 实现

安装

 npm i node-analyzer

用法

test.js

 var Segmenter = require('node-analyzer');
 var segmenter = new Segmenter();
 
 var txt = '1995年10月,他与中方探讨了在海运、造船方面合作的可能与途径。';
 console.log('txt: ', txt);
 
 var result = segmenter.analyze(txt);
 console.log('result: ', result);
 
 // result: 1995年 10月 , 他 与 中方 探讨 了 在 海运 、 造船 方面 合作 的 可能 与 途径 。

字典

默认字典在 /lib/dict 目录下,当需要使用自定义字典时:// 全部字段可选

 var opts = {
 MainDictPath: 'your_dict_folder/main.dic',
 SurnameDictPath: 'your_dict_folder/dict/surname.dic',
 QuantifierDictPath: 'your_dict_folder/dict/quantifier.dic',
 SuffixDictPath: 'your_dict_folder/dict/suffix.dic',
 PrepDictPath: 'your_dict_folder/dict/preposition.dic',
 StopWordDictPath: 'your_dict_folder/dict/stopword.dic',
 Config: {
 ext_dict: [],
 ext_stopwords: []
 }
 };
 var segmenter = new Segmenter(opts);
 
 // var segmenter = new Segmenter(); // 使用默认字典

效果

对 Backoff 2005 的测试语料 pku_test.utf8,msr_test.utf8 结果如下:

msr_test.utf8:

标准词数:106873 个,正确词数:79516 个,错误词数:20638 个
标准行数:3985,正确行数:302 ,错误行数:3683
Recall: 74.4023279968%
Precision: 79.3937336502%
F MEASURE: 76.817033527%
ERR RATE: 0.193107707279%

pku_test.utf8:

标准词数:104372 个,正确词数:75045 个,错误词数:18985 个
标准行数:1944,正确行数:206 ,错误行数:1738
Recall: 71.9014678266%
Precision: 79.8096352228%
F MEASURE: 75.6494390178%
ERR RATE: 0.181897443759%

评分代码:

http://blog.csdn.net/mg1616/article/details/45545919

虽然准确率不高,但是考虑测试语料的标准分词也有不合理的地方,并且网络的快速发展,近年也出现不少新鲜词汇,所以这个效果应该是比较令人满意的。

性能

 初始化耗时:1094ms
 分词速度:358778.63 字/秒, 900763.36 字节/秒, 字数:1880000,耗时:5240ms

用最新版本的 io.js 2.02 测试时,耗时减少到50%,分词速度达到 50w字/秒

About

基于 IKAnalyzer 字典分词器的 node.js 实现

Resources

Stars

21 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

AltStyle によって変換されたページ (->オリジナル) /