/nodejieba

"结巴"中文分词的Node.js版本

Primary LanguageC++MIT LicenseMIT

Build Status Dependency Status devDependency Status NpmDownload Status


NodeJieba "结巴"分词的Node.js版本

介绍

NodeJieba只是CppJieba简单包装而成的node扩展,用来进行中文分词。

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

下载

npm install nodejieba

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

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

用法

默认分词算法

初始化

var nodejieba = require("nodejieba");
nodejieba.loadDict("./node_modules/nodejieba/dict/jieba.dict.utf8", "./node_modules/nodejieba/dict/hmm_model.utf8", "./node_modules/nodejieba/dict/user.dict.utf8");

阻塞式调用

var wordList = nodejieba.cutSync("阻塞模式分词");
if (wordList.constructor == Array) // just for tutorial, this is always be true 
{
    wordList.forEach(function(word) {
        console.log(word);     
    });
}

非阻塞式调用

nodejieba.cut("非阻塞模式分词", function(wordList) {
    wordList.forEach(function(word) {
        console.log(word);     
    });
});

搜索引擎分词算法

初始化

var nodejieba = require("nodejieba");
nodejieba.queryLoadDict("./node_modules/nodejieba/dict/jieba.dict.utf8", "./node_modules/nodejieba/dict/hmm_model.utf8", "./node_modules/nodejieba/dict/user.dict.utf8");

阻塞式调用

var wordList = nodejieba.queryCutSync("阻塞模式分词");
if (wordList.constructor == Array) // just for tutorial, this is always be true 
{
    wordList.forEach(function(word) {
        console.log(word);     
    });
}

非阻塞式调用

nodejieba.queryCut("非阻塞模式分词", function(wordList) {
    wordList.forEach(function(word) {
        console.log(word);     
    });
});

具体用法可以参考 test/segment.js test/query_segment.js

词性标注

具体用法可以参考 test/pos_tagger.js

关键词抽取

具体用法可以参考 test/keyword.js

测试

node v0.10.2, node v0.11.13, node v0.12.1, iojs v1.3.0 下测试通过。

在线演示

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

鸣谢

Jieba中文分词

作者