Package detail

nodejieba-fix

yanyiwu49MIT2.2.6

this is a test package,don't download it

chinese, segment, cppjieba, jieba

readme

Build Status Author Platform Performance License Dependency Status devDependency Status NpmDownload Status NPM Version Code Climate Coverage Status


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

logo

介绍

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("红掌拨清波"));
//[ { word: '红掌', tag: 'n' },
//  { word: '拨', tag: 'v' },
//  { word: '清波', tag: 'n' } ]

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

关键词抽取

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

测试

以下版本中测试通过:

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

应用

性能评测

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

在线演示

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

NodeJieba 在 Windows 上面的一系列安装问题和斗争成功过程参考

客服

Email: i@yanyiwu.com QQ: 64162451

image

许可证

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

鸣谢

Jieba中文分词

作者

Bitdeli Badge

changelog

NodeJieba ChangeLog

v2.2.5

v2.2.4

v2.2.3

  • update cppjieba -> 4a755dff to try fixing issue 65

v2.2.2

  • upgrade cppjieba -> v4.8.1
  • (word freq tag) format in user dict has been supported.

v2.2.1

  • fix bug in v2.2.0 about 'cutSmall'

v2.2.0

  • add api cutSmall to cut words in specific word length limit

v2.1.0

  • function tag,extract return objects, instead of strings.
  • fix issue issue 58

v2.0.0

  • Upgrade cppjieba -> v4.8.0
  • rewrite cut function:
  • add cutAll for old cut(s, "FULL") function.
  • add cutHMM for old cut(s, "HMM") function.
  • add cutForSearch for old cut(s, "Query") function.

v1.4.11

  • Upgrade dependencies

  • "nan": "~2.2.0" -> "~2.3.0"

  • Upgrade devDependencies

  • "mocha": "~2.3.4" -> "~2.4.5"

  • "should": "~8.0.2" -> "~8.3.1"

  • Upgrade deps/

  • cppjieba -> v4.7.0

  • limonp -> v0.6.1

v1.4.10

Upgrade to fix potential trouble:

  • limonp -> v0.5.6
  • cppjieba -> v4.5.2

v1.4.9

Upgrade limonp and cppjieba to fix issue48

  • limonp -> v0.5.4
  • cppjieba -> v4.5.0

v1.4.8

Upgrade:

v1.4.7

Upgrade:

  • limonp -> v0.5.3, fix incompatibility problem in Windows.

v1.4.6

Change source codes layout

  • lib/jieba/limonp -> deps/limonp
  • lib/jieba -> deps/cppjieba

Upgrade:

  • limonp -> v0.5.2, fix incompatibility problem of issue45
  • cppjieba -> v4.3.2

v1.4.5

  • 修复多余日志输出的问题。

v1.4.4

  • 升级 cppjieba 到最新版本 v4.2.1

v1.4.3

  • 升级 cppjieba 到最新版本 v4.1.2

v1.4.2

  • 升级 package.json 里面的依赖库。

v1.4.1

v1.4.0

  • 对MP算法的分词方式新增一个粒度参数,解决issue29关于细粒度分词的问题。

v1.3.0

  • 合并 [pr37], 修复 issue36 。 放弃对旧版本 node.js v0.11 的支持。

v1.2.2

  • 修复依赖的nan版本的问题。

v1.2.1

  • 修复load函数重复调用时内存没有释放的问题。

v1.2.0

  • 同时支持【不配置词典文件直接使用】和【灵活配置词典】的需求。

v1.1.0

  • 新增支持动态增加词库的API函数: insertWord

v1.0.3

  • Merge Pull Request pr28,显示声明依赖的是 node 后缀的文件,解决一些库重写了 require 的问题。

v1.0.2

  • 修复在 windows 上编译不通过的问题,提升兼容性。

v1.0.1

  • 修复在iojs v2.2.1 上编译不通过的问题,提升兼容性。

v1.0.0

  • 使用cppjieba v3.0.0 版本,使用更简洁的接口函数,可以使用参数指定切词方法。
  • require("nodejieba") 时自动载入词典,用户无需再烦心字典的事情,实现即插即用。
  • 听从 issue23 的建议,废除异步调用的接口,现在的接口函数都是同步调用函数,分别是 cut, tag, extract 。因为分词毕竟是CPU密集型的事情,没必要使用异步调用。

v0.2.13

  • 升级nan^v1.8.0 以支持 iojs-v2.x

v0.2.12

  • 新增以下默认词典地址,让使用者不需要自己写词典的相对地址。
  • nodejieba.DEFAULT_DICT
  • nodejieba.DEFAULT_HMM_DICT
  • nodejieba.DEFAULT_USER_DICT
  • nodejieba.DEFAULT_IDF_DICT
  • nodejieba.DEFAULT_STOP_WORD_DICT

v0.2.11

  • 更新 cppjieba
  • 打印更详细的初始化错误日志信息。

v0.2.10

  • 避免一些在Mac系统下的词典载入日志,更干净的用户体验。

v0.2.9

  • 支持vs2012编译。

v0.2.8(deleted)

  • 支持vs2012编译。

v0.2.7

  • 关键词抽取支持自定义词典(可选参数)。

v0.2.6

  • 修复不同Node版本的兼容性问题,在v0.11.13下测试通过。
  • 支持自定义词典(可选参数)。
  • 增加关键词抽取功能。

v0.2.5

  • 增加词性标注功能

v0.2.4

  • 更新 package 兼容更低版本的 npm

v0.2.3

  • 更新 cppjieba ,减少内存使用。

v0.2.2

  • 在queryLoadDict 函数中增加query模式的粒度阈值作为可选参数。

v0.2.1

  • 增加搜索引擎分词模式,分别对应的调用函数是 queryLoadDict, queryCutSync, queryCut

v0.2.0

  • 将原来的 cut 阻塞分词模式改为非阻塞模式
  • 阻塞分词模型的函数名为 cutSync

v0.1.4

  • 修复关于较低版本编译器需要使用tr1/unordered_map导致和node-gyp编译选项-fno-rtti冲突的编译错误问题。

v0.1.3

  • 更新cppjieba,支持更低版本的g++。

v0.1.2

  • 更新cppjieba,使用less_memory这个branch来减少Trie树内存的开销。

v0.1.1

  • 依照node的c++扩展的常规写法,对cppjieba进行简单的包装,并已npm publish