日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

中科院分词系统(NLPIR)JAVA简易教程

發布時間:2025/3/21 windows 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 中科院分词系统(NLPIR)JAVA简易教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這篇文檔內容主要從官方文檔中獲取而來,對API進行了翻譯,并依據個人使用經驗進行了一些補充,鑒于能力有限、水平較低,文檔中肯定存在有很多不足之處,還請見諒。

下載地址:http://ictclas.nlpir.org/downloads,下載最新的NLPIR/ICTCLAS分詞系統下載包

授權文件下載地址:https://github.com/NLPIR-team/NLPIR/tree/431b6351f30ed7d606ac50fde1f4456c596998df/License

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)。

[java] view plaincopy
  • </pre><pre?name="code"?class="java">package?study;??
  • 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的各個函數了。

    [java] view plaincopy
  • package?study;??
  • ??
  • import?java.math.BigDecimal;??
  • import?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。

    參數:

    無。

    總結

    以上是生活随笔為你收集整理的中科院分词系统(NLPIR)JAVA简易教程的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。