MMSG 中文分词库
MMSG 最初由蔡志浩发明,是一种非常流行的中文分词算法。许多实现可以在不同的平台上使用,包括 Python、Java 等。
此包提供 Node.js 版本的 MMSG 算法,API 是异步的和事件系统。
到目前为止,这个包还在开发中,但是基本功能已经准备好了。
安装
Use nseg in your own package
$ npm install nseg
Or if you want to use nseg
command
$ npm install -g nseg
命令行调用
After intsalling globally, you can use nseg
command to:
help
$ nseg help
segment text using default dictionary
$ nseg segf -i ~/project/text/shi.txt -o ~/project/output/shi.txt
$ nseg segd -i ~/project/text -o ~/project/output
build user dictionary for loading aftermath
$ nseg dict ~/project/data/dict.js ~/dict/dict1.txt ~/dict/dict2.txt
$ nseg dict ~/project/data/dict.js ~/dict
build character-frequecy map for loading aftermath
$ nseg freq ~/project/data/freq.js ~/freq/data1.csv ~/freq/data2.csv
$ nseg freq ~/project/data/freq.js ~/freq
segment text using customized settings
$ nseg segd -d ~/project/data/dict.js -f ~/project/data/freq.js -i ~/project/text -o ~/project/output
$ nseg segd -l ~/project/lex/ -i ~/project/text -o ~/project/output
check the existence of a word
$ nseg check "石狮"
$ nseg check -d ~/project/data/dict.js "石狮"
在程序中使用
准备工作
- (Optional) 建立你自己的词汇和频率字典
- (Optional) 为特殊的文本模式创建自己的词汇处理程序
Examples
Stream-pipe style
var dict = require('../data/dict'),
freq = require('../data/freq'),
date = require('../lex/datetime'),
sina = require('../lex/sina');
var opts = {
dict: dict,
freq: freq,
lexers: [date, sina],
};
var nseg = require('nseg').evented(opts);
var strmOut = fs.createWriteStream(target, {flags: 'w+', encoding: 'utf-8'}),
strmIn = fs.createReadStream(input);
var pipe = nseg(strmIn, strmOut);
pipe.on('error', function (err) {
console.log('error', err);
});
pipe.start();
Normal callback style (buggy)
var dict = require('../data/dict'),
freq = require('../data/freq'),
date = require('../lex/datetime'),
sina = require('../lex/sina');
var opts = {
dict: dict,
freq: freq,
lexers: [date, sina],
};
var nseg = require('nseg').normal(opts);
nseg('研究生源计划', function (result) {
console.log(result);
});
词汇处理程序自定义
词法处理程序支持接受函数定义。
function accept(curchar, undecidedprefix, nextchar)
对于以下情况,返回值应为 -1、0、1 中的一个值:
- -1: 我们可以决定当前角色的负结果。
- 0 : 我们应该多读些字。
- 1 : 我们可以决定当前角色的负结果。
github 地址:https://github.com/mountain/nseg
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论