Friso

Friso

徠friso是使用c語言開發的一個開源的中文分詞器,使用流行的mmseg演演算法實現。

相關簡介


完全基於模塊化設計和實現,可以很方便的植入到其他程序中,例如:MySQL,PHP等。並且提供了一個php擴展:robbe,robbe調用實例:

功能特色


1。只支持UTF-8編碼。【源碼無需修改就能在各種平台下編譯使用,載入完20萬的詞條,內存佔用穩定為14M】
2。mmseg四種過濾演演算法,分詞準確率達到了98.41%。
3。支持自定義詞庫。在friso源碼附件的dict文件夾下,可以隨便添加/刪除/更改詞庫和詞庫詞條,並且對詞庫進行了分類。
4徠。詞庫使用了friso的Java版本jcseg的簡化詞庫。
5。支持中英/英中混合詞的識別。例如:卡拉ok, 漂亮mm, c語言,IC卡。
7。很好的英文支持:英文和標點的組合詞識別(例如:c++, c#, g++),電子郵件,網址,小數,分數,百分數。
8。支持阿拉伯數字基本單字單位的識別,例如2012年,5噸,120斤。
9。自動英文圓角/半形,大寫/小寫轉換。
10。自動同義詞追加, 同義詞匹配。
11。自動停止詞過濾。

分詞速度


測試環境:2.8GHZ/2G/Ubuntu
簡單模式:3.7M/秒
複雜模式:1.8M/秒(mmseg的四種過濾演演算法)

軟體信息


授權協議:Apache 2
開發語言:C語言
系統要求:源碼級跨平台

使用方法


1。如何安裝:
cd src
make
make install
2。分詞測試:
運行如下命令來啟動friso測試程序:
friso -init friso.ini文件地址
//例如我的friso.ini在/c/friso/文件夾中:
//請在friso.ini中正確的填寫friso.lex_dir(詞庫配置文件friso.lex.ini的目錄地址,必須以“/”結尾)
friso -init /c/friso/friso.ini
3。二次開發:
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 );
//friso 1.2中已經不需要以下釋放代碼
//if( task->hits->type == __FRISO_NEW_WORDS__ ){
// FRISO_FREE( task->hits->word );//釋放組合詞的內存。
//}
}
//5.釋放friso和分詞任務:
friso_free_task( task );
friso_free( friso );

版本信息


friso目前最高版本:1.6