相關簡介
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。支持中英混合詞的識別。例如:c語言,IC卡。
7。很好的英文支持,電子郵件,網址,小數,分數,百分數。
8。支持阿拉伯數字基本單字單位的識別,例如2012年,5噸,120斤。
9。自動英文圓角/半角,大寫/小寫轉換。
分詞速度
測試環境: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 );
if( task->hits->type == __FRISO_NEW_WORDS__ ){
FRISO_FREE( task->hits->word );//釋放組合詞的記憶體。
}
}
//5.釋放friso和分詞任務:
friso_free_task( task );
friso_free( friso );