手记实用系列文章:

结巴分词和自然语言处理HanLP处理手记

Python中文语料批量预处理手记

自然语言处理手记

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

Python中结巴分词使用手记

HanLP方法封装类:

  1. # -*- coding:utf-8 -*-
  2. # Filename: main.py
  3.  
  4. from jpype import *
  5.  
  6. 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. print("="*30+" N-最短路径分词"+"="*30)
  33. # CRFSegment = JClass('com.hankcs.hanlp.seg.CRF.CRFSegment')
  34. # segment=CRFSegment()
  35. # testCase ="今天,刘志军案的关键人物,山西女商人丁书苗在市二中院出庭受审。"
  36. # print(segment.seg("你看过穆赫兰道吗"))
  37. print("-"*70)
  38.  
  39. print("="*30+" CRF分词"+"="*30)
  40. print("-"*70)
  41.  
  42. print("="*30+" 极速词典分词"+"="*30)
  43. SpeedTokenizer = JClass('com.hankcs.hanlp.tokenizer.SpeedTokenizer')
  44. print(NLPTokenizer.segment('江西鄱阳湖干枯,中国最大淡水湖变成大草原'))
  45. print("-"*70)
  46.  
  47. print("="*30+" 自定义分词"+"="*30)
  48. CustomDictionary = JClass('com.hankcs.hanlp.dictionary.CustomDictionary')
  49. CustomDictionary.add('攻城狮')
  50. CustomDictionary.add('单身狗')
  51. HanLP = JClass('com.hankcs.hanlp.HanLP')
  52. print(HanLP.segment('攻城狮逆袭单身狗,迎娶白富美,走上人生巅峰'))
  53. print("-"*70)
  54.  
  55. print("="*20+"命名实体识别与词性标注"+"="*30)
  56. NLPTokenizer = JClass('com.hankcs.hanlp.tokenizer.NLPTokenizer')
  57. print(NLPTokenizer.segment('中国科学院计算技术研究所的宗成庆教授正在教授自然语言处理课程'))
  58. print("-"*70)
  59.  
  60. document = "水利部水资源司司长陈明忠9月29日在国务院新闻办举行的新闻发布会上透露," \
  61. "根据刚刚完成了水资源管理制度的考核,有部分省接近了红线的指标," \
  62. "有部分省超过红线的指标。对一些超过红线的地方,陈明忠表示,对一些取用水项目进行区域的限批," \
  63. "严格地进行水资源论证和取水许可的批准。"
  64. print("="*30+"关键词提取"+"="*30)
  65. print(HanLP.extractKeyword(document, 8))
  66. print("-"*70)
  67.  
  68. print("="*30+"自动摘要"+"="*30)
  69. print(HanLP.extractSummary(document, 3))
  70. print("-"*70)
  71.  
  72. # print("="*30+"地名识别"+"="*30)
  73. # HanLP = JClass('com.hankcs.hanlp.HanLP')
  74. # segment = HanLP.newSegment().enablePlaceRecognize(true)
  75. # testCase=["武胜县新学乡政府大楼门前锣鼓喧天",
  76. # "蓝翔给宁夏固原市彭阳县红河镇黑牛沟村捐赠了挖掘机"]
  77. # for sentence in testCase :
  78. # print(HanLP.segment(sentence))
  79. # print("-"*70)
  80.  
  81. # print("="*30+"依存句法分析"+"="*30)
  82. # print(HanLP.parseDependency("徐先生还具体帮助他确定了把画雄鹰、松鼠和麻雀作为主攻目标。"))
  83. # print("-"*70)
  84.  
  85. 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"
  86. print("="*30+"短语提取"+"="*30)
  87.  
  88. print(HanLP.extractPhrase(text, 10))
  89. print("-"*70)
  90.  
  91. shutdownJVM()

HanLP运行结果:

python调用HanLP的jar包

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

