UNPKG

segment

Version:

Chinese word segmentation 中文分词模块

119 lines (103 loc) 5.9 kB
var assert = require('assert'); var Segment = require('../'); describe('ChsNameTokenizer', function () { var segment = null; var toStringArray = function (arr) { return arr.map(function (w) { return w.w; }); }; it('init', function () { segment = new Segment(); segment.useDefault(); }); it('default test', function () { var equal = function (a, b) { a = toStringArray(segment.doSegment(a)); console.log(a.join('/')); assert.equal(a.toString('\t'), b.toString('\t')); }; console.log('分词测试'); // 常用测试题目 equal('随着智能化住宅小区的普及和宽带接入技术的发展,各种基于宽带技术的应用服务也日益被人们所熟悉。', ['随着', '智能化', '住宅小区', '的', '普及', '和', '宽带接入', '技术', '的', '发展', ',', '各种', '基于', '宽带', '技术', '的', '应用服务', '也', '日益', '被', '人们', '所', '熟悉', '。']); equal('工信处女干事每月经过下属科室都要亲口交代24口交换机等技术性器件的安装工作。', ['工信处', '女', '干事', '每月', '经过', '下属', '科室', '都', '要', '亲口', '交代', '24口', '交换机', '等', '技术性', '器件', '的', '安装', '工作', '。']); equal('永和服装饰品有限公司', ['永和', '服装', '饰品有限公司']); equal('本科班学生', ['本科', '班', '学生']); equal('一次性交一百元', ['一次性', '交', '一百元']); equal('研究生命起源', ['研究', '生命', '起源']); equal('李三买了一张三角桌子', ['李三', '买', '了', '一张', '三角', '桌子']); equal('这就导致一些不太常见的人名无法被分出来', ['这', '就', '导致', '一些', '不', '太', '常见的', '人名', '无法', '被', '分', '出来']); equal('杭州市长春药店', ['杭州市', '长春', '药店']); equal('两个中国人名之间的成分', ['两个', '中国', '人名', '之间', '的', '成分']); //equal('叶莲美的一位亲戚', // ['叶莲美', '的', '一位', '亲戚']); equal('前几天王老头刚收到小孩寄来的照片', ['前几天', '王老头', '刚', '收到', '小孩', '寄', '来', '的', '照片']); // 针对特定类型识别 equal('1989年景甜出生于西安市。', ['1989年', '景甜', '出生', '于', '西安市', '。']); equal('王五和张三丰、李强是谁', ['王五', '和', '张三丰', '、', '李强', '是谁']); equal('她十二岁时是班花', ['她', '十二岁时', '是', '班花']); equal('10个100%纯度的', ['10个', '100%', '纯度', '的']); equal('分词正确率高达97.58%(即百分之九十七点五八,973专家评测结果)', ['分词', '正确率', '高达', '97.58%', '(', '即', '百分之九十七点五八', ',', '973', '专家', '评测', '结果', ')']); equal('邮箱mail-me@mail.ucdok.com', ['邮箱', 'mail-me@mail.ucdok.com']); equal('邮箱@mail.ucdok.com', ['邮箱', '@', 'mail.ucdok.com']); equal('我的邮箱是leizongmin@gmail.com,mail-me@mail.ucdok.com', ['我', '的', '邮箱', '是', 'leizongmin@gmail.com', ',', 'mail-me@mail.ucdok.com']); equal('欢迎访问我的个人主页http://ucdok.com娃哈哈', ['欢迎', '访问', '我', '的', '个人主页', 'http://ucdok.com', '娃哈哈']); // 其他 equal('胡锦涛出席APEC领导人会议后回京', ['胡锦涛', '出席', 'APEC', '领导人', '会议', '后', '回京']); equal('温家宝:主权问题中国绝不退让半步', ['温家宝', ':', '主权', '问题', '中国', '绝不', '退让', '半步']); equal('吴邦国与伊朗议长举行会谈', ['吴邦国', '与', '伊朗', '议长', '举行', '会谈']); equal('贾庆林会见厄瓜多尔客人', ['贾庆林', '会见', '厄瓜多尔', '客人']); equal('李克强会见世界经济论坛主席并座谈', ['李克强', '会见', '世界经济', '论坛', '主席', '并', '座谈']); equal('周永康会见新加坡荣誉国务资政', ['周永康', '会见', '新加坡', '荣誉', '国务', '资政']); equal('4700万资金至贵州灾区,震区民众生活获保障', ['4700万', '资金', '至', '贵州', '灾区', ',', '震区', '民众', '生活', '获', '保障']); equal('中国两艘海监船赴钓鱼岛宣示主权', ['中国', '两艘', '海监船', '赴', '钓鱼岛', '宣示', '主权']); equal('中日关系因钓鱼岛问题面临严峻局面', ['中日关系', '因', '钓鱼岛', '问题', '面临', '严峻', '局面']); equal('一一', ['一一']); equal('一 一', ['一', '一']); }); it('options: simple=true', function () { assert.equal(segment.doSegment('永和服装饰品有限公司', {simple: true}).join('\t'), ['永和', '服装', '饰品有限公司'].join('\t')); }); it('options: stripPunctuation=true', function () { assert.equal(segment.doSegment('王五和张三丰、李强是谁', {simple: true, stripPunctuation: true}).join('\t'), ['王五', '和', '张三丰', '李强', '是谁'].join('\t')); }); it('options: convertSynonym=true', function () { assert.equal(segment.doSegment('何时入睡', {simple: true, convertSynonym: true}).join('\t'), ['什么时候', '入眠'].join('\t')); }); it('options: stripStopword=true', function () { assert.equal(segment.doSegment('因为李三买了一张三角桌子', {simple: true, stripStopword: true}).join('\t'), ['李三', '买', '一张', '三角', '桌子'].join('\t')); }); });