(第一版,創建時間2014-11-12)
這篇文檔內容主要從官方文檔中獲取而來,對API進行了翻譯,並依據個人使用經驗進行了一些補充,鑒於能力有限、水平較低,文檔中肯定存在有很多不足之處,還請見諒。
下載地址:http://ictclas.nlpir.org/downloads,下載最新的NLPIR/ICTCLAS2014分詞系統下載包
NLPIR是用C/C++編寫的,如果要用JAVA來使用NLPIR,需要通過JNA調用NLPIR的函數來實現。下面通過一個示例來進行說明:
首先新建一個JAVA項目,導入JNA的jar包(可從下載包中的sample\JnaTest_NLPIR\lib文件夾中拷貝),將下載包中的Data文件夾拷貝到項目根目錄中,再將lib文件夾中與你操作系統對應的文件夾中的NLPIR.dll和NLPIR.lib文件拷貝到系統根目錄中,不妨新建一個名為source的文件夾,放到那里面去。我的目錄如下圖所示:
然后新建一個接口,繼承JNA的Library接口,在接口中定義對NLPIR一系列函數的實現(具體API可參見下方我翻譯的API或參看include文件夾中的頭文件NLPIR.h)。
import com.sun.jna.Library; public interface CLibrary extends Library{ //初始化 public int NLPIR_Init(String sDataPath, int encoding, String sLicenceCode); //對字符串進行分詞 public String NLPIR_ParagraphProcess(String sSrc, int bPOSTagged); //對TXT文件內容進行分詞 public double NLPIR_FileProcess(String sSourceFilename,String sResultFilename, int bPOStagged); //從字符串中提取關鍵詞 public String NLPIR_GetKeyWords(String sLine, int nMaxKeyLimit,boolean bWeightOut); //從TXT文件中提取關鍵詞 public String NLPIR_GetFileKeyWords(String sLine, int nMaxKeyLimit,boolean bWeightOut); //添加單條用戶詞典 public int NLPIR_AddUserWord(String sWord); //刪除單條用戶詞典 public int NLPIR_DelUsrWord(String sWord); //從TXT文件中導入用戶詞典 public int NLPIR_ImportUserDict(String sFilename); //將用戶詞典保存至硬盤 public int NLPIR_SaveTheUsrDic(); //從字符串中獲取新詞 public String NLPIR_GetNewWords(String sLine, int nMaxKeyLimit, boolean bWeightOut); //從TXT文件中獲取新詞 public String NLPIR_GetFileNewWords(String sTextFile,int nMaxKeyLimit, boolean bWeightOut); //獲取一個字符串的指紋值 public long NLPIR_FingerPrint(String sLine); //設置要使用的POS map public int NLPIR_SetPOSmap(int nPOSmap); //獲取報錯日志 public String NLPIR_GetLastErrorMsg(); //退出 public void NLPIR_Exit(); }
再新建一個類,實例化上面的接口后,就可以調用NLPIR的各個函數了。
import java.math.BigDecimal; import wordSegmentation.study.CLibrary; import com.sun.jna.Native; public class Demo { public static void main(String[] args) throws Exception { //初始化 CLibrary instance = (CLibrary)Native.loadLibrary(System.getProperty("user.dir")+"\\source\\NLPIR", CLibrary.class); int init_flag = instance.NLPIR_Init("", 1, "0"); String resultString = null; if (0 == init_flag) { resultString = instance.NLPIR_GetLastErrorMsg(); System.err.println("初始化失敗!\n"+resultString); return; } String sInput = "哎~那個金剛圈尺寸太差,前重后輕,左寬右窄,他戴上去很不舒服," + "整晚失眠會連累我嘛,他雖然是只猴子,但你也不能這樣對他啊,官府知道會說我虐待動物的," + "說起那個金剛圈,啊~去年我在陳家村認識了一個鐵匠,他手工精美,價錢又公道,童叟無欺," + "干脆我介紹你再定做一個吧!"; try { resultString = instance.NLPIR_ParagraphProcess(sInput, 1); System.out.println("分詞結果為:\n " + resultString); instance.NLPIR_AddUserWord("金剛圈"); instance.NLPIR_AddUserWord("左寬右窄"); resultString = instance.NLPIR_ParagraphProcess(sInput, 1); System.out.println("增加用戶詞典后分詞結果為:\n" + resultString); instance.NLPIR_DelUsrWord("左寬右窄"); resultString = instance.NLPIR_ParagraphProcess(sInput, 1); System.out.println("刪除用戶詞典后分詞結果為:\n" + resultString); instance.NLPIR_ImportUserDict(System.getProperty("user.dir")+"\\source\\userdic.txt"); resultString = instance.NLPIR_ParagraphProcess(sInput, 1); System.out.println("導入用戶詞典文件后分詞結果為:\n" + resultString); resultString = instance.NLPIR_GetKeyWords(sInput,10,false); System.out.println("從段落中提取的關鍵詞:\n" + resultString); resultString = instance.NLPIR_GetNewWords(sInput, 10, false); System.out.println("新詞提取結果為:\n" + resultString); Double d = instance.NLPIR_FileProcess("d:\\1.txt", "d:\\2.txt", 1); System.out.println("對文件內容進行分詞的運行速度為: " ); if(d.isInfinite()) System.out.println("無結果"); else{ BigDecimal b = new BigDecimal(d); System.out.println(b.divide(new BigDecimal(1000), 2, BigDecimal.ROUND_HALF_UP)+"秒"); } resultString = instance.NLPIR_GetFileKeyWords("D:\\3.txt", 10,false); System.out.println("從文件中提取關鍵詞的結果為:\n" + resultString); instance.NLPIR_Exit(); } catch (Exception e) { System.out.println("錯誤信息:"); e.printStackTrace(); } }
其中我在source文件夾中添加了一個用戶詞典userdic.txt,在程序運行時導入到系統中,該文件內容如下:
前重后輕 nr
對TXT文件進行分詞處理時需要用到的3個TXT文件,分別如下所示:
1.txt作為從文件內容進行分詞操作的文件源,其內容如下:
曾經有一份真摯的感情擺在我的面前我沒有珍惜,等我失去的時候才追悔莫及,人間最痛苦的事莫過於此,你的劍在我的咽喉上刺下去吧,不用在猶豫了!如果上天能給我一次再來一次的機會,我會對哪個女孩說三個字:我愛你,如果非要在這份愛上加一個期限,我希望是一萬年!
2.txt作為對1.txt進行分詞處理的結果接收文件,為一個空文件,運行后其內容如下:
曾經/d 有/vyou 一/m 份/q 真摯/a 的/ude1 感情/n 擺/v 在/p 我/rr 的/ude1 面前/f 我/rr 沒有/d 珍惜/v ,/wd 等/udeng 我/rr 失去/v 的/ude1 時候/n 才/d 追悔莫及/vl ,/wd 人間/n 最/d 痛苦/a 的/ude1 事/n 莫過於/vl 此/rzs ,/wd 你/rr 的/ude1 劍/n 在/p 我/rr 的/ude1 咽喉/n 上/f 刺/v 下去/vf 吧/y ,/wd 不/d 用/v 在/p 猶豫/a 了/y !/wt 如果/c 上/f 天/qt 能/v 給/p 我/rr 一/m 次/qv 再/d 來/vf 一/m 次/qv 的/ude1 機會/n ,/wd 我/rr 會/v 對/p 哪個/ry 女孩/n 說/v 三/m 個/q 字/n :/wp 我/rr 愛/v 你/rr ,/wd 如果/c 非/b 要/v 在/p 這/rzv 份/q 愛上/v 加/v 一個/mq 期限/n ,/wd 我/rr 希望/v 是/vshi 一/m 萬/m 年/qt !/wt
3.txt作為從內容提取關鍵詞的文件源,其內容如下:
你把胡子剃光干什么?你不知不知道你少了胡子一點性格都沒有了……唉~文也不行武也不行,你不做山賊,你想做狀元啊?省省吧你!改變什么形象,好好的做你山賊這份很有前途的職業去吧!
程序運行結果如下:
分詞結果為:
哎/e ~/w 那個/rz 金剛/n 圈/qv 尺寸/n 太/d 差/a ,/wd 前重后輕/nr ,/wd 左寬/nr 右/f 窄/a ,/wd 他/rr 戴/v 上/f 去/vf 很/d 不/d
舒服/a ,/wd 整/v 晚/tg 失眠/vi 會/v 連累/v 我/rr 嘛/y ,/wd 他/rr 雖然/c 是/vshi 只/q 猴子/n ,/wd 但/c 你/rr 也/d 不/d 能/v
這樣/rzv 對/p 他/rr 啊/y ,/wd 官府/n 知道/v 會/v 說/v 我/rr 虐待/v 動物/n 的/ude1 ,/wd 說/v 起/vf 那個/rz 金剛/n 圈/qv ,/wd
啊/y ~/w 去年/t 我/rr 在/p 陳家村/nr 認識/v 了/ule 一個/mq 鐵匠/n ,/wd 他/rr 手工/d 精美/a ,/wd 價錢/n 又/d 公道/a ,/wd 童叟無欺
/vl ,/wd 干脆/d 我/rr 介紹/v 你/rr 再/d 定做/v 一個/mq 吧/y !/wt
增加用戶詞典后分詞結果為:
哎/e ~/w 那個/rz 金剛圈/n 尺寸/n 太/d 差/a ,/wd 前重后輕/nr ,/wd 左寬右窄/n ,/wd 他/rr 戴/v 上/f 去/vf 很/d 不/d 舒服/a ,/wd 整
/v 晚/tg 失眠/vi 會/v 連累/v 我/rr 嘛/y ,/wd 他/rr 雖然/c 是/vshi 只/q 猴子/n ,/wd 但/c 你/rr 也/d 不/d 能/v 這樣/rzv 對/p
他/rr 啊/y ,/wd 官府/n 知道/v 會/v 說/v 我/rr 虐待/v 動物/n 的/ude1 ,/wd 說/v 起/vf 那個/rz 金剛圈/n ,/wd 啊/y ~/w 去年/t 我/
rr 在/p 陳家村/nr 認識/v 了/ule 一個/mq 鐵匠/n ,/wd 他/rr 手工/d 精美/a ,/wd 價錢/n 又/d 公道/a ,/wd 童叟無欺/vl ,/wd 干脆/d 我/
rr 介紹/v 你/rr 再/d 定做/v 一個/mq 吧/y !/wt
刪除用戶詞典后分詞結果為:
哎/e ~/w 那個/rz 金剛圈/n 尺寸/n 太/d 差/a ,/wd 前重后輕/nr ,/wd 左寬/nr 右/f 窄/a ,/wd 他/rr 戴/v 上/f 去/vf 很/d 不/d 舒服/a
,/wd 整/v 晚/tg 失眠/vi 會/v 連累/v 我/rr 嘛/y ,/wd 他/rr 雖然/c 是/vshi 只/q 猴子/n ,/wd 但/c 你/rr 也/d 不/d 能/v 這樣/r
zv 對/p 他/rr 啊/y ,/wd 官府/n 知道/v 會/v 說/v 我/rr 虐待/v 動物/n 的/ude1 ,/wd 說/v 起/vf 那個/rz 金剛圈/n ,/wd 啊/y ~/w
去年/t 我/rr 在/p 陳家村/nr 認識/v 了/ule 一個/mq 鐵匠/n ,/wd 他/rr 手工/d 精美/a ,/wd 價錢/n 又/d 公道/a ,/wd 童叟無欺/vl ,/wd
干脆/d 我/rr 介紹/v 你/rr 再/d 定做/v 一個/mq 吧/y !/wt
導入用戶詞典文件后分詞結果為:
哎/e ~/w 那個/rz 金剛圈/n 尺寸/n 太/d 差/a ,/wd 前重后輕/nr ,/wd 左寬/nr 右/f 窄/a ,/wd 他/rr 戴/v 上/f 去/vf 很/d 不/d 舒服/a
,/wd 整/v 晚/tg 失眠/vi 會/v 連累/v 我/rr 嘛/y ,/wd 他/rr 雖然/c 是/vshi 只/q 猴子/n ,/wd 但/c 你/rr 也/d 不/d 能/v 這樣/r
zv 對/p 他/rr 啊/y ,/wd 官府/n 知道/v 會/v 說/v 我/rr 虐待/v 動物/n 的/ude1 ,/wd 說/v 起/vf 那個/rz 金剛圈/n ,/wd 啊/y ~/w
去年/t 我/rr 在/p 陳家村/nr 認識/v 了/ule 一個/mq 鐵匠/n ,/wd 他/rr 手工/d 精美/a ,/wd 價錢/n 又/d 公道/a ,/wd 童叟無欺/vl ,/wd
干脆/d 我/rr 介紹/v 你/rr 再/d 定做/v 一個/mq 吧/y !/wt
從段落中提取的關鍵詞:
前重后輕#陳家村#左寬#金剛圈#
新詞提取結果為:
對文件內容進行分詞的運行速度為:
0.76秒
從文件中提取關鍵詞的結果為:
胡子#形象#職業#前途#
分詞后每個詞后面都跟着詞性標記(bPOSTagged參數為1時,輸出結果顯示標記;為0時,不現實標記),並彼此以空格分隔;提取的關鍵詞則以#號分隔;因輸入的文字沒有新詞,均能被識別,所以新詞提取結果為空。各函數的具體使用可參考下面我翻譯的API。
我對NLPIR系統的接口函數說明進行了簡單的翻譯,如下所示:
1. NLPIR_Init
初始化分析器,並根據配置文件為NLPIR准備數據。
函數形式:
bool NLPIR_Init(const char* sInitDirPath=0, int encoding=GBK_CODE,
const char* sLicenceCode=0)
需要的頭文件:<NLPIR.h>
返回值:
如果初始化成功,返回successed,否則返回false。
參數:
char* sInitDirPath:指定存放配置文件Configure.xml和Data文件的路徑,默認值為0,表明路徑為當前工作目錄。
int encoding: 編碼格式標識符,默認為GBK_CODE ,也可以設置為UTF8_CODE和BIG5_CODE。
char* sLicenceCode: 商業用戶需要使用的許可證編碼,免費用戶無需使用該參數。
說明:
使用NLPIR時必須先執行NLPIR_Init函數(只需執行一次)。系統關閉時還應執行NLPIR_Exit函數來銷毀緩存數據。
NLPIR_Init執行失敗通常有兩個原因:1. 需要的數據文件格式不兼容或丟失;2.配置文件丟失或存在非法參數。還可以通過日志文件來了解更多信息,日志文件存放在默認路徑中。
2. NLPIR_Exit
退出程序並釋放所有資源和NLPIR使用的緩存數據。
函數形式:
bool NLPIR_Exit();
需要的頭文件:<NLPIR.h>
返回值:
執行成功返回successed,否則返回false。
參數:
無
說明:
該函數必須在關閉系統時執行,若需重啟NLPIR,再次執行NLPIR_Init函數即可。
3. NLPIR_ImportUserDict
從文件中導入用戶自定義的詞典。
函數形式:
unsigned int NLPIR_ImportUserDict(const char * sFilename);
需要的頭文件:<NLPIR.h>
返回值:
導入的詞匯數量。
參數:
char * sFilename: 要導入的用戶詞典文件所在路徑。
說明:
該函數只有在NLPIR_Init函數執行成功后才能使用。詞典文件的格式請參見相關示例。
你只需在更改了用戶詞典或第一次使用某個詞典時執行該函數,當配置文件中的UserDict參數為on時,NLPIR將會(把該詞典添加到配置文件中)並在啟動時自動加載該詞典。當將UserDict置為off時,用戶自定義詞典文件將不再自動導入。
4. NLPIR_ParagraphProcess
處理一個段落文字,返回運行結果緩存的指針。
函數形式:
const char * NLPIR_ParagraphProcess(const char * sParagraph, int bPOStagged=1);
需要的頭文件:<NLPIR.h>
返回值:
運行結果緩存的指針。
參數:
char * sParagraph: 輸入段落的源
int bPOStagged: 判斷是否需要位置標記,0:無標記;1:有標記。默認值為1。
說明:
該函數只有在NLPIR_Init函數執行成功后才能使用
5. NLPIR_ParagraphProcessA
函數形式:
result_t * NLPIR_ParagraphProcessA(
const char * sParagraph, int * pResultCount, bool bUserDict=true)
需要的頭文件:<NLPIR.h>
返回值:
運行結果向量的指針,該指針由系統進行管理,用戶無法對它進行分配和釋放。
其結構如下:
struct result_t{
int start; //start position,詞語在輸入句子中的開始位置
int length; //length,詞語的長度
char sPOS[POS_SIZE];//word type,詞性ID值,可以快速的獲取詞性表
int iPOS;//詞性
int word_ID; //如果是未登錄詞,設成或者-1
int word_type; //區分用戶詞典;1,是用戶詞典中的詞;,非用戶詞典中的詞
int weight;// word weight
};
參數:
char * sParagraph: 輸入段落的源
int * pResultCount: 結果向量的大小
bool bUserDict:是否使用用戶詞典
說明:
該函數只有在NLPIR_Init函數執行成功后才能使用
6. NLPIR_FileProcess
處理一個TXT文件。
函數形式:
Double NLPIR_FileProcess(const char * sSourceFilename,
const char * sResultFilename, int bPOStagged=1);
需要的頭文件:<NLPIR.h>
返回值:
如果執行成功,返回處理速度值,否則返回false。
參數:
char * sSourceFilename: 要處理的源文件名稱;
char * sResultFilename: 存儲處理結果的文件名稱;
int bPOStagged: 判斷是否需要位置標記,0:無標記;1:有標記。默認值為1。說明:
該函數只有在NLPIR_Init函數執行成功后才能使用
處理結果的輸出格式可在配置文件中進行設置。
7. NLPIR_GetParagraphProcessAWordCount
NLPIR_ParagraphProcessA函數的C#實現API。
函數形式:
int NLPIR_GetParagraphProcessAWordCount(const char *sParagraph);
需要的頭文件:<NLPIR.h>
返回值:
返回輸入段落的詞匯數量。
參數:
char * sParagraph: 輸入段落的源
說明:
該函數只有在NLPIR_Init函數執行成功后才能使用
處理結果的輸出格式可在配置文件中進行設置。
8. NLPIR_ ParagraphProcessAW
NLPIR_ParagraphProcessA函數的C#實現API。
函數形式:
void NLPIR_ParagraphProcessAW(int nCount,result_t * result);
需要的頭文件:<NLPIR.h>
返回值:
無。
參數:
nCount: 輸入段落的詞匯數量;
result: 處理結果的結構體指針;
說明:
該函數只有在NLPIR_Init函數執行成功后才能使用
處理結果的輸出格式可在配置文件中進行設置。
9. NLPIR_AddUserWord
向用戶詞典添加一個詞匯。
函數形式:
int NLPIR_AddUserWord(const char * sWord);
需要的頭文件:<NLPIR.h>
返回值:
如果添加成功,返回successed,否則返回false。
參數:
char * sWord:要添加的詞匯。
說明:
該函數只有在NLPIR_Init函數執行成功后才能使用
10. NLPIR_SaveTheUsrDic
將用戶詞典保存至硬盤。
函數形式:
int NLPIR_SaveTheUsrDic();
需要的頭文件:<NLPIR.h>
返回值:
如果執行成功返回1,否則返回0。
參數:
無
說明:
該函數只有在NLPIR_Init函數執行成功后才能使用
11. NLPIR_DelUsrWord
從用戶詞典中刪除一個詞匯。
函數形式:
int NLPIR_DelUsrWord(const char * sWord);
需要的頭文件:<NLPIR.h>
返回值:
如果要刪除的詞匯不存在,則返回-1;如果刪除成功,則返回該詞匯的句柄。
參數:
char * sWord:要刪除的詞匯。
說明:
該函數只有在NLPIR_Init函數執行成功后才能使用
12. NLPIR_GetKeyWords
從輸入的段落中提取關鍵詞。
函數形式:
const char * NLPIR_GetKeyWords(const char * sLine,int nMaxKeyLimit=50,
bool bWeightOut=false);
需要的頭文件:<NLPIR.h>
返回值:
如果執行成功,返回執行結果列表。如果執行失敗,返回NULL。
格式如下:
"科學發展觀 宏觀經濟 "
或者
"科學發展觀 23.80 宏觀經濟 12.20" (帶有權值)
參數:
char * sLine:輸入的段落;
int nMaxKeyLimit:關鍵詞最大數量;
bool bWeightOut: 是否輸出權值;
說明:
無。
13. NLPIR_GetFileKeyWords
從TXT文件中提取關鍵詞。
函數形式:
const char * NLPIR_GetFileKeyWords(const char * sTextFile,
int nMaxKeyLimit=50, bool bWeightOut=false);
需要的頭文件:<NLPIR.h>
返回值:
如果執行成功,返回執行結果列表。如果執行失敗,返回NULL。格式同上。
參數:
char * sTextFile:輸入文件的名稱;
int nMaxKeyLimit:關鍵詞最大數量;
bool bWeightOut: 是否輸出權值;
說明:
無
14. NLPIR_GetNewWords
從段落中提取新詞。
函數形式:
const char * NLPIR_GetNewWords(const char * sLine, int nMaxKeyLimit=50,
bool bWeightOut=false);
需要的頭文件:<NLPIR.h>
返回值:
如果執行成功,返回提取到的新詞列表,否則返回NULL。格式同上
參數:
char * sLine:輸入的段落;
int nMaxKeyLimit:關鍵詞最大數量;
bool bWeightOut: 是否輸出權值;
說明:
無
15. NLPIR_GetFileNewWords
從TXT文件中提取新詞。
函數形式:
const char * NLPIR_GetFileNewWords(const char * sTextFile,
int nMaxKeyLimit=50, bool bWeightOut=false);
需要的頭文件:<NLPIR.h>
返回值:
如果執行成功,返回提取到的新詞列表,否則返回NULL。格式同上
參數:
char * sTextFile:輸入文件的名稱;
int nMaxKeyLimit:關鍵詞最大數量;
bool bWeightOut: 是否輸出權值;
說明:
無
16. NLPIR_FingerPrint
提取段落的一個指紋。
函數形式:
unsigned long NLPIR_FingerPrint(const char * sLine);
需要的頭文件:<NLPIR.h>
返回值:
如果執行成功,返回指紋值,否則返回0。
參數:
char * sLine:輸入的段落;
說明:
無。
17. NLPIR_SetPOSmap
設置使用的POS map。
函數形式:
int NLPIR_SetPOSmap(int nPOSmap);
需要的頭文件:<NLPIR.h>
返回值:
如果執行成功,返回1,否則返回0。
參數:
int nPOSmap :
ICT_POS_MAP_FIRST 計算所一級標注集
ICT_POS_MAP_SECOND 計算所二級標注集
PKU_POS_MAP_SECOND 北大二級標注集
PKU_POS_MAP_FIRST 北大一級標注集
說明:
該函數只有在NLPIR_Init函數執行成功后才能使用
18. NLPIR_GetLastErrorMsg
獲取最近一條報錯信息。
函數形式:
const char * NLPIR_GetLastErrorMsg();
需要的頭文件:<NLPIR.h>
返回值:
獲取最近一條報錯信息的指針。
參數:
無。
說明:
無。
以下為新詞識別函數,建議脫機使用。
1. NLPIR_NWI_Start
啟動新詞識別。
函數形式:
bool NLPIR_NWI_Start();
需要的頭文件:<NLPIR.h>
返回值:
如果執行成功,返回successed,否則返回false。
參數:
無
2. NLPIR_NWI_AddFile
往新詞識別系統中添加待識別新詞的文本文件,需要在運行 NLPIR_NWI_Start()之后,才有效。
函數形式:
Int NLPIR_NWI_AddFile(const char * sFilename);
需要的頭文件:<NLPIR.h>
返回值:
如果執行成功,返回true,否則返回false。
參數:
char *sFilename:輸入的文件名;
3. NLPIR_NWI_AddMem
往新詞識別系統中添加一段待識別新詞的內存,需要在運行 NLPIR_NWI_Start()之后,才有效。
函數形式:
bool NLPIR_NWI_AddMem(const char *sText);
需要的頭文件:<NLPIR.h>
返回值:
如果執行成功,返回true,否則返回false。
參數:
char *sFilename:文件名
4. NLPIR_NWI_Complete
新詞識別添加內容結束,需要在運行 NLPIR_NWI_Start()之后,才有效。
函數形式:
bool NLPIR_NWI_Complete();
需要的頭文件:<NLPIR.h>
返回值:
如果執行成功,返回true,否則返回false。
參數:
無。
說明:
5. NLPIR_NWI_GetResult
獲取新詞識別的結果。
函數形式:
const char * NLPIR_NWI_GetResult(bool bWeightOut=false);
需要的頭文件:<NLPIR.h>
返回值:
執行結果的列表。
參數:
bool bWeightOut:是否輸出權重值。
6. NLPIR_NWI_Result2UserDict
將新詞識別結果導入到用戶詞典中,需要在運行 NLPIR_NWI_Complete()之后,才有效,如果需要將新詞結果永久保存,建議在執行NLPIR_SaveTheUsrDic函數。
函數形式:
unsigned int NLPIR_NWI_Result2UserDict()
需要的頭文件:<NLPIR.h>
返回值:
如果執行成功,返回true,否則返回false。
參數:
無。