/friso

a Chinese tokenizer

Primary LanguageCOtherNOASSERTION

关于friso中文分词组建:

欢迎报告你在使用该软件中遇到的各种问题到下面的电子邮件.

作者:陈鑫
电子邮件:chenxin619315@gmail.com
更多关于:http://code.google.com/p/friso
Java版本:http://code.google.com/p/jcseg
PHP版本:http://code.google.com/p/robbe


* How to Install

cd src
make
sudo make install

* How to Run

friso -lex {friso lex path}

#for example:
#the configuration file is in the $(HOME) dictionary name friso.ini
#try:
friso -init $(HOME)/friso.ini


* How to Uninstall

sudo rm /usr/local/bin/friso




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

1。目前最高版本:friso 0.1,只支持UTF-8编码。【源码无需修改就能在各种平台下编译使用,加载完20万的词条,内存占用稳定为14M。】。

2。mmseg四种过滤算法,分词准确率达到了98.41%。

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

4。词库使用了friso的Java版本jcseg的简化词库。

5。支持中英混合词的识别。例如:c语言,IC卡。

7。很好的英文支持,电子邮件,网址,小数,分数,百分数。

8。支持阿拉伯数字基本单字单位的识别,例如2012年,5吨,120斤。

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

附件目录结构说明
core - friso核心目录

└——dict ----- friso词库配置文件和所有词库文件。

└——src ----- friso c源程序。

└——friso.ini ----- friso配置文件【如何配置friso.ini】。

└——Install ----- 安装说明文件。

└——Run ----- 测试程序运行说明文件。

└——Uninstall ----- 卸载说明文件。

lib - friso二进制目录

└——win32 ----- win32的dll和lib文件。

└——linux ----- linux下的so和a文件。

ReadMe.txt ----- friso说明文件

二。分词速度
测试环境:2.8GHZ/2G/Ubuntu

简单模式:3.7M/秒

复杂模式:1.8M/秒

三。分词结果:
1.文本1:

歧义去除:研究生命起源,friso是使用c语言开发的高性能中文分词组件,混合词: 做B超检查身体,本质是X射线,单位和全角: 2009年8月6日开始大学之旅,英文数字: bug report chenxin619315@gmail.com or visit http://code.google.com/p/friso, 15% of the day's time i will be there.

friso分词结果:

歧义 去除 研究 生命 起源 friso 是 使用 c语言 开发 的 高性能 中文分词 组件 混合 词 做 b超 检查 身体 本质 是 x射线 单位 和 全角 2009年 8月 6日 开始 大学 之旅 英文 数字 bug report chenxin619315@gmail.com or visit http://code.google.com/p/friso 15% of the day's time i will be there

2.文本2:

叔叔亲了我妈妈也亲了我

friso分词结果:

叔叔 亲了 我 妈妈 也 亲了 我

四。使用方法
1.分词测试:

请按照附件中的Install说明(linux)安装friso:

运行如下命令来启动friso测试程序:

//run friso test program.

friso -init friso.ini文件地址

//例如我的friso.ini在/c/friso/文件夹中:
//请在friso.ini中正确的填写friso.lex_dir(词库配置文件friso.lex.ini的目录地址,必须以“/”结尾)

friso -init /c/friso/friso.ini
2.二次开发使用:

具体请参考tst-friso.c文件:

friso_t friso;
friso_task_t task;

//1.实例化一个friso分词实例。
//__path__为friso.ini的地址。
friso = friso_new_from_ifile(__path__);

//2.创建一个分词任务:
task = friso_new_task();

//3.设置分词任务的分词文本:
friso_set_text( task, "要被分词的文本");

//4.分词主程序:

while ( ( friso_next( friso, friso->mode, task ) ) != NULL ) {
    //printf("%s[%d,%d]/ ", task->hits->word, task->hits->type, task->hits->offset );
    printf("%s/ ", task->hits->word );
    if ( task->hits->type == __FRISO_NEW_WORDS__ ) {
        FRISO_FREE( task->hits->word );//释放组合词的内存。
    }
}


//5.释放friso和分词任务:
friso_free_task( task );
friso_free( friso );
五。friso动态:
friso的下一个版本:

1.加入中文数字识别以及其自动转换为阿拉伯数字的功能。

2.加入同义词功能。

3.加入中文人名识别。