Friso-1.5.0 发布 - C语言高性能中文分词器 - 多配置+繁体支持

狮子的魂
 狮子的魂
发布于 2013年11月28日
收藏 60

Friso中文分词器friso是使用c语言开发的一个开源中文分词器,使用流行的mmseg算法实现。完全基于模块化设计和实现,可以很方便的植入其他程序中,例如:MySQL,PHP,源码无需修改就能在各种平台下编译使用,并且提供了一个php的扩展: robbe. 目前支持UTF-8编码 

friso-1.5:

1. 加入sphinx定制输出, 同义词使用"|"串接, 例如: 研究|琢磨|研讨|钻研 生命

2. 修正了全部的tst-xxx源文件. friso API更改后测试样本文件没更改.

3. 修复friso.c#next_basic_latin中"数字+空格+单位"组合中忽略空格直接组合数字和单位的bug

4. 修复friso.c#next_basic_latin中"数字+中文+空格"组合切分乱码的bug

5. 引入friso_config_t多配置使用避免全局配置带来的更改不便, 更好的适合并发.

6. 将最新版本的Jcseg词库转换一份得到了Friso的繁体词库, 当然, 本身Friso已经支持了繁体切分, 只要放入繁体词库即可. 同时也可以使用简繁体的混合词库实现简繁体的相互切分.

另外Friso已经托管到git@osc: http://git.oschina.net/lionsoul/friso

git@osc中最新发布了一份开发帮助文档.

感谢网友的一度反馈和支持, 祝大家工作愉快.... 

 

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:Friso-1.5.0 发布 - C语言高性能中文分词器 - 多配置+繁体支持
加载中

最新评论(11

中山野鬼
中山野鬼
如果只是基于mmseg,那么性能上,并没有质的改变。
狮子的魂
狮子的魂

引用来自“宏哥”的评论

和scws有什么差异?

web接口的封装不是问题. web封装对lucene的支持就是个不方便的问题了, 毕竟使用java开发东西, 从开发效率来说, 比C还是要方便一些...
宏哥
宏哥

引用来自“狮子的魂”的评论

引用来自“宏哥”的评论

引用来自“狮子的魂”的评论

引用来自“宏哥”的评论

和scws有什么差异?

还有一点就是, friso词库全部载入了主存, 这个自然要比scws多耗费一些内存.... 20W词条13M内存的样子...

词性其实非常重要, 而且你没有必要做java和c的版本,浪费力气。
包装一个web接口就可以了
也不需要和mysql/pg做紧耦合集成
http://www.oschina.net/question/96003_19020

恩, 和mysql和pg的耦合确实可以通过在逻辑层来完成.

java版本的支持词性的标注. friso的话后期会加入词性的标注的. 感谢 @宏哥 的建议....

同时开发java版本和c版本: 我的些许产品中需要特殊的直接嵌入支持, 基于sock的话有些不方便, 顺便也学习下啦....

你只需要C版本即可。
web接口 用libevent发布, 比维护java版本更容易。
狮子的魂
狮子的魂

引用来自“宏哥”的评论

引用来自“狮子的魂”的评论

引用来自“宏哥”的评论

和scws有什么差异?

还有一点就是, friso词库全部载入了主存, 这个自然要比scws多耗费一些内存.... 20W词条13M内存的样子...

词性其实非常重要, 而且你没有必要做java和c的版本,浪费力气。
包装一个web接口就可以了
也不需要和mysql/pg做紧耦合集成
http://www.oschina.net/question/96003_19020

恩, 和mysql和pg的耦合确实可以通过在逻辑层来完成.

java版本的支持词性的标注. friso的话后期会加入词性的标注的. 感谢 @宏哥 的建议....

同时开发java版本和c版本: 我的些许产品中需要特殊的直接嵌入支持, 基于sock的话有些不方便, 顺便也学习下啦....
宏哥
宏哥

引用来自“狮子的魂”的评论

引用来自“宏哥”的评论

和scws有什么差异?

还有一点就是, friso词库全部载入了主存, 这个自然要比scws多耗费一些内存.... 20W词条13M内存的样子...

词性其实非常重要, 而且你没有必要做java和c的版本,浪费力气。
包装一个web接口就可以了
也不需要和mysql/pg做紧耦合集成
http://www.oschina.net/question/96003_19020
狮子的魂
狮子的魂

引用来自“宏哥”的评论

和scws有什么差异?

还有一点就是, friso词库全部载入了主存, 这个自然要比scws多耗费一些内存.... 20W词条13M内存的样子...
狮子的魂
狮子的魂

引用来自“宏哥”的评论

和scws有什么差异?

其实这个问题最不好回答了. scws是前辈, 粗略的说下吧:

(1). 首先都是半统计式的机械分词, 所以准确率都差不多, friso用的是mmseg, 整体准确率比scws稍高.
(2). scws对GBK和UTF-8都有支持, friso目前就支持UTF-8编码.
(3). scws的词库选择的是hash文件存储, friso是用的是全部加载到内存, 所以friso的切分速度比scws要快很多, 尤其在并发情况下.
(4). 因为上一点, scws的词库维护确实不怎么方便, friso的词库全部是文本文档, 可以很方便的添加词库和词条, 并且对词库进行了分类.
(5). scws有一定的未登录词识别能力, 这个friso目前没有...
(6). scws还有一个不太好的地方就是: 递归用的太多了..
宏哥
宏哥
和scws有什么差异?
狮子的魂
狮子的魂

引用来自“块块”的评论

果断收藏

感谢支持...
块块
块块
果断收藏
返回顶部
顶部