diff --git a/README.md b/README.md index fbe18a2..b2df3ae 100644 --- a/README.md +++ b/README.md @@ -98,20 +98,6 @@ make -# Friso插件安装 - -Friso目前提供了对php5, php7, ocaml, lua的分词插件: - -语言 | binding | 作者 | 状态 -:-: | :-: | :-: | :-: -php | [php5-binding](binding/php5) | dongyado<dongyado@gmail.com> | 已完成 -php | [php7-binding](binding/php7) | dongyado<dongyado@gmail.com> | 已完成 -ocaml | [ocaml-binding](binding/ocaml) | https://github.com/kandu | 已完成 -sphinx | [sphinx-binding](binding/sphinx) | lionsoul<chenxin619315@gmail.com> | 开发中 -lua | [lua-binding](binding/lua) | lionsoul<chenxin619315@gmail.com> | 开发中 - - - # Friso配置 Friso 要做的配置工作很简单,找到 friso.ini 配置文件, 使用文本编辑器打开即可 @@ -196,6 +182,67 @@ friso.mode = 2 +# Friso插件 + +Friso目前提供了对php5, php7, ocaml, lua的分词插件: + +语言 | binding | 作者 | 状态 +:-: | :-: | :-: | :-: +php | [php5-binding](binding/php5) | dongyado<dongyado@gmail.com> | 已完成 +php | [php7-binding](binding/php7) | dongyado<dongyado@gmail.com> | 已完成 +ocaml | [ocaml-binding](binding/ocaml) | https://github.com/kandu | 已完成 +sphinx | [sphinx-binding](binding/sphinx) | lionsoul<chenxin619315@gmail.com> | 开发中 +lua | [lua-binding](binding/lua) | lionsoul<chenxin619315@gmail.com> | 开发中 + + + +# Friso分词接口 + +### 一个完整的demo: +```c +/* 第一步:申明三个对象 */ +friso_t friso; /* Friso 分词对象 */ +friso_config_t config; /* Friso 配置对象 */ +friso_task_t task; /* Friso 任务对象 */ + +/* 第二步:初始化相应的对象 */ +friso = friso_new(); +config = friso_new_config(); +task = friso_new_task(); + +/* 从friso.ini配置文件中初始化 friso */ +if (friso_init_from_ifile(friso, config, "friso.ini文件地址") != 1) { + /* friso 初始化失败 */ +} + +/* 第三步:设置分词内容() */ +friso_set_text(task, "分词的文本"); + +/* 第四步:获取分词内容 */ +while (config->next_token(friso, config, task) != NULL) { + /* + task存储了分词的结果, + task->token->word: 词条内容 + task->token->offset: 词条在原始文本的offset + task->token->length: 词条的长度(字节数) + task->token->rlen: 词条的真正字节数(Friso转换后的长度-字节数) + */ + printf("%s ", task->token->word); +} + + +/* 第五步:释放对象 */ +friso_free_task(task); +friso_free_config(config); +friso_free(friso); +``` + +### 备注: +1. 第三步和第四步可以反复调用,使用friso_set_setx重置分词内容即可。 +2. 对于多线程环境,不同线程共享friso和config对象,需要分别初始化task使用对象。 + + + # 相关附录 ### 1,参考文献: diff --git a/binding/lua/README.md b/binding/lua/README.md new file mode 100644 index 0000000..b0acf1f --- /dev/null +++ b/binding/lua/README.md @@ -0,0 +1 @@ +lua binding for friso coming soon ... diff --git a/src/tst-friso.c b/src/tst-friso.c index ae3540b..b7a3abc 100644 --- a/src/tst-friso.c +++ b/src/tst-friso.c @@ -27,7 +27,7 @@ break; println("| Friso - a Chinese word segmentation writen by c. |"); \ println("| bug report email - chenxin619315@gmail.com. |"); \ println("| or: visit https://github.com/lionsoul2014/friso. |"); \ - println("| java edition for https://github.com/lionsoul2014/jcseg |"); \ + println("| java version for https://github.com/lionsoul2014/jcseg |"); \ println("| type 'quit' to exit the program. |"); \ println("+---------------------------------------------------------------+");