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运行结果:

python调用HanLP的jar包

链接: https://pan.baidu.com/s/1miDrWHq 密码: bmy6

原文链接:http://www.cnblogs.com/baiboy/

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

NIPS 官方公告「更名」结果......

NIPS 可以说是今年 AI 领域话题最多的学术会议了,无论是备受争议的同行评审、门票 11 分钟售罄,还是从年初到年底的更名风波。特别是为了更名,NIPS 官...

932
来自专栏腾讯云安全的专栏

鉴黄界的“Master”,其实是“他”

2554
来自专栏AI科技大本营的专栏

胜过iPhone XS?Google Pixel的“夜视功能”是怎样炼成的

【导读】随着智能手机的不断发展成熟,为了寻找差异化的厂商不断增加摄像头的数量。然而,摄像头的数量越多,就代表拍照的质量越好吗?

1022
来自专栏WOLFRAM

用 Wolfram 语言发掘数学殿堂中的瑰宝

1917
来自专栏大数据文摘

AI说人“画” | 说说我用神经网络找小哥哥的那些事儿……

1593
来自专栏大数据文摘

波斯公主选驸马: 关于算法和重大决策

2217
来自专栏PPV课数据科学社区

波斯公主选驸马: 关于算法和重大决策

大学时的一道数学题 我大学的专业是数学。有一次,教授给出了《波斯公主选驸马》题「1」,如下: 波斯公主到了适婚年龄,要选驸马。候选男子100名,都是公主没有见过...

3674
来自专栏量子位

奥巴马吐槽川普“笨蛋”的视频火了,这又得“归功”于AI

也就半天的工夫,这段视频在Twitter上有200多万次播放,1300多条评论,被转发了2万6000多次,还收获了5万多个赞。

1282
来自专栏思影科技

SCIENCE:脑和脊髓的交互调节价值在反向安慰剂痛觉过敏中的作用

近日,来自德国汉堡-埃彭夫医学中心的A.Tinnermann在Science上发文,发现昂贵的治疗会导致更多的副作用。将无效的治疗标记为昂贵的药物相比于将它标记...

3478
来自专栏飞总聊IT

数据模型的战斗(1):被遗弃的老陈

数据库圈对不起老陈 2015年美国某牛逼教授,ACM和IEEE双院士(此处隐去名字)在印度召开的VLDB上说,数据库的圈子非常的不厚道,自娱自乐,只看重自己圈子...

3679

扫码关注云+社区

领取腾讯云代金券