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

简介:
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的Gensim库进行自然语言处理和主题建模?
使用Gensim库进行自然语言处理和主题建模,首先通过`pip install gensim`安装库,然后导入`corpora`, `models`等模块。对数据进行预处理,包括分词和去除停用词。接着,创建字典和语料库,使用`Dictionary`和`doc2bow`。之后,应用LDA算法训练模型,设置主题数量并创建`LdaModel`。最后,打印每个主题的主要关键词。可以根据需求调整参数和选择不同算法。
26 0
|
5天前
|
缓存 自然语言处理 数据处理
Python自然语言处理面试:NLTK、SpaCy与Hugging Face库详解
【4月更文挑战第16天】本文介绍了Python NLP面试中NLTK、SpaCy和Hugging Face库的常见问题和易错点。通过示例代码展示了如何进行分词、词性标注、命名实体识别、相似度计算、依存关系分析、文本分类及预训练模型调用等任务。重点强调了理解库功能、预处理、模型选择、性能优化和模型解释性的重要性,帮助面试者提升NLP技术展示。
23 5
|
6天前
|
机器学习/深度学习 数据挖掘 计算机视觉
python数据分析工具SciPy
【4月更文挑战第15天】SciPy是Python的开源库,用于数学、科学和工程计算,基于NumPy扩展了优化、线性代数、积分、插值、特殊函数、信号处理、图像处理和常微分方程求解等功能。它包含优化、线性代数、积分、信号和图像处理等多个模块。通过SciPy,可以方便地执行各种科学计算任务。例如,计算高斯分布的PDF,需要结合NumPy使用。要安装SciPy,可以使用`pip install scipy`命令。这个库极大地丰富了Python在科学计算领域的应用。
12 1
|
7天前
|
数据可视化 数据挖掘 Python
Python中数据分析工具Matplotlib
【4月更文挑战第14天】Matplotlib是Python的数据可视化库,能生成多种图表,如折线图、柱状图等。以下是一个绘制简单折线图的代码示例: ```python import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [2, 4, 6, 8, 10] plt.figure() plt.plot(x, y) plt.title('简单折线图') plt.xlabel('X轴') plt.ylabel('Y轴') plt.show() ```
12 1
|
7天前
|
数据采集 SQL 数据可视化
Python数据分析工具Pandas
【4月更文挑战第14天】Pandas是Python的数据分析库,提供Series和DataFrame数据结构,用于高效处理标记数据。它支持从多种数据源加载数据,包括CSV、Excel和SQL。功能包括数据清洗(处理缺失值、异常值)、数据操作(切片、过滤、分组)、时间序列分析及与Matplotlib等库集成进行数据可视化。其高性能底层基于NumPy,适合大型数据集处理。通过加载数据、清洗、分析和可视化,Pandas简化了数据分析流程。广泛的学习资源使其成为数据分析初学者的理想选择。
13 1
|
7天前
|
机器学习/深度学习 自然语言处理 算法框架/工具
用于NLP的Python:使用Keras进行深度学习文本生成
用于NLP的Python:使用Keras进行深度学习文本生成
19 2
|
13天前
|
测试技术 开发者 Python
Python中的装饰器:优雅而强大的函数修饰工具
在Python编程中,装饰器是一种强大的工具,用于修改函数或方法的行为。本文将深入探讨Python中装饰器的概念、用法和实际应用,以及如何利用装饰器实现代码的优雅和高效。
|
1月前
|
数据采集 搜索推荐 数据挖掘
使用Python制作一个批量查询搜索排名的SEO免费工具
最近工作中需要用上 Google SEO(搜索引擎优化),有了解过的朋友们应该都知道SEO必不可少的工作之一就是查询关键词的搜索排名。关键词少的时候可以一个一个去查没什么问题,但是到了后期,一个网站都有几百上千的关键词,你再去一个一个查,至少要花费数小时的时间。 虽然市面上有很多SEO免费或者收费工具,但免费的基本都不能批量查,网上免费的最多也就只能10个10个查询,而且查询速度很慢。收费的工具如Ahrefs、SEMrush等以月为单位收费最低也都要上百美刀/月,当然如果觉得价格合适也可以进行购买,毕竟这些工具的很多功能都很实用。今天我给大家分享的这个排名搜索工具基于python实现,当然肯定
40 0
|
1月前
|
XML Shell Linux
性能工具之 JMeter 使用 Python 脚本快速执行
性能工具之 JMeter 使用 Python 脚本快速执行
41 1
性能工具之 JMeter 使用 Python 脚本快速执行
|
1月前
|
数据可视化 数据挖掘 Python
Python中的数据可视化工具Matplotlib简介与实践
在本文中,我们将介绍Python中常用的数据可视化工具Matplotlib,包括其基本概念、常用功能以及实际应用。通过学习Matplotlib,读者可以更好地理解和运用数据可视化技术,提升数据分析与展示的能力。

热门文章

最新文章