java中文分词工具_pyhanlp——分词与词性标注

aec3fbd6ba1e07aafff4462731c19002.png

这篇文章的内容是作为所有文本分类技术的基础而写的,也可以把它作为其他自然语言处理技术的基础。pyhanlp的内容很多,这篇文章先介绍分词和词性标注这一部分。顺便写一个简介。

简介

pyhanlp是HanLP的Python接口。因此后续所有关于pyhanlp的文章中也会写成HanLP。HanLP是完全用Java自实现的自然语言处理工具包。特点是完全用Java实现不引入第三方工具包。完全开源。中文的开源工具能做到这么完整的大概只有HanLP。包括了词法分析、句法分析、分类、聚类、关键词抽取等常见NLP应用任务。并且github上问题回答快,作者很是认真的解决大家提出的问题。虽然用Java实现,HanLP也提供了Python接口。

  • github主页地址为:https://github.com/hankcs/pyhanlphttps://github.com/hankcs/HanLP
  • 问题汇总页地址为https://github.com/hankcs/HanLP/issues在该网页上可以找到过往大家遇到过的问题。
  • Python接口使用的示例代码页地址为https://github.com/hankcs/pyhanlp/tree/master/tests/demos

简单的安装过程,请先确保安装了anaconda3

# 安装命令
$ pip install pyhanlp
# 更新到最新代码包和数据包
$ hanlp update

分词与词性标注

  • 词标注集地址为http://www.hankcs.com/nlp/part-of-speech-tagging.html#h2-8
  • 示例代码地址为https://github.com/hankcs/pyhanlp/blob/master/tests/demos/demo_at_first_sight.py

示例

In [1]: from pyhanlp import *
In [5]: print(HanLP.segment("你好,欢迎使用HanLP汉语处理包!接下来请从其他Demo中
   ...: 体验HanLP丰富的功能~"))
[你好/vl, ,/w, 欢迎/v, 使用/v, HanLP/nx, 汉语/gi, 处理/vn, 包/v, !/w, 接下来/vl, 请/v, 从/p, 其他/rzv, Demo/nx, 中/f, 体验/v, HanLP/nx, 丰富/a, 的/ude1, 功能/n, ~/nx]
In [11]: for word in word_li:
    ...:     print(word.word, word.nature)
    ...:     
你好 vl
, w
欢迎 v
使用 v
HanLP nx
汉语 gi
处理 vn
包 v
! w
接下来 vl
请 v
从 p
其他 rzv
Demo nx
中 f
体验 v
HanLP nx
丰富 a
的 ude1
功能 n
~ nx

关于HanLP.segment的说明。内存要求:120MB以上,标准数据包(35万核心词库+默认用户词典)。HanLP对词典的数据结构进行了长期的优化,哪怕HanLP的词典上百兆也无需担心。HanLP.segment是一个工厂函数,它是对StandardTokenizer的封装。当前StandardTokenizer使用的是viterbi最短路分词。viterbi分词器是目前效率和效果的最佳平衡。该函数的详细代码在https://github.com/hankcs/HanLP/blob/master/src/main/java/com/hankcs/hanlp/seg/Viterbi/ViterbiSegment.java分词大致功能有:首先生成词网和词图即可以得到粗分词网,经维特比算法找最短路径和人工干预分词后即可得到粗分结果。之后根据配置可以进行数字识别,人名识别,译名识别,地名识别,机构名识别,如果是索引分词则进行全切分分词,词性标注。

HanLP的com.hankcs.hanlp.tokenizer包中封装了很多开箱即用的分词器,但是不是所有的分词器都能在Python接口中直接使用。这些分词器有BasicTokenizer这是NGram分词器,不识别命名实体,不能使用用户词典。SpeedTokenizer这是最长匹配分词器。NotionalTokenizer这是实词分词器。StandardTokenizer当前效率和效果最佳的分词器。NLPTokenizer更精确的中文分词器。IndexTokenizer适用于信息检索的分词器。

明天将要介绍的内容是文本的向量表示,这里边有一部分内容是跟特征抽取重合的。好了,今天的内容就到这里,写实际示例的文章就是轻松愉快。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值