盘古分词

联合创作 · 2023-09-29 05:31

盘古分词是一个基于 .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 字符每秒。

浏览 13
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报