mirror of
https://gitee.com/lionsoul/friso.git
synced 2024-11-29 17:57:38 +08:00
Add friso api demo and add the lua binding framework
This commit is contained in:
parent
0f39d7dc18
commit
34f1f30431
75
README.md
75
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 要做的配置工作很简单,找到 friso.ini 配置文件, 使用文本编辑器打开即可
|
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,参考文献:
|
### 1,参考文献:
|
||||||
|
1
binding/lua/README.md
Normal file
1
binding/lua/README.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
lua binding for friso coming soon ...
|
@ -27,7 +27,7 @@ break;
|
|||||||
println("| Friso - a Chinese word segmentation writen by c. |"); \
|
println("| Friso - a Chinese word segmentation writen by c. |"); \
|
||||||
println("| bug report email - chenxin619315@gmail.com. |"); \
|
println("| bug report email - chenxin619315@gmail.com. |"); \
|
||||||
println("| or: visit https://github.com/lionsoul2014/friso. |"); \
|
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("| type 'quit' to exit the program. |"); \
|
||||||
println("+---------------------------------------------------------------+");
|
println("+---------------------------------------------------------------+");
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user