盘古分词 -


Apache
Windows
C#

软件简介

盘古分词是一个基于 .net framework 的中英文分词组件。主要功能

  • 中文未登录词识别
    • 盘古分词可以对一些不在字典中的未登录词自动识别
  • 词频优先
    • 盘古分词可以根据词频来解决分词的歧义问题
  • 多元分词
    • 盘古分词提供多重输出解决分词粒度和分词精度权衡的问题
  • 中文人名识别
    • 输入: “张三说的确实在理”
    • 分词结果:张三/说/的/确实/在理/
    • 输入 “李三买了一张三角桌子”
    • 分词结果:李三/买/了/一张/三角/桌子/
  • 强制一元分词
    • 输入 “张三说的确实在理”
    • 分词结果: 张(0,1)/张三(0,5)/三说的(1,1)/三(1,1)/说(2,5)/的(3,5)/确(4,1)/确实(4,5)/实(5,1)/在 (6,1)/在理(6,5)/理(7,1)/
  • 繁体中文分词
    • 输入”我的選擇”
    • 分词结果: 我/的/選擇/
  • 同时输出简体和繁体
    • 输入”我的選擇”
    • 分词结果:我(0,5)/的(1,5)/选择(2,1)/選擇(2,5)/
  • 中文词性输出
    • 盘古分词可以将以登录词的中文词性输出给用户,以方便用户做进一步处理。
  • 全角字符支持
    • 盘古分词可以识别全角的字母和数字

英文分词

  • 英文分词
    • 英文单词通常都是靠空格等符号分割,这个比较简单,盘古分词分英文自然也没有什么问题。
  • 英文专用词识别

一些英文简写是字母符号混合,或者是字母数字混合,这个分词起来就不能按照空格符号这样分割了,对于字母符号混合的如 U.S.A ,
只要将这个 词录入到字典中,盘古分词就可以分出整词。对于字母和数字混合的,盘古分词会自动作为整词输出。

  • 英文原词输出
  • 英文大小写同时输出

其他功能

  • 停用词过滤

对于一些标点符号,连词,助词等有时候需要在分词时过滤掉,盘古分词提供一个 StopWord.txt 文件,用户只要将需要过滤的词加入到这个文件中,
并将停用词过滤开发打开,就可以过滤掉这些词。

  • 设置分词权值

盘古分词可以让用户对如下特性设置自定义权值

  1. 未登录词权值
  2. 最匹配词权值
  3. 次匹配词权值
  4. 再次匹配词权值
  5. 强行输出的单字的权值
  6. 数字的权值
  7. 英文词汇权值
  8. 符号的权值
  9. 强制同时输出简繁汉字时,非原来文本的汉字输出权值。

*用户自定义规则

  • 字典管理
    • 盘古分词提供一个字典管理工具 DictManage 通过这个工具,你可以增加,修改,和删除字典中的单词
  • 动态加载字典
    • 通过字典工具增加,修改,和删除字典中的单词后,保持字典,盘古分词会自动将新的字典文件加载进去,而不需要重新启动。
  • 关键词高亮组件

Lucene 提供了一个关键词高亮组件,但这个组件对中文的支持不是特别好,特别是如果还有多元分词的情况,处理的就更不好。
盘古分词提供了一 个针对中文和英文的关键词高亮组件 PanGu.HighLight ,其对中文的支持要好于Lucene 那个高亮组件。

  • 同义词输出(后续版本提供)
  • Lucene.net 接口及示例

在PanGu4Lucene 这个包里面有我做的一个盘古+Lucene 的简单新闻搜索Web示例程序,Release 包里面有使用说明。

性能指标

Core Duo 1.8 GHz 下单线程 分词速度为 390K 字符每秒,2线程分词速度为 690K 字符每秒。