Python中调用自然语言处理工具HanLP手记的更多相关文章

  1. 在Python中调用Java扩展包HanLP测试记录

    最近在研究中文分词及自然语言相关的内容,关注到JAVA环境下的HanLP,HanLP是一个致力于向生产环境普及NLP技术的开源Java工具包,支持中文分词(N-最短路分词.CRF分词.索引分词.用户自 ...

  2. 中文自然语言处理工具HanLP源码包的下载使用记录

    中文自然语言处理工具HanLP源码包的下载使用记录 这篇文章主要分享的是hanlp自然语言处理源码的下载,数据集的下载,以及将让源代码中的demo能够跑通.Hanlp安装包的下载以及安装其实之前就已经 ...

  3. (转)python中调用R语言通过rpy2 进行交互安装配置详解

    python中调用R语言通过rpy2 进行交互安装配置详解(R_USER.R_HOME配置) 2018年11月08日 10:00:11 luqin_ 阅读数:753   python中调用R语言通过r ...

  4. 如何在python中调用C语言代码

    1.使用C扩展CPython还为开发者实现了一个有趣的特性,使用Python可以轻松调用C代码 开发者有三种方法可以在自己的Python代码中来调用C编写的函数-ctypes,SWIG,Python/ ...

  5. 使用ctypes在Python中调用C++动态库

    使用ctypes在Python中调用C++动态库 入门操作 使用ctypes库可以直接调用C语言编写的动态库,而如果是调用C++编写的动态库,需要使用extern关键字对动态库的函数进行声明: #in ...

  6. Python脚本传參和Python中调用mysqldump

    Python脚本传參和Python中调用mysqldump<pre name="code" class="python">#coding=utf-8 ...

  7. Django之在Python中调用Django环境

    Django之在Python中调用Django环境 新建一个py文件,在其中写下如下代码: import os if __name__ == '__main__': os.environ.setdef ...

  8. [Python-MATLAB] 在Python中调用MATLAB的API

    可以参考官方的说明文档: http://cn.mathworks.com/help/matlab/matlab_external/get-started-with-matlab-engine-for- ...

  9. 在python中调用js或者nodejs

    在python中调用js或者nodejs要使用PyExecJs第三方包. pip install pyexecjs 示例代码 >>> import execjs >>&g ...

随机推荐

  1. CSS3:HSL和HSLA

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  2. linux下如何使用gdb调试

    gdb是linux下非常好用的一个调试工具,虽然它是命令行模式的调试工具,但是它的功能强大到你无法想象,这里简单介绍下gdb下常用的命令. 首先编译生成可执行文件(这里的test.c是一个简单的求前n ...

  3. 如何重置mate的面板到初始化时的默认设置?

    在你的任何终端中敲入如下命令: gsettings reset-recursively org.mate.panel

  4. django 2中的app_name和namespace

    最近看<精通DJANGO>里遇到的疑惑. 简书URL如下: https://www.jianshu.com/p/404500a0408a 其中的官方解释: 应用命名空间 它表示正在部署的应 ...

  5. POJ 2377 Bad Cowtractors (Kruskal)

    题意:给出一个图,求出其中的最大生成树= =如果无法产生树,输出-1. 思路:将边权降序再Kruskal,再检查一下是否只有一棵树即可,即根节点只有一个 #include <cstdio> ...

  6. Codeforces 757D - Felicity's Big Secret Revealed

    757D - Felicity's Big Secret Revealed 题目大意:给你一串有n(n<=75)个0或1组成的串,让你划最多n+1条分割线,第一条分割线的前面和最后一条分割线的后 ...

  7. java里获取uuid

    //获取32位uuid工具类 ,此类事java自带的,不需要导包public static String get32UUID() { String uuid = UUID.randomUUID().t ...

  8. Einbahnstrasse HDU2923

    基础2923题 处理输入很麻烦 有可能一个城市有多辆破车要拖   应该严谨一点的 考虑所有情况 #include<bits/stdc++.h> using namespace std; ] ...

  9. 064 UDF

    一:UDF 1.自定义UDF 二:UDAF 2.UDAF 3.介绍AbstractGenericUDAFResolver 4.介绍GenericUDAFEvaluator 5.程序 package o ...

  10. header 和http状态码

    select qg.*,gg.finalgrade,gi.itemname,gi.courseid,gi.itemmodule,gi.itemtype from mymdl_quiz_grades a ...