C语言开源高性能中文分词器 friso

Apache license 2.0
C/C++ 查看源码»
跨平台
2012-12-29
狮子的魂

Friso是使用c语言开发的一款开源的高性能中文分词器,使用流行的mmseg算法实现。完全基于模块化设计和实现,可以很方便的植入其他程序中,例如:MySQL,PHP,源码无需修改就能在各种平台下编译使用,加载完20万的词条,内存占用稳定为14.5M.

1。目前最高版本:friso 1.6.1,同时支持对UTF-8/GBK编码的切分,绑定了php扩展和sphinx token插件

2。三种切分模式:

(1).简易模式:FMM算法,适合速度要求场合。
(2).复杂模式-MMSEG四种过滤算法,具有较高的岐义去除,分词准确率达到了98.41%。
(3).(!New)检测模式:只返回词库中已有的词条,很适合某些应用场合。(1.6.1版本开始)
请参考本算法的原作:http://technology.chtsai.org/mmseg/

3。支持自定义词库。在dict文件夹下,可以随便添加/删除/更改词库和词库词条,并且对词库进行了分类。

4。简体/繁体/简繁体混合支持, 词库使用了friso的Java版本jcseg的简化词库。

5。支持中英/英中混合词的识别(维护词库可以识别任何一种组合)。例如:卡拉ok, 漂亮mm, c语言,IC卡,哆啦a梦。

7。很好的英文支持,英文标点组合词识别, 例如c++, c#, 电子邮件,网址,小数,分数,百分数。

8。(!New)自定义保留标点:你可以自定义保留在切分结果中的标点,这样可以识别出一些复杂的组合,例如:c++, k&r,code.google.com。

9。(!New)复杂英文切分的二次切分:默认Friso会保留数字和字母的原组合,开启此功能,可以进行二次切分提高检索的命中率。例如:qq2013会被切分成:qq/ 2013/ qq2013。

10。支持阿拉伯数字/小数基本单字单位的识别,例如2012年,1.75米,5吨,120斤,38.6℃

11。自动英文圆角/半角,大写/小写转换

12自动中英文同义词追加/同义词匹配. (需要在friso.ini中开启friso.add_syn选项)

13自动中英文停止词过滤。(需要在friso.ini中开启friso.clr_stw选项)

14。多配置支持, 安全的应用在多进程/多线程的情况下.

15提供friso.ini配置文件, 可以依据你的需求轻松打造适合于你的应用的分词,请查看Friso开发帮助文档来了解详细的配置。


二。分词速度 

测试环境:2.8GHZ/2G/Ubuntu 

简单模式:3.8M/秒  

复杂模式:1.8M/秒

三。分词测试:

文本:

歧义和同义词:研究生命起源,混合词: 做B超检查身体,x射线本质是什么,今天去奇都ktv唱卡拉ok去,哆啦a梦是一个动漫中的主角,单位和全角: 2009年8月6日开始大学之旅,岳阳今天的气温为38.6℃, 也就是101.48℉, 英文数字: bug report chenxin619315@gmail.com or visit http://code.google.com/p/jcseg, we all admire the hacker spirit!特殊数字: ① ⑩ ⑽ ㈩.

分词结果:

歧义 和 同义词 : 研究 琢磨 研讨 钻研 生命 起源 , 混合词 : 做 b超 检查 身体 , x射线 本质 是 什么 , 今天 去 奇都ktv 唱 卡拉ok 去 , 哆啦a梦 是 一个 动漫 中 的 主角 , 单位 和 全角 : 2009年 8月 6日 开始 大学 之旅 , 岳阳 今天 的 气温 为 38.6℃ , 也就是 101.48℉ , 英文 英语 数字 : bug report chenxin 619315 gmail com chenxin619315@gmail.com or visit http : / / code google com code.google.com / p / jcseg , we all admire appreciate like love enjoy the hacker spirit mind ! 特殊 数字 : ① ⑩ ⑽ ㈩ .


