friso 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
friso 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
friso 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
friso 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
friso 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 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 ! 特殊 数字 : ① ⑩ ⑽ ㈩ .

 

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (15)

加载中
牛逼
2020/03/18 23:13
回复
举报
挺好
2020/03/03 20:47
回复
举报
undefined symbol: friso_new 这个错误真是让人头疼
2017/08/16 15:09
回复
举报
打分: 力荐
看起来不错
2016/12/27 05:04
回复
举报
狮子的魂软件作者
因为项目需求才开发的friso,完全开源的。 friso
2012/12/29 12:41
回复
举报
狮子的魂软件作者
friso完全基于模块化设计和实现,可以很方便的植入到像MySQL,PHP等程序中。 friso
2012/12/29 12:48
回复
举报
狮子的魂软件作者
换到Win系统下去写friso robbe的编译教程...13
2013/11/28 14:39
回复
举报
@狮子的魂 ,1.5安装完后friso>> 我是中国人 分词结果: 中国人/ Done, cost < 0.000000sec ”我是“不在分词结果中,系统环境CentOS6.4 x64位 friso
2013/11/30 01:47
回复
举报
狮子的魂软件作者
三天的努力,friso支持对GBK的切分了。
2013/12/10 23:07
回复
举报
感谢你的开源 而且文档还是中文的 给力 friso
2014/12/14 14:38
回复
举报
更多评论
2020/03/18 09:21

Friso 1.6.4 发布 - ANSI C开发的中文分词器

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

0
19
发表了资讯
2017/09/07 11:35

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

Friso-1.6.3 发布了。Friso 是使用 ANSI C 语言开发的一款开源中文分词器,使用流行的 mmseg 算法实现。完全基于模块化设计和实现,可以很方便的植入其他程序中,例如:MySQL,PHP,源码无需修改就能在各种平台下编译使用,同时支持对 UTF-8/GBK 编码的切分。 Friso 1.6.3 更新如下: 支持 php7 扩展 修复 php5 扩展的内...

9
62
发表了资讯
2016/12/26 10:29

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

Friso-1.6.2 发布了。Friso 是使用 ANSI C 语言开发的一款开源中文分词器,使用流行的 mmseg 算法实现。完全基于模块化设计和实现,可以很方便的植入其他程序中,例如:MySQL,PHP,源码无需修改就能在各种平台下编译使用,同时支持对 UTF-8/GBK 编码的切分。 已经有网友将其集成到了mysql做全文检索:http://www.onexso...

12
81
发表了资讯
2014/07/23 00:00

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

Friso是使用c语言开发的一款开源中文分词器,使用流行的mmseg算法实现。完全基于模块化设计和实现,可以很方便的植入其他程序中,例如:MySQL,PHP,源码无需修改就能在各种平台下编译使用,同时支持对UTF-8/GBK编码的切分. friso-1.6.1: 1. friso.ini中friso.lex_dir增加相对friso.ini的路径支持,这个可以让嵌入部署更...

26
88
发表了资讯
2013/12/30 00:00

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

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

9
58
发表了资讯
2013/11/28 00:00

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

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

11
60
发表了资讯
2013/10/16 00:00

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

friso中文分词器friso是使用c语言开发的一个开源中文分词器,使用流行的mmseg算法实现。完全基于模块化设计和实现,可以很方便的植入其他程序中,例如:MySQL,PHP, 并且提供了一个php扩展: robbe friso-1.4.0发布: 1. 修复"小数+单位"组合无法识别的情况.更改friso_string#utf8_numeric_string()函数. 2. 更改中英混合词...

6
18
发表了资讯
2013/09/09 00:00

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

friso是使用C语言开发的一款高性能分词组件, 并且提供了一个php分词扩展: robbe. friso-1.3发布了: 这次的更新内容比较多, 具体如下: 1. 除去和c++,vs的冲突(string和__value) 2. 部分简易函数使用了宏定义来代替, 减少函数的调用. 3. 保留了英文全半角和中文标点符号的切分.(可以通过过滤停止词来过滤不需要的标点) 停止...

9
20
发表了资讯
2013/06/15 00:00

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

friso是使用C语言开发的一款高性能分词组件, 并且提供了一个php分词扩展: robbe 在friso-1.1中加入了"同义词匹配"和"停止词"过滤, 但是忘记在WinNT系统中测试了. friso-1.2 来了: 1. 修复了一处在WinNT系统中会导致英文的切分结果无法获取bug. 之前忘记在WinNT系统中测试了. 2. 提供了linux和WinNT共享库文件, 尤其是Win...

