1.首先安裝jpype
首先各種坑,jdk和python 版本位數(shù)必須一致,我用的是JPype1-py3 版本號(hào)0.5.5.2 、1.6jdk和Python3.5,win7 64位下親測(cè)沒問(wèn)題。
否則死翹翹,有可能虛擬機(jī)都無(wú)法啟動(dòng):
# -*- coding:utf-8 -*-
import jpype
from jpype import *
jvmPath = jpype.getDefaultJVMPath()
print(jvmPath)
jpype.startJVM(jvmPath)
jpype.java.lang.System.out.println("hello world!")
java.lang.System.out.println("hello world")
jpype.shutdownJVM()
出錯(cuò)調(diào)試,原因已說(shuō);測(cè)試成功會(huì)有輸出。
下面啟動(dòng)虛擬機(jī)跑hanlp
2.下載各種安裝包
使用自定義的HanLP——HanLP由3部分組成:類庫(kù)hanlp.jar包、模型data包、配置文件hanlp.properties,請(qǐng)前往項(xiàng)目主頁(yè)下載最新版:https://github.com/hankcs/HanLP/releases。對(duì)于非portable版,下載后,你需要編輯配置文件第一行的root指向data的父目錄,詳見文檔。
# -*- coding:utf-8 -*-
?
import os
from jpype import *
[python] view plain copy
#老版本??
startJVM(getDefaultJVMPath(), "-Djava.class.path=D:\hanLP\hanlp-1.3.2.jar;"??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? "D:\hanLP", "-Xms1g","-Xmx1g")? # 啟動(dòng)JVM,Linux需替換分號(hào);為冒號(hào):??
#新版本,出現(xiàn)警告。垃圾的1.5會(huì)出現(xiàn)警告,而且數(shù)據(jù)也出問(wèn)題。??
# startJVM(getDefaultJVMPath(), "-Djava.class.path=D:\hanLP\hanlp-1.5.2.jar;"??
#? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"D:\hanLP", "-Xms1g","-Xmx1g")? # 啟動(dòng)JVM,Linux需替換分號(hào);為冒號(hào):??
HanLP = JClass('com.hankcs.hanlp.HanLP')
#中文分詞
print(HanLP.segment("你好,歡迎在Python中調(diào)用HanLP的API").toString())
testCases = [
? ? "商品和服務(wù)",
? ? "結(jié)婚的和尚未結(jié)婚的確實(shí)在干擾分詞啊",
? ? "買水果然后來(lái)世博園最后去世博會(huì)",
? ? "中國(guó)的首都是北京",
? ? "歡迎新老師生前來(lái)就餐",
? ? "工信處女干事每月經(jīng)過(guò)下屬科室都要親口交代24口交換機(jī)等技術(shù)性器件的安裝工作",
? ? "隨著頁(yè)游興起到現(xiàn)在的頁(yè)游繁盛,依賴于存檔進(jìn)行邏輯判斷的設(shè)計(jì)減少了,但這塊也不能完全忽略掉。"]
for sentence in testCases: print(HanLP.segment(sentence))
# 命名實(shí)體識(shí)別與詞性標(biāo)注
NLPTokenizer = JClass('com.hankcs.hanlp.tokenizer.NLPTokenizer')
print(NLPTokenizer.segment('中國(guó)科學(xué)院計(jì)算技術(shù)研究所的宗成慶教授正在教授自然語(yǔ)言處理課程'))
# 關(guān)鍵詞提取
document = "水利部水資源司司長(zhǎng)陳明忠9月29日在國(guó)務(wù)院新聞辦舉行的新聞發(fā)布會(huì)上透露," \
? ? ? ? ? ?"根據(jù)剛剛完成了水資源管理制度的考核,有部分省接近了紅線的指標(biāo)," \
? ? ? ? ? ?"有部分省超過(guò)紅線的指標(biāo)。對(duì)一些超過(guò)紅線的地方,陳明忠表示,對(duì)一些取用水項(xiàng)目進(jìn)行區(qū)域的限批," \
? ? ? ? ? ?"嚴(yán)格地進(jìn)行水資源論證和取水許可的批準(zhǔn)。"
print(HanLP.extractKeyword(document, 2))
# 自動(dòng)摘要
print(HanLP.extractSummary(document, 3))
# 依存句法分析
print(HanLP.parseDependency("徐先生還具體幫助他確定了把畫雄鷹、松鼠和麻雀作為主攻目標(biāo)。"))
shutdownJVM()
測(cè)試成功:
[你好/vl, ,/w, 歡迎/v, 在/p, Python/nx, 中/f, 調(diào)用/v, HanLP/nx, 的/ude1, API/nx]
還行
[商品/n, 和/cc, 服務(wù)/vn]
[結(jié)婚/vi, 的/ude1, 和/cc, 尚未/d, 結(jié)婚/vi, 的/ude1, 確實(shí)/ad, 在/p, 干擾/vn, 分詞/n, 啊/y]
[買/v, 水果/n, 然后/c, 來(lái)/vf, 世博園/n, 最后/f, 去/vf, 世博會(huì)/n]
[中國(guó)/ns, 的/ude1, 首都/n, 是/vshi, 北京/ns]
[歡迎/v, 新/a, 老/a, 師生/n, 前來(lái)/vi, 就餐/vi]
[工信處/n, 女干事/n, 每月/r, 經(jīng)過(guò)/p, 下屬/v, 科室/n, 都/d, 要/v, 親口/d, 交代/v, 24/m, 口/n, 交換機(jī)/n, 等/udeng, 技術(shù)性/n, 器件/n, 的/ude1, 安裝/v, 工作/vn]
[隨著/p, 頁(yè)游/nz, 興起/v, 到/v, 現(xiàn)在/t, 的/ude1, 頁(yè)游/nz, 繁盛/a, ,/w, 依賴于/v, 存檔/vi, 進(jìn)行/vn, 邏輯/n, 判斷/v, 的/ude1, 設(shè)計(jì)/vn, 減少/v, 了/ule, ,/w, 但/c, 這/rzv, 塊/q, 也/d, 不能/v, 完全/ad, 忽略/v, 掉/v, 。/w]
[中國(guó)科學(xué)院計(jì)算技術(shù)研究所/nt, 的/ude1, 宗成慶/nr, 教授/nnt, 正在/d, 教授/v, 自然語(yǔ)言處理/nz, 課程/n]
[水資源, 陳明忠]
[嚴(yán)格地進(jìn)行水資源論證和取水許可的批準(zhǔn), 水利部水資源司司長(zhǎng)陳明忠9月29日在國(guó)務(wù)院新聞辦舉行的新聞發(fā)布會(huì)上透露, 有部分省超過(guò)紅線的指標(biāo)]
1 徐先生 徐先生 nh nr _ 4 主謂關(guān)系 _ _
2 還 還 d d _ 4 狀中結(jié)構(gòu) _ _
3 具體 具體 a a _ 4 狀中結(jié)構(gòu) _ _
4 幫助 幫助 v v _ 0 核心關(guān)系 _ _
5 他 他 r rr _ 4 兼語(yǔ) _ _
6 確定 確定 v v _ 4 動(dòng)賓關(guān)系 _ _
7 了 了 u ule _ 6 右附加關(guān)系 _ _
8 把 把 p pba _ 15 狀中結(jié)構(gòu) _ _
9 畫 畫 v v _ 8 介賓關(guān)系 _ _
10 雄鷹 雄鷹 n n _ 9 動(dòng)賓關(guān)系 _ _
11 、 、 wp w _ 12 標(biāo)點(diǎn)符號(hào) _ _
12 松鼠 松鼠 n n _ 10 并列關(guān)系 _ _
13 和 和 c cc _ 14 左附加關(guān)系 _ _
14 麻雀 麻雀 n n _ 10 并列關(guān)系 _ _
15 作為 作為 p p _ 6 動(dòng)賓關(guān)系 _ _
16 主攻 主攻 v vn _ 17 定中關(guān)系 _ _
17 目標(biāo) 目標(biāo) n n _ 15 動(dòng)賓關(guān)系 _ _
18 。 。 wp w _ 4 標(biāo)點(diǎn)符號(hào) _ _
?
JVM activity report? ? ?:
classes loaded? ? ? ?: 32
JVM has been shutdown
這里有可能JClass("
com.hankcs.hanlp.HanLP")時(shí),報(bào)錯(cuò)出現(xiàn)找不到類的問(wèn)題,仔細(xì)查看配置文件和jar路徑是否對(duì);如果還出錯(cuò),
查看data里面的文件是否全。
文章來(lái)源于逍遙自在017的博客
電子發(fā)燒友App






















評(píng)論