C++:Friso分词库:修订间差异
imported>Soleverlee 以“[Friso http://git.oschina.net/lionsoul/friso]是一个国人编写的C/C++的分词库。最近准备在一个小项目中用到。 <source lang="cpp"> //创建 fris...”为内容创建页面 |
imported>Soleverlee 无编辑摘要 |
||
第1行: | 第1行: | ||
[ | [http://git.oschina.net/lionsoul/friso Friso]是一个国人编写的C/C++的分词库。最近准备在一个小项目中用到。 | ||
<source lang="cpp"> | <source lang="cpp"> | ||
//创建 friso_t | //创建 friso_t |
2016年6月12日 (日) 09:01的最新版本
Friso是一个国人编写的C/C++的分词库。最近准备在一个小项目中用到。
//创建 friso_t
friso_t friso = friso_new();
//创建词库 dic(并没有加载词库)
friso_config_t config = friso_new_config();
//从指定的 friso.ini 配置文件中初始化 friso 和 config
//__path__为 friso.ini 配置文件的地址
//成功返回 1, 失败返回 0
int res = friso_init_from_ifile(friso, config, "friso.ini");
if(res != 1)
{
qDebug() << "Load friso failed";
return -1;
}
//自定义切分模式(简易,复杂,检测模式)
//__FRISO_SIMPLE_MODE__
//__FRISO_COMPLEX_MODE__
//__FRISO_DETECT_MODE__
friso_set_mode(config, __FRISO_COMPLEX_MODE__);
//创建一个分词任务实例
friso_task_t task = friso_new_task();
//给分词任务设置分词的内容.
fstring text = "我的银行卡账号和密码";
friso_set_text( task, text );
while ( ( config->next_token( friso, config, task ) ) != NULL ) {
//查看 friso_token_t 可以获取更多信息。
//printf("%s[%d]/ ", task->token->word, task->token->offset );
qDebug() << task->token->word;
}
//释放 friso_task_t 实例
friso_free_task( task );
//释放 friso_t 实例
friso_free(friso);
friso_free_config(config);
输出结果:
我的 银行卡 账号 密码