的码云指数为
超过 的项目
加载中

评论(12)

VicMing
VicMing
undefined symbol: friso_new 这个错误真是让人头疼
周鳌
周鳌
看起来不错
lllmmmlm
lllmmmlm
就是执行的demo中的fun的那个文件,总是“段错误” friso
lllmmmlm
lllmmmlm
为什么我执行还是“段错误”呢?我下载的是master,肯定是最新的代码啊。。求解答 friso
虎爷
虎爷
病WBC6.10RBC6.27HGB195HCT0.573MCV91MCH31.1MCHC340RDW16.2PLT277MPV6.5PCT0.180PDW18.0NE%86.4NE#5.20LY%1.5LY#0.10EO%4.8EO#0.30BA%1.3BA# 而就是正常的 friso
虎爷
虎爷
病WBC6.10RBC6.27HGB195HCT0.573MCV91MCH31.1MCHC340RDW16.2PLT277MPV6.5PCT0.180PDW18.0NE%86.4NE#5.20LY%1.5LY#0.10EO%4.8EO#0.30BA%1.3BA#0. 在 utf8 下会 cpu 100%,多几个字符会段错误 friso
l
lxiaogao
感谢你的开源 而且文档还是中文的 给力 friso
狮子的魂
狮子的魂 软件作者
三天的努力,friso支持对GBK的切分了。
ueaner
ueaner
@狮子的魂 ,1.5安装完后friso>> 我是中国人 分词结果: 中国人/ Done, cost < 0.000000sec ”我是“不在分词结果中,系统环境CentOS6.4 x64位 friso
狮子的魂
狮子的魂 软件作者
换到Win系统下去写friso robbe的编译教程...13

Friso 1.6.3 发布,纯 C 开发的中文分词器

Friso-1.6.3 发布了。Friso 是使用 ANSI C 语言开发的一款开源中文分词器,使用流行的 mmseg 算法实现。完全基于模块化设计和实现,可以很方便的植入其他程序中,例如:MySQL,PHP,源码无需...

2017/09/07 11:34

Friso 1.6.2 发布,纯 C 开发的中文分词器

Friso-1.6.2 发布了。Friso 是使用 ANSI C 语言开发的一款开源中文分词器,使用流行的 mmseg 算法实现。完全基于模块化设计和实现,可以很方便的植入其他程序中,例如:MySQL,PHP,源码无需...

2016/12/26 10:29

friso-1.6.1 发布 - C语言高性能中文分词器-检测模式切分

Friso是使用c语言开发的一款开源中文分词器,使用流行的mmseg算法实现。完全基于模块化设计和实现,可以很方便的植入其他程序中,例如:MySQL,PHP,源码无需修改就能在各种平台下编译使用,...

2014/07/23 09:54

Friso-1.6.0 发布 - C语言高性能中文分词器,GBK支持

Friso是使用c语言开发的u一款开源中文分词器,使用流行的mmseg算法实现。完全基于模块化设计和实现,可以很方便的植入其他程序中,例如:MySQL,PHP,源码无需修改就能在各种平台下编译使用,...

2013/12/30 10:21

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

Friso中文分词器friso是使用c语言开发的一个开源中文分词器,使用流行的mmseg算法实现。完全基于模块化设计和实现,可以很方便的植入其他程序中,例如:MySQL,PHP,源码无需修改就能在各种平...

2013/11/28 10:19

friso-1.4.0 发布 - 英文同义词追加+中英任意组合识别+小数单位识别

friso中文分词器friso是使用c语言开发的一个开源中文分词器,使用流行的mmseg算法实现。完全基于模块化设计和实现,可以很方便的植入其他程序中,例如:MySQL,PHP, 并且提供了一个php扩展:...

2013/10/16 09:23

friso-1.3发布-中英混合词识别+开发帮助文档+4处bug修复

