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

歡迎訪問 生活随笔!

生活随笔

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

windows

使用NLPIR汉语分词系统进行分词

發布時間:2023/12/10 windows 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用NLPIR汉语分词系统进行分词 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天嘗試了用張華平博士打造的漢語分詞系統進行分詞測試,遇到了一些問題,最終還是分詞成功,首先感謝NLPIR提供的源碼及資料,現將使用過程中遇到的問題及解決方法分享出來,僅供參考。

NLPIR提供了多種開發接口,包括c,c#,java,python等,可用于windows和linux平臺。本次使用的語言為Java,平臺為windows10

一、下載源碼及資料

可以去官網下載最新的源碼及開發文檔,下載地址為http://ictclas.nlpir.org/downloads,下載后解壓文件

二、解壓后,文件夾中含有sample目錄,里面包含了c,c#,hadoop,java,python測試用例,選用java測試用例,也可新建工程。

三、完成分詞要包含Data文件夾,jna.jar,NLPIR.dll等文件,為了開發方便,將解壓文件夾根目錄下的Data文件夾拷貝到java工程的根目錄。解壓文件夾根目錄下的lib目錄,根據系統環境選擇引用庫文件,本次選擇為win64,將win64文件夾里的NLPIR文件拷貝到java工程文件夾下。另外還需要引用jar包,jar包已經包含在java測試用例中了。

四、eclipse打開java工程,如果提示jar包錯誤,則重新引用jar包即可。

五、更改代碼中的路徑。

在給的測試用例中,接口代碼中,CLibrary Instance = (CLibrary) Native.loadLibrary(libpath, CLibrary.class);,libpath即為動態鏈接庫的路徑,步驟三中已經放在工程的根目錄下,此時,libpath值應為 “NLPIR”,即dll文件的名字,注意,不用添加".dll"。如果NLPIR.dll文件放在了sample文件夾下,則libpath值應為 “sample/NLPIR”。在初始化代碼中,int init_flag = CLibrary.Instance.NLPIR_Init(datapath, charset_type, "0") ; datapath即為Data文件夾的路徑,此時,根據步驟三存放的位置,值應為“./”或“”。

六、可能出現證書過期的情況,可以去https://github.com/NLPIR-team/NLPIR/tree/master/License下載最新的證書,下載后,解壓并復制替換Data中的文件即可

七、源碼及測試結果

源碼:

package code;
import com.sun.jna.Library;
import com.sun.jna.Native;
public class NlpirTest {
private static String libpath = "NLPIR";
private static String rootpath = "";
public interface CLibrary extends Library {
CLibrary Instance = (CLibrary) Native.loadLibrary(libpath, CLibrary.class);
public int NLPIR_Init(String sDataPath, int encoding, String sLicenceCode);
public String NLPIR_ParagraphProcess(String sSrc, int bPOSTagged);
public int NLPIR_ImportUserDict(String path);
public String NLPIR_GetKeyWords(String sLine, int nMaxKeyLimit, boolean bWeightOut);
public String NLPIR_GetFileKeyWords(String sLine, int nMaxKeyLimit, boolean bWeightOut);
public int NLPIR_AddUserWord(String sWord);
public int NLPIR_DelUsrWord(String sWord);
public String NLPIR_GetLastErrorMsg();
public void NLPIR_Exit();
}
public static void main(String[] args) throws Exception {
int charset_type = 1;
int init_flag = CLibrary.Instance.NLPIR_Init(rootpath, charset_type, "0");
String nativeBytes = null;
if (0 == init_flag) {
nativeBytes = CLibrary.Instance.NLPIR_GetLastErrorMsg();
System.err.println("init failed, reason is " + nativeBytes);
return;
}
String sInput = "山東科技大學";
try {
//分詞結果
nativeBytes = CLibrary.Instance.NLPIR_ParagraphProcess(sInput, 1);
System.out.println("分詞結果為: " + nativeBytes);
//添加詞典以后
int nItems = CLibrary.Instance.NLPIR_ImportUserDict("mykey.txt");
System.out.println(nItems);
nativeBytes = CLibrary.Instance.NLPIR_ParagraphProcess(sInput, 1);
System.out.println("增加用戶詞典后分詞結果為: " + nativeBytes);
//關鍵詞提取結果
String nativeByte = CLibrary.Instance.NLPIR_GetKeyWords(sInput, 10, false);
System.out.println("關鍵詞提取結果是:" + nativeByte);
CLibrary.Instance.NLPIR_Exit();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}

結果測試:


我的項目可在:git@code.csdn.net:wanna_wsl/nlpirtest.git下載,僅供參考

總結

以上是生活随笔為你收集整理的使用NLPIR汉语分词系统进行分词的全部內容,希望文章能夠幫你解決所遇到的問題。

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