HanLP方法封裝類:
1. # -*- coding:utf-8 -*-
2. # Filename: main.py
3.
4.from jpype import *
5.
5.startJVM(getDefaultJVMPath(), "-Djava.class.path=C:\hanlp\hanlp-1.3.2.jar;C:\hanlp", "-Xms1g", "-Xmx1g") # 啓動JVM,Linux需替換分號;爲冒號:
7.
8.print("="*30+"HanLP分詞"+"="*30)
9.HanLP = JClass('com.hankcs.hanlp.HanLP')
10.# 中文分詞
11.print(HanLP.segment('你好,歡迎在Python中調用HanLP的API'))
12.print("-"*70)
13.
14. print("="*30+"標準分詞"+"="*30)
15. StandardTokenizer = JClass('com.hankcs.hanlp.tokenizer.StandardTokenizer')
16. print(StandardTokenizer.segment('你好,歡迎在Python中調用HanLP的API'))
17. print("-"*70)
18.
19.# NLP分詞NLPTokenizer會執行所有命名實體識別和詞性標註
20.print("="*30+"NLP分詞"+"="*30)
21.NLPTokenizer = JClass('com.hankcs.hanlp.tokenizer.NLPTokenizer')
22.print(NLPTokenizer.segment('中國科學院計算技術研究所的宗成慶教授正在教授天然語言處理課程'))
23.print("-"*70)
24.
25. print("="*30+"索引分詞"+"="*30)
26. IndexTokenizer = JClass('com.hankcs.hanlp.tokenizer.IndexTokenizer')
27. termList= IndexTokenizer.segment("主副食品");
28. for term in termList :
29. print(str(term) + " [" + str(term.offset) + ":" + str(term.offset + len(term.word)) + "]")
30. print("-"*70)
31.
32.
33.print("="*30+" N-最短路徑分詞"+"="*30)
34.# CRFSegment = JClass('com.hankcs.hanlp.seg.CRF.CRFSegment')
35.# segment=CRFSegment()
36.# testCase ="今天,劉志軍案的關鍵人物,山西女商人丁書苗在市二中院出庭受審。"
37.# print(segment.seg("你看過穆赫蘭道嗎"))
38.print("-"*70)
39.
40.
41.print("="*30+" CRF分詞"+"="*30)
42.print("-"*70)
43.
44. print("="*30+" 極速詞典分詞"+"="*30)
45. SpeedTokenizer = JClass('com.hankcs.hanlp.tokenizer.SpeedTokenizer')
46. print(NLPTokenizer.segment('江西鄱陽湖乾枯,中國最大淡水湖變成大草原'))
47. print("-"*70)
48.
49.print("="*30+" 自定義分詞"+"="*30)
50.CustomDictionary = JClass('com.hankcs.hanlp.dictionary.CustomDictionary')
51.CustomDictionary.add('攻城獅')
52.CustomDictionary.add('單身狗')
53.HanLP = JClass('com.hankcs.hanlp.HanLP')
54.print(HanLP.segment('攻城獅逆襲單身狗,迎娶白富美,走上人生巔峯'))
55.print("-"*70)
56.
57 . print("="*20+"命名實體識別與詞性標註"+"="*30)
58.NLPTokenizer = JClass('com.hankcs.hanlp.tokenizer.NLPTokenizer')
59.print(NLPTokenizer.segment('中國科學院計算技術研究所的宗成慶教授正在教授天然語言處理課程'))
60.print("-"*70)
61.
62.
63.document = "水利部水資源司司長陳明忠9月29日在國務院新聞辦舉行的新聞發佈會上透露," \
64. "根據剛剛完成了水資源管理制度的考覈,有部分省接近了紅線的指標," \
65. "有部分省超過紅線的指標。對一些超過紅線的地方,陳明忠表示,對一些取用水項目進行區域的限批," \
66. "嚴格地進行水資源論證和取水許可的批准。"
67. print("="*30+"關鍵詞提取"+"="*30)
68. print(HanLP.extractKeyword(document, 8))
69. print("-"*70)
70.
71.
72.print("="*30+"自動摘要"+"="*30)
73.print(HanLP.extractSummary(document, 3))
74.print("-"*70)
75.
76.
77.# print("="*30+"地名識別"+"="*30)
78.# HanLP = JClass('com.hankcs.hanlp.HanLP')
79.# segment = HanLP.newSegment().enablePlaceRecognize(true)
80.# testCase=["武勝縣新學鄉政府大樓門前鑼鼓喧天",
81.# "藍翔給寧夏固原市彭陽縣紅河鎮黑牛溝村捐贈了挖掘機"]
82.# for sentence in testCase :
83.# print(HanLP.segment(sentence))
84.# print("-"*70)
85.
86. # print("="*30+"依存句法分析"+"="*30)
87. # print(HanLP.parseDependency("徐先生還具體幫助他肯定了把畫雄鷹、松鼠和麻雀做爲主攻目標。"))
88. # print("-"*70)
89.
90.
91.
92.
93.text =r"算法工程師\n 算法(Algorithm)是一系列解決問題的清晰指令,也就是說,可以對必定規範的輸入,在有限時間內得到所要求的輸出。若是一個算法有缺陷,或不適合於某個問題,執行這個算法將不會解決這個問題。不一樣的算法可能用不一樣的時間、空間或效率來完成一樣的任務。一個算法的優劣能夠用空間複雜度與時間複雜度來衡量。算法工程師就是利用算法處理事物的人。\n \n 1職位簡介\n 算法工程師是一個很是高端的職位;\n 專業要求:計算機、電子、通訊、數學等相關專業;\n 學歷要求:本科及其以上的學歷,大多數是碩士學歷及其以上;\n 語言要求:英語要求是熟練,基本上能閱讀國外專業書刊;\n 必須掌握計算機相關知識,熟練使用仿真工具MATLAB等,必須會一門編程語言。\n\n2研究方向\n 視頻算法工程師、圖像處理算法工程師、音頻算法工程師 通訊基帶算法工程師\n \n 3目前國內外情況\n 目前國內從事算法研究的工程師很多,可是高級算法工程師卻不多,是一個很是緊缺的專業工程師。算法工程師根據研究領域來分主要有音頻/視頻算法處理、圖像技術方面的二維信息算法處理和通訊物理層、雷達信號處理、生物醫學信號處理等領域的一維信息算法處理。\n 在計算機音視頻和圖形圖像技術等二維信息算法處理方面目前比較先進的視頻處理算法:機器視覺成爲此類算法研究的核心;另外還有2D轉3D算法(2D-to-3D conversion),去隔行算法(de-interlacing),運動估計運動補償算法(Motion estimation/Motion Compensation),去噪算法(Noise Reduction),縮放算法(scaling),銳化處理算法(Sharpness),超分辨率算法(Super Resolution),手勢識別(gesture recognition),人臉識別(face recognition)。\n 在通訊物理層等一維信息領域目前經常使用的算法:無線領域的RRM、RTT,傳送領域的調製解調、信道均衡、信號檢測、網絡優化、信號分解等。\n 另外數據挖掘、互聯網搜索算法也成爲當今的熱門方向。\n"
94.print("="*30+"短語提取"+"="*30)
95.
96. print(HanLP.extractPhrase(text, 10))
97. print("-"*70)
98.
99.shutdownJVM()java
HanLP運行結果:python
python調用HanLP的jar包
連接: https://pan.baidu.com/s/1miDrWHq 密碼: bmy6算法
轉載自白寧超的博客 http://www.cnblogs.com/baiboy/ 編程