32
5
发表了资讯
2013/06/14 00:00

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

friso是使用C语言开发的一款高性能分词组件, 并且提供了一个php分词扩展: robbe friso 1.1版本 来了: 1. 修复了一个可能会导致内存泄漏的bug. 更改了接口API, 解决需要调用程序需要自动释放内存的问题, 在friso_next内自动处理了, 详细可查看官方文档. 2. 加上了同义词切分功能, 实现同义词匹配. (需要在friso.ini中配置...

4
25
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
发表了问答
2017/08/16 16:30

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

@狮子的魂 你好,想跟你请教个问题: CentOS 7.2 64位 , php 5.6.10 friso 1.6.1 robbe-1.6.0 编译安装friso没问题,生成php扩展,friso.so没问题。 但在修改php.ini中 添加extension 中,重启phg问题来了。 !!!!!!!!!!friso.so: undefined symbol: friso_new 看你发的帖子,都是没有用的。 ok,转换成robbe扩展。步骤照...

4
0
发表了问答
2013/07/20 00:03

关于robbe在64位linux编译安装问题

最近有不少网友反馈了robbe在64bit系统上面的安装问题. 1. 不知道如何编译robbe. 2. 编译了, 但是出现如下错误: lazy symbol binding failed: Symbol not found: _friso_new_from_ifile Referenced from: /usr/lib/php/extensions/no-debug-non-zts-20090626/robbe.so Expected in: flat namespace 这里给出统一的解决方...

12
6
发表了问答
2013/12/11 14:09

关于friso在Mac OS系统下安装遇见的问题

@狮子的魂 你好,想跟你请教个问题: 我在MAC OS X下载安装friso的过程中,当执行sudo make install 时,出现如下的错误,不知是怎么回事,麻烦帮忙看一下? 或者说该中文分词软件是否支持MAC OS X呢? /bin/sh: -c: line 1: syntax error: unexpected end of file make: *** [install] Error 2...

2
0
发表了问答
2013/11/28 15:08

与PostgreSQL FTS引擎结合

@狮子的魂 你好,想跟你请教个问题: 对中文分词技术完全不了解,感谢您的辛苦工作。 我一直在关注这方面的进展,事实上现在有不少国人在搞类似工作,遗憾的是力量有点分散。我业余时间为PostgreSQL做一点贡献,它的FTS引擎作者几年前问过我,有没有中文方面的资料,当时网上还看不到,真的很遗憾。 目前准备着手制作库文...

3
1
发表了问答
2013/12/23 17:16

关于friso什么时候能有词性标注这个功能?

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

3
1
发表了问答
2015/04/16 13:22

关于你做的分词器Jcseg,friso,robbe

@狮子的魂 你好,想跟你请教个问题: 我发现你一共做了三个分词器,Jcseg,friso,robbe。 这个三个分词器是不是除了语言不同,其他比如算法,思想等大体是差不多的。 我本来想通过这三种分词器的结果,来看一下他们之间的差异,但我只做过Java,其他两个不会弄,所以想请教一下。 1,这个三个分词器是不是除了语言不同,...

18
0
发表了问答
2014/12/09 11:48

friso在VC下 释放资源出现BUG

friso_t friso;   friso_config_t config;   friso_task_t task;   //1.实例化一个friso分词实例。   friso = friso_new();   //2.创建一个friso分词配置。   config = friso_new_config();   //3. 依据给定的friso.ini中快捷初始化friso。   if ( friso_init_from_ifile(friso, config, "friso/friso.ini") != 1 ) {     prin...

1
0
发表了问答
2014/10/11 18:48

friso_split报502,php崩溃

前提: CentOS 6.5 64位系统 friso版本 1.6.1 编译安装friso扩展 发现以下异常: 加载friso扩展后,运行一段时间后,执行php命令会报 "Segmentation fault" 异常,php-fpm无法启动,甚至php的cli模式也无法执行任何php脚本, 注释php.ini的friso扩展后恢复; 另外发现个改进点: friso的扩展在php-fpm下无法即时加载新的词...

3
0
发表了问答
2013/11/28 16:13

WinNT下如何自主编译安装friso以及其php扩展robbe

friso以及robbe内部自带的dll共享文件都是在win32下编译的。近些时间有不少网友问到了friso和robbe的64bit的支持问题。 由于本人没有64bit系统,依据在Win32下的编译过程,在写上一份教程,供需要的哥们参考下,(64bit系统步骤肯定是一样的,但是操作是否一样请对照着自己思考下啦。。。),也希望编译过的哥们能够写一...

30
5
发表了问答
2014/03/13 16:43

函数 rb_split 給 502 Bad Gateway

如題, 其他Robbe函数正常, 但運行rb_split定報502 bad gateway <?php $str = 'PHP 安装 Robbe 中文分词扩展'; $participle = rb_split($str, __RB_SIMPLE_MODE__); var_dump($participle); ?> 已查看phpinfo, Robbe 1.6運行正常, 幫幫忙給點意見 環境: ubuntu 12.04 32-bit RAM 1.7GB (RAM用不多) LNMP 1.0 (Nginx 1.2.7...

9
0
发表了问答
2014/02/21 19:36

关于Friso繁体词库的问题

@狮子的魂 你好,想跟你请教个问题: 我使用friso对一份按词频排列的词进行分词检测,简体版本大概90%都在friso的词库中,但如果将简体的词转换成繁体编码就会有大量的缺失,比如: 詞語 我們 一個 沒有 他們 發展 這個 這樣 社會 進行 请问这个是需要我自己添加列表到lex-main.lex去支持,还是有更好的实现方式呢?...

7
1
发表了问答
2014/01/13 11:39

请求Friso配置文件增加对相对路径的支持

@狮子的魂 你好,想跟你请教个问题: 在friso.ini中friso.lex_dir需要使用绝对路径,这对于软件安装来说不够灵活,我希望将来的版本中可以支持相对于friso.ini的路径。代码补丁如下,望接纳:) friso.c.patch Index: friso.c =================================================================== --- friso.c  (版本 ...

3
0
发表了问答
2014/01/10 14:56

Friso英文字符串中的英文句号被忽略

@狮子的魂 你好,想跟你请教个问题:friso在似乎会忽略英文字符串中的英文句号,在中文里则会独立分拆开来,逗号也会独立分拆出来,比如: You are my sun shine. hello, world you/are/my/sun/shine/hello/,/world 请问为什么?有配置可以让英文字符串里的“."被分拆出来吗?...

7
0
发表了问答
2013/11/16 16:52

jcseg, friso, robbe已经托管到git-osc

jcseg是使用java开发的一款中文分词器. friso是使用C语言开发的一款中文分词器. robbe是建立在friso上的一款php中文分词扩展. 另外还有两款平时练习玩的一些小项目: jteach是使用java开发的一款多媒体教学软件. tankwar是使用java开发的一款坦克大战小游戏. 先前这些项目全面托管在google code, 因为google code访问受限...

17
4
发表了问答
2013/11/28 18:00

friso1.5.0的编译问题

环境是64位win7 vs2008 测试代码如下: #pragma comment (lib, "friso.lib") #include "friso_API.h" #include "friso.h" int main() { friso_t friso = friso_new(); return 0; } 会有链接错误。。。 LNK2001: unresolved external symbol "struct friso_entry * __cdecl friso_new(void)" (?friso_new@@YAPA...

5
0
发表了问答
2013/10/25 19:07

为什么不使用数据库保存关键词?

@狮子的魂 你好,想跟你请教个问题: 如题!

7
0
发表了问答
2013/10/17 17:07

friso安装后运行出错的问题

@狮子的魂 你好,想跟你请教个问题: 安装好friso之后出现如下问题: [root@localhost friso-1.4.0]# friso --help friso: error while loading shared libraries: libfriso.so: cannot open shared object file: No such file or directory...

23
1
发表了问答
2013/10/08 00:49

robbe 编译完毕,无法加载,friso_dic_get 问题?

系统环境: [root@aboutc ~]# cat /etc/redhat-release CentOS release 6.4 (Final) Friso 1.3 Robbe 1.2 PHP 5.5.4 friso 没有任何问题: [root@aboutc ~]# whereis friso friso: /etc/friso.ini /usr/local/bin/friso [root@aboutc ~]# [root@aboutc ~]# /usr/local/bin/friso -init /etc/friso.ini friso initialize...

5
0
发表了问答
2013/07/19 15:42

有关friso的编译问题.

@狮子的魂 你好,想跟你请教个问题: 您好.请问VS2010是否可以编译您的程序呢?我现编译老是报error LNK2001: 无法解析的外部符号,我已经添加了LIB. 我想把您的程序封装成一个更通用的DLL,提供给DELPHI程序调用. 恩,已经按您说的改过了.仍然报一个错误. 错误 5 error LNK2001: 无法解析的外部符号 "struct string_buffer_...

5
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
15 评论
211 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部