Python中调用自然语言处理工具HanLP手记

本文涉及的产品
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_基础版,每接口每天50万次
NLP自然语言处理_高级版,每接口累计50万次
简介:
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()

HanLP运行结果:
254d9b6a4a1d28bfe16bdef8980b70922205a9c6
c4175ea28c8fc5f14c802568262d28b15b4a8714


python调用HanLP的jar包
链接: https://pan.baidu.com/s/1miDrWHq 密码: bmy6

转载自白宁超的博客  http://www.cnblogs.com/baiboy/ 
相关文章
|
1月前
|
人工智能 自然语言处理 语音技术
利用Python进行自然语言处理(NLP)
利用Python进行自然语言处理(NLP)
43 1
|
2月前
|
人工智能 自然语言处理 语音技术
利用Python进行自然语言处理(NLP)
利用Python进行自然语言处理(NLP)
32 3
|
2月前
|
自然语言处理 算法 数据挖掘
探讨如何利用Python中的NLP工具,从被动收集到主动分析文本数据的过程
【10月更文挑战第11天】本文介绍了自然语言处理(NLP)在文本分析中的应用,从被动收集到主动分析的过程。通过Python代码示例,详细展示了文本预处理、特征提取、情感分析和主题建模等关键技术,帮助读者理解如何有效利用NLP工具进行文本数据分析。
55 2
|
4月前
|
自然语言处理 算法 数据可视化
NLP-基于bertopic工具的新闻文本分析与挖掘
这篇文章介绍了如何使用Bertopic工具进行新闻文本分析与挖掘,包括安装Bertopic库、加载和预处理数据集、建立并训练主题模型、评估模型性能、分类新闻标题、调优聚类结果的详细步骤和方法。
NLP-基于bertopic工具的新闻文本分析与挖掘
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
【自然语言处理】python之人工智能应用篇——文本生成技术
文本生成是指使用自然语言处理技术,基于给定的上下文或主题自动生成人类可读的文本。这种技术可以应用于各种领域,如自动写作、聊天机器人、新闻生成、广告文案创作等。
145 8
|
5月前
|
机器学习/深度学习 自然语言处理 TensorFlow
使用Python实现深度学习模型:文本生成与自然语言处理
【7月更文挑战第14天】 使用Python实现深度学习模型:文本生成与自然语言处理
152 12
|
5月前
|
机器学习/深度学习 自然语言处理 机器人
使用Python实现深度学习模型:自然语言理解与问答系统
【7月更文挑战第20天】 使用Python实现深度学习模型:自然语言理解与问答系统
64 0
使用Python实现深度学习模型:自然语言理解与问答系统
|
5月前
|
SQL 人工智能 自然语言处理
一款利用人工智能将自然语言查询转换为 SQL 代码的互译工具 - SQL Translator
一款利用人工智能将自然语言查询转换为 SQL 代码的互译工具 - SQL Translator
142 0
|
6月前
|
机器学习/深度学习 数据采集 人工智能
Python 高级实战:基于自然语言处理的情感分析系统
**摘要:** 本文介绍了基于Python的情感分析系统,涵盖了从数据准备到模型构建的全过程。首先,讲解了如何安装Python及必需的NLP库,如nltk、sklearn、pandas和matplotlib。接着,通过抓取IMDb电影评论数据并进行预处理,构建情感分析模型。文中使用了VADER库进行基本的情感分类,并展示了如何使用`LogisticRegression`构建机器学习模型以提高分析精度。最后,提到了如何将模型部署为实时Web服务。本文旨在帮助读者提升在NLP和情感分析领域的实践技能。
358 0
|
Python
C调用Python崩溃的记录
C调用Python崩溃的记录
158 0