7.1.5. NodeJieba

“结巴”分词的 Node.js 版本

7.1.5.1. 介绍

NodeJieba是“结巴”中文分词的 Node.js 版本实现,由CppJieba提供底层分词算法实现, 是兼具高性能和易用性两者的 Node.js 中文分词组件。

7.1.5.2. 特点

  • 词典载入方式灵活,无需配置词典路径也可使用,需要定制自己的词典路径时也可灵活定制。

  • 底层算法实现是 C++,性能高效。

  • 支持多种分词算法,各种分词算法见CppJieba的 README.md 介绍。

  • 支持动态补充词库。

对实现细节感兴趣的请看如下博文:

7.1.5.3. 下载

npm install nodejieba

因为npm速度很慢而且经常因为墙的原因出现莫名其妙的问题,可以试试使用cnpm,命令如下:

npm --registry=http://r.cnpmjs.org install nodejieba

7.1.5.4. 用法

var nodejieba = require("nodejieba");
var result = nodejieba.cut("南京市长江大桥");
console.log(result);
//["南京市","长江大桥"]

更详细的其他用法请看 <test/demo.js>

7.1.5.4.1. 词典载入

如果没有主动调用词典函数时,则会在第一次调用 cut 等功能函数时,自动载入默认词典。

如果要主动触发词典载入,则使用以下函数主动触发。

nodejieba.load();

以上用法会自动载入所有默认词典,如果需要载入自己的词典,而不是默认词典。 比如想要载入自己的用户词典,则使用以下函数:

nodejieba.load({
  userDict: "./test/testdata/userdict.utf8"
});

字典载入函数 load 的参数项都是可选的,如果没有对应的项则自动填充默认参数。 所以上面这段代码和下面这代代码是等价的。

nodejieba.load({
  dict: nodejieba.DEFAULT_DICT,
  hmmDict: nodejieba.DEFAULT_HMM_DICT,
  userDict: "./test/testdata/userdict.utf8",
  idfDict: nodejieba.DEFAULT_IDF_DICT,
  stopWordDict: nodejieba.DEFAULT_STOP_WORD_DICT
});

【词典说明】

  • dict: 主词典,带权重和词性标签,建议使用默认词典。

  • hmmDict: 隐式马尔科夫模型,建议使用默认词典。

  • userDict: 用户词典,建议自己根据需要定制。

  • idfDict: 关键词抽取所需的 idf 信息。

  • stopWordDict: 关键词抽取所需的停用词列表。

7.1.5.4.2. 词性标注

var nodejieba = require("nodejieba");
console.log(nodejieba.tag("红掌拨清波"));
//[ { word: '红掌', tag: 'n' },
//  { word: '拨', tag: 'v' },
//  { word: '清波', tag: 'n' } ]

更详细的其他用法请看 <test/demo.js>

7.1.5.4.3. 关键词抽取

var nodejieba = require("nodejieba");
var topN = 4;
console.log(nodejieba.extract("升职加薪,当上CEO,走上人生巅峰。", topN));
//[ { word: 'CEO', weight: 11.739204307083542 },
//  { word: '升职', weight: 10.8561552143 },
//  { word: '加薪', weight: 10.642581114 },
//  { word: '巅峰', weight: 9.49395840471 } ]

更详细的其他用法请看 <test/demo.js>

7.1.5.5. 测试

以下版本中测试通过:

  • node v0.10.2

  • node v0.12.1

  • iojs v1.3.0

  • iojs v2.2.1

  • node v4.0.0

  • node v5.7.0

7.1.5.6. 应用

7.1.5.7. 性能评测

性能杠杠的,应该是目前性能最好的 Node.js 中文分词库,没有之一。详见: jieba 中文分词系列性能评测

7.1.5.8. 在线演示

http://cppjieba-webdemo.herokuapp.com/(chrome is suggested)

7.1.5.10. 客服

Email: i@yanyiwu.com

QQ: 64162451

image

image

7.1.5.11. 许可证

MIT http://yanyiwu.mit-license.org

7.1.5.12. 鸣谢

jieba 中文分词

7.1.5.13. 作者