开发者社区> 大数据资讯> 正文

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/ 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
自然语言处理hanlp------3java调用hanlp
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
16 0
NLP快速入门:手把手教你用HanLP做中文分词
NLP快速入门:手把手教你用HanLP做中文分词
528 0
自然语言处理工具HanLP-基于层叠HMM地名识别
本篇接上一篇内容《HanLP-基于HMM-Viterbi的人名识别原理介绍》介绍一下层叠隐马的原理。首先说一下上一篇介绍的人名识别效果对比: 只有Jieba识别出的人名准确率极低,基本为地名或复杂地名组成部分或复杂机构名组成部分。
1053 0
自然语言处理工具python调用hanlp的方法步骤
Python调用hanlp的方法此前有分享过,本篇文章分享自“逍遥自在017”的博客,个别处有修改,阅读时请注意!1.首先安装jpype首先各种坑,jdk和python 版本位数必须一致,我用的是JPype1-py3 版本号0.5.5.2 、1.6jdk和Python3.5,win7 64位下亲测没问题。
1091 0
HanLP 自然语言处理 for nodejs
·支持中文分词(N-最短路分词、CRF分词、索引分词、用户自定义词典、词性标注),命名实体识别(中国人名、音译人名、日本人名、地名、实体机构名识别),关键词提取,自动摘要,短语提取,拼音转换,简繁转换,文本推荐,依存句法分析(MaxEnt依存句法分析、CRF依存句法分析)
1399 0
Hanlp自然语言处理工具之词法分析器
本章是接前两篇《分词工具Hanlp基于感知机的中文分词框架》和《基于结构化感知机的词性标注与命名实体识别框架》的。本系统将同时进行中文分词、词性标注与命名实体识别3个任务的子系统称为“词法分析器”。
2319 0
Hanlp自然语言处理中的词典格式说明
使用过hanlp的都知道hanlp中有许多词典,它们的格式都是非常相似的,形式都是文本文档,随时可以修改。本篇文章详细介绍了hanlp中的词典格式,以满足用户自定义的需要。
4678 0
如何编译运行HanLP自然语言处理包
master分支 对于master分支,编译方法如下: git clone  https://github.com/hankcs/HanLP.git mvn install -DskipTests   ·由于目前一些test不够规范,使用了硬编码路径下的资源,所以暂时跳过单元测试。
1244 0
开源自然语言处理工具包hanlp中CRF分词实现详解
 CRF简介 CRF是序列标注场景中常用的模型,比HMM能利用更多的特征,比MEMM更能抵抗标记偏置的问题。 [gerative-discriminative.png]  CRF训练 这类耗时的任务,还是交给了用C++实现的CRF++。
1658 0
自然语言处理工具hanlp关键词提取图解TextRank算法
TextRank是在Google的PageRank算法启发下,针对文本里的句子设计的权重算法,目标是自动摘要。它利用投票的原理,让每一个单词给它的邻居(术语称窗口)投赞成票,票的权重取决于自己的票数。这是一个“先有鸡还是先有蛋”的悖论,PageRank采用矩阵迭代收敛的方式解决了这个悖论。
1431 0
NLP自然语言处理中的hanlp分词实例
本篇分享的依然是关于hanlp的分词使用,文章内容分享自 gladosAI 的博客,本篇文章中提出了一个问题,hanlp分词影响了实验判断结果。为何会如此,不妨一起学习一下 gladosAI 的这篇文章。
3949 0
中文自然语言处理工具HanLP源码包的下载使用记录
这篇文章主要分享的是hanlp自然语言处理源码的下载,数据集的下载,以及将让源代码中的demo能够跑通。Hanlp安装包的下载以及安装其实之前就已经有过分享了。本篇文章主要还是备忘之用,同时算是给新手朋友的一些参考吧!
1438 0
中文自然语言处理工具hanlp隐马角色标注详解
本文旨在介绍如何利用HanLP训练分词模型,包括语料格式、语料预处理、训练接口、输出格式等。 目前HanLP内置的训练接口是针对一阶HMM-NGram设计的,另外附带了通用的语料加载工具,可以通过少量代码导出供其他训练工具使用的特定格式(如CRF++)。
1441 0
自然语言处理工具python调用hanlp中文实体识别
Hanlp作为一款重要的中文分词工具,在GitHub的用户量已经非常之高,应该可以看得出来大家对于hanlp这款分词工具还是很认可的。本篇继续分享一篇关于hanlp的使用实例即Python调用hanlp进行中文实体识别。
1646 0
自然语言处理工具hanlp自定义词汇添加图解
过程分析 1.添加新词需要确定无缓存文件,否则无法使用成功,因为词典会优先加载缓存文件 2.再确认缓存文件不在时,打开本地词典按照格式添加自定义词汇。 3.调用分词函数重新生成缓存文件,这时会报一个找不到缓存文件的异常,不用管,因为加载词典进入内存是会优先加载缓存,缓存不在当然会报异常,然后加载词典生成缓存文件,最后处理字符进行分词就会发现新添加的词汇可以进行分词了。
1160 0
+关注
大数据资讯
hadoop爱好者
文章
问答
视频
相关电子书
更多
深度学习与自然语言处理
立即下载
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载