pyhanlp、HanLP安裝使用(Windows)
4.28更新:對於Python來說,官方給出了HanLP的Python接口,具體見:自然語言處理工具包HanLP的Python接口,使用一個簡單的pip
命令就可以安裝使用了,但是仍然需要安裝一些環境,這裏簡單介紹一下,它的安裝過程中各種環境的安裝與之前是一樣的。
首先是安裝 Java Visual C++環境以及安裝 Jpype,這與之前一樣。
不同的地方在於之前安裝 jar 包以及配置 data 的過程可以使用一個 pip
命令來完成,在完成上述操作後,進入控制檯(Anaconda的話要進入 Anaconda Propmpt 然後 activate 到相應的環境下),然後使用:
pip install pyhanlp
注意在第一使用 from pyhanlp import *
命令來導入的時候會自動下載data 以及jar包,整個過程大概由1G左右吧,所以首次運行會比較慢,第二次就快多了。
在完成安裝之後,使用與下面HanLP的測試代碼一樣,並且不需要啓動Java虛擬機的那些環境設置。在導入之後,HanLP
對象會自動創建,對於其他的對象,則可以通過JClass
來創建,例如:
StandardTokenizer = JClass("com.hankcs.hanlp.tokenizer.StandardTokenizer")
print(StandardTokenizer.segment("使用這個工具進行標準分詞"))
其他對象同理創建使用。
以下是原文
安裝Hanlp時候發現網上的一些介紹文章寫的有些模糊,這裏記錄一下Python環境下安裝與使用Hanlp。
首先,要明確HanLP是一個Java工具包,由很多模型、算法組成,而在學習自然語言的時候一般都會使用Python吧,因此,實質上是使用Python調用Hanlp。
具體安裝步驟:
1.安裝Java 和 Visual C++環境
首先是安裝JDK,這個在Oracle的官網上就可以下載到:JDK,選擇自己使用的版本即可,注意要勾選Accept那個按鈕才能下載。下載完成後安裝即可。不過JDK安裝之後要配置一下環境變量(例如在cmd下輸入java發下是“不是批處理XXX”),具體的方法網上有很多,例如:JDK環境變量配置。
接下在安裝Visual C++,這個可以先看一下自己電腦是否已經安裝(我記得有些遊戲是會安裝這個的 =_=||。。),打開控制面板(可以win+Q,在小娜的搜索框裏直接搜索),在“程序”中找到已經安裝的程序:
類似這樣,這裏安裝的事Visual C++ 2015,如果沒有,也可以直接在網上搜索下載:Download Visual C++ 2015,安裝包很小的。
2.安裝Jpype
Jpype是使用Python調用Java 的工具包,安裝非常簡單,如果是使用Anaconda(一般都會推薦使用Anaconda的吧),的話,打開Anaconda的控制檯,使用activate
進入想要安裝的那個虛擬環境,然後調用:
conda install -c conda-forge jpype1
即可,(那個Solving enviromnment可能會轉一小會),然後安裝選擇 Proceed ([y]/n)後輸入 y即可安裝。
3.測試Python環境下調用Java
測試仍然在Anaconda的控制檯下進行,使用Python
可以在控制檯下進入Python環境,首先輸入:
from jpype import *
測試能否正常導入。然後測試開啓Java虛擬機,並進行簡單輸出測試
startJVM(getDefaultJVMPath(), "-ea")
java.lang.System.out.println("Hello")
其實下面的代碼就是Java中的輸出語句了。如果在那個黑框框中沒有顯示錯誤信息那就說明安裝成功了。可以關閉Java虛擬機:
shutdownJVM()
4.HanLP安裝
這裏主要是安裝HanLP的jar包和data文件,打開HanLP的github地址:HanLP,其實上面的安裝介紹已經很清楚了。
找到方法二:
首先下載data.zip(點擊那個鏈接,這部分也在直接clone的文件裏),然後下載jar和配置文件,解壓後能看到裏面的jar文件。
當然,建議這兩個都放在英文路徑下,例如:
5.修改配置文件
這部分在HanLP的github網頁上已經做了詳細介紹。
首先打開 hanlp.properties文件,在上面第二個下載中。
這裏只需要修改第一行即可(文件裏也寫了):
這裏將root=
後面修改爲存放data的那個文件夾路徑,例如,我剛纔的路徑就是:root=D:/NLP/hanlp
。
至此,完成了HanLP的安裝。
6.測試
使用代碼來測試一下安裝的HanLP功能:
發現網上代碼都很經典啊。。都是一樣的,可以使用這裏的代碼測試一下:Python中調用自然語言處理工具HanLP手記
注意:
from jpype import *
startJVM(getDefaultJVMPath(), "-Djava.class.path=D:/NLP/hanlp/hanlp-1.7.3.jar;D:/NLP/hanlp",
"-Xms1g",
"-Xmx1g")
HanLP = JClass('com.hankcs.hanlp.HanLP')
這裏的路徑也就是前面存放jar和data的文件了,要注意這裏的路徑分隔符使用的是/
,與上面配置文件的路徑符號不同,這個地方出錯可能會出現SyntaxError: (unicode error)
這樣的錯誤,具體可以參考:Python 中 ‘unicodeescape’ codec can’t decode bytes in position XXX: trun錯誤解決方案。