惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
D
Docker
Jina AI
Jina AI
The GitHub Blog
The GitHub Blog
博客园 - 聂微东
B
Blog RSS Feed
大猫的无限游戏
大猫的无限游戏
M
MIT News - Artificial intelligence
Vercel News
Vercel News
Microsoft Security Blog
Microsoft Security Blog
博客园 - 叶小钗
爱范儿
爱范儿
D
DataBreaches.Net
Hugging Face - Blog
Hugging Face - Blog
IT之家
IT之家
Recent Announcements
Recent Announcements
U
Unit 42
腾讯CDC
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
宝玉的分享
宝玉的分享
量子位
Stack Overflow Blog
Stack Overflow Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Azure Blog
Microsoft Azure Blog

博客园 - 破宝

SQLite全文检索(2) SQLite全文检索(1) 80块钱毁掉“猪八戒”的信誉 有点郁闷:MSDN文档中MidpointRounding.AwayFromZero的翻译错误 当 ASP.net Mobile Controls 碰到“中国特色”的 CMWAP / UNIWAP 闲话“正版”:正版软件和盗版软件的区别到底是什么? 闲话“正版”:真是因为“缺钱”吗? 又一个疑似Bug: XmlDataSource 控件的 Data 属性动态改变时,缓存不会自动失效 立此存照:System.Net.Mail 的 bug About GridView, HyperLinkField, UrlEncode 关于 GridView,HyperLinkField,UrlEncode WPF教程(译文)(第二部分) 破宝(percyboy)的自选精华版 破宝(percyboy)的留言板(2008/3~) WPF 教程(译文)(第一部分) Atlas 学习记录 ajaxnet4j beta Releases -- A Java Implementation of Ajax.NET Professional Library 好消息:Ajax.NET Professional open-sourced 及 ajaxnet4j 即将发布 NDoc Reloading: Kevin 留给我们的 NDoc 2.0 Alpha
imdict-chinese-analyzer .NET转写版
破宝 · 2011-02-11 · via 博客园 - 破宝

中文切词领域,中科院开发的 ICTCLAS 占有重要一席,号称是世界上最好的中文分词系统。ICTCLAS 初期曾发布过一个免费版本(C++),采用“自然语言处理开放资源许可证”公开。后来走向商业开发道路,最新版本是 ICTCLAS 2010,提供有 C++, Java, C# 等多种版本可供购买。

从 ICTCLAS Free 版有一些衍生版本:ictclas4j 是张新波(sinboy)移植的 Java 版本,SharpICTCLAS 是吕震宇移植的 C# 版本。这两个版本也采用“自然语言处理开放资源许可证”。

2009年中科院高小平针对 Lucene 用 Java 重写了 ICTCLAS 代码,采用 Apache Licence 2.0 协议公开了源码和词库数据,目前已并入了 Lucene contrib 代码树中。我花了些时间将这个版本转写为 C# 版。

下图表示了这些版本间的关系:(红色为商业软件,紫色为“自然语言处理开放资源许可证”,绿色为“Apache Licence 2.0”)

目前讨论较多的切词器,如庖丁解牛盘古分词等,多采用查词典的方式切分,词典质量决定切分效果。

ICTCLAS 切词基于概率统计的语料库(高小平称之为“智能词典”),算法基于“层叠式隐含马尔可夫模型”(Hierarchical Hidden Markov Model, HHMM)。仅就算法而言,应该说这是一种较为先进的方法,Google 研究员也说“统计语言模型比任何已知的借助某种规则的解决方法都有效”(数学之美系列)。

但是高小平贡献的版本(包括我转写的版本),从 ICTCLAS 中去除了一些功能,如:词性标注、人名识别、日期识别等等,特别是后两项,切分结果在这方面不是很理想。另外,“智能词典”里存储的是各种词汇出现的概率,是通过机器训练得到的,难以采用人工方式维护,这也是一个不方便之处。

关于我转写的版本:基本上没有改变高小平版的代码逻辑,仅将 Lucene Tokenizer 等相关接口改用了新版的接口标准(IncrementToken 方式)。

下载 (Apache Licence 2.0)