NodeJieba "結巴"分詞的Node.js版本

jopen 8年前發布 | 50K 次閱讀 nodejieba 中文分詞

介紹

NodeJieba是"結巴"中文分詞的 Node.js 版本實現, 由CppJieba提供底層分詞算法實現, 是兼具高性能和易用性兩者的 Node.js 中文分詞組件。

特點

  • 詞典載入方式靈活,無需配置詞典路徑也可使用,需要定制自己的詞典路徑時也可靈活定制。
  • 底層算法實現是C++,性能高效。
  • 支持多種分詞算法,各種分詞算法見CppJieba的README.md介紹。
  • 支持動態補充詞庫。

對實現細節感興趣的請看如下博文:

下載

npm install nodejieba

因為npm速度很慢而且經常因為墻的原因出現莫名其妙的問題,可以試試使用cnpm,命令如下:

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

用法

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

更詳細的其他用法請看 test/demo.js

詞典載入可靈活配置

如果沒有主動調用詞典函數時, 則會在第一次調用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: 關鍵詞抽取所需的停用詞列表。

詞性標注

var nodejieba = require("nodejieba");
console.log(nodejieba.tag("紅掌撥清波"));
// [ '紅掌:n', '撥:v', '清波:n' ]

具體用法參考 test/demo.js

關鍵詞抽取

var nodejieba = require("nodejieba");
console.log(nodejieba.extract("升職加薪,當上CEO,走上人生巔峰。", 4));
// [ 'CEO:11.7392', '升職:10.8562', '加薪:10.6426', '巔峰:9.49396' ]

具體用法參考 test/demo.js

測試

以下版本中測試通過:

  • node v0.10.2
  • node v0.12.1
  • iojs v1.3.0
  • iojs v2.2.1
  • node v4.0.0

應用

性能評測

性能杠杠的,應該是目前性能最好的 Node.js 中文分詞庫,沒有之一。 詳見: Jieba中文分詞系列性能評測

在線演示

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

客服

Email: i@yanyiwu.com QQ: 64162451

image

許可證

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

鳴謝

Jieba中文分詞

作者

項目地址: https://github.com/yanyiwu/nodejieba

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!