friso是使用C语言开发的一款高性能分词组件, 并且提供了一个php分词扩展: robbe. friso-1.3发布了: 这次的更新内容比较多, 具体如下: 1. 除去和c++,vs的冲突(string和__value) 2. 部分简易函...

2013/09/09 14:42

friso-1.2发布 - 修复一个bug+共享文件+cygwin makefile

friso是使用C语言开发的一款高性能分词组件, 并且提供了一个php分词扩展: robbe 在friso-1.1中加入了"同义词匹配"和"停止词"过滤, 但是忘记在WinNT系统中测试了. friso-1.2 来了: 1. 修复了一...

2013/06/15 09:13

friso-1.1发布 - 优化+同义词匹配+停止词过滤

friso是使用C语言开发的一款高性能分词组件, 并且提供了一个php分词扩展: robbe friso 1.1版本 来了: 1. 修复了一个可能会导致内存泄漏的bug. 更改了接口API, 解决需要调用程序需要自动释放内...

2013/06/14 10:09

没有更多内容

加载失败,请刷新页面

没有更多内容

4
回答
friso ,各种php扩展安装不上。

@狮子的魂 你好,想跟你请教个问题: CentOS 7.2 64位 , php 5.6.10 friso 1.6.1 robbe-1.6.0 编译安装fr...

2017/08/16 16:30
10
回答
关于robbe在64位linux编译安装问题

最近有不少网友反馈了robbe在64bit系统上面的安装问题. 1. 不知道如何编译robbe. 2. 编译了, 但是出现如下错误: lazy symbo...

2013/07/20 00:03
2
回答
关于friso在Mac OS系统下安装遇见的问题

@狮子的魂 你好,想跟你请教个问题: 我在MAC OS X下载安装friso的过程中,当执行sudo make install 时,出现如下的错误,不知是...

2013/12/11 14:09
3
回答
与PostgreSQL FTS引擎结合

@狮子的魂 你好,想跟你请教个问题: 对中文分词技术完全不了解,感谢您的辛苦工作。 我一直在关注这方面的进展,事实上现在有不少国人在搞类似工作,遗憾的是力...

2013/11/28 15:08
2
回答
关于friso什么时候能有词性标注这个功能?

@狮子的魂 你好,想跟你请教个问题:friso什么时候能有词性标注,我有个结合AIML的C代码的程序,需要用分词和标注。谢谢

2013/12/23 17:16
4
回答
关于你做的分词器Jcseg,friso,robbe

@狮子的魂 你好,想跟你请教个问题: 我发现你一共做了三个分词器,Jcseg,friso,robbe。 这个三个分词器是不是除了语言不同,其他比如算法,思...

2015/04/16 13:22
1
回答
friso在VC下 释放资源出现BUG

friso_t friso; friso_config_t config; friso_task_t task; //1.实例化一个friso分词...

2014/12/09 11:48
1
回答
friso_split报502,php崩溃

前提: CentOS 6.5 64位系统 friso版本 1.6.1 编译安装friso扩展 发现以下异常: 加载friso扩展后,运行一段时间后,执行p...

2014/10/11 18:48
28
回答
WinNT下如何自主编译安装friso以及其php扩展robbe

friso以及robbe内部自带的dll共享文件都是在win32下编译的。近些时间有不少网友问到了friso和robbe的64bit的支持问题。 由于本人...

2013/11/28 16:13
9
回答
函数 rb_split 給 502 Bad Gateway

如題, 其他Robbe函数正常, 但運行rb_split定報502 bad gateway <?php $str = 'PHP 安装 Robbe 中文分词...

2014/03/13 16:43

没有更多内容

加载失败,请刷新页面

robbe+base64+Mysql简易有效的php全文索引实现

确实有很多方法来给php提供全文索引功能。 例如: 1。solr或者lucene,(需要安装对应的php客户端扩展)。 2。sphinx 3。基于任何一个数据库(key/value的最好)的模拟实现。 4。Mysql的全文索...

2013/03/01 13:49
927
0

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部