pyhanlp vs. hanlp

想要找SDP的hanlp用法,死活找不到,花了很多时间。回归github之后发现实际上hanlp有两个版本,一个1.x,一个2.x。我目前使用成功的都是1.x的命令,是基于JAVA的。而2.x版本是升级版,有一些功能并没有更新到1.x里,所以无法运行,其中就包括SEP。

为什么会产生这种混淆呢?因为网上有很多教程,要么是1.x出来的时候写的,要么是无脑搬运的旧版本的,当时的安装应该也确实是hanlp(也就是说1.x以前的名字和2.x是相同的),导致网络教程和github版本有一些差错,对应不上。

那么说一下两者的区别吧,两个都是我通过anaconda pip install安装的,1.x版本名字叫pyhanlp,所有指令都是本地运行,调用命令参考GitHub - hankcs/HanLP at 1.x,python的调用我也会整理在下面。

2.x的名字就叫hanlp,调用命令参考GitHub - hankcs/HanLP: 中文分词 词性标注 命名实体识别 依存句法分析 成分句法分析 语义依存分析 语义角色标注 指代消解 风格转换 语义相似度 新词发现 关键词短语提取 自动摘要 文本分类聚类 拼音简繁转换 自然语言处理中文分词 词性标注 命名实体识别 依存句法分析 成分句法分析 语义依存分析 语义角色标注 指代消解 风格转换 语义相似度 新词发现 关键词短语提取 自动摘要 文本分类聚类 拼音简繁转换 自然语言处理 - hankcs/HanLPicon-default.png?t=N7T8https://github.com/hankcs/HanLP/tree/doc-zh作者的教程写得很全,有本地调用和云端调用。

如果发现你安装的pyhanlp里有无法实现的功能,那就要看看是不是你安装的是1.x,而不是2.x了(两者是可以并存于conda中的)

pyhanlp(1.x的用法如下)

from pyhanlp import *

1. 分词+词性标注

sentence = ""
s_hanlp = HanLp.segment(sentence)
for term in s_hanlp:
    print(term.word, term.nature)

2. 依存句法分析

s_dep = HanLp.parseDependency(sentence)
print(s_dep)`

3. 关键词提取

doc_keyword = HanLp.extractKeyword(document, 3)
for word in doc_keyword:
    print(word)

4. 摘要提取

doc_keysentence =HanLP.extractSummary(document,3)
for key_sentence in doc_keysentence:
    print(key_sentence)

5. 中文命名实体标注(NER)

# 导入语料
sentences = ['sentence1', 'sentence2', ..., 'sentencen']

# 实体化一个词性标注对象
# 人名识别 实例化
ner_name = HanLP.newSegment().enableNameRecognize(True)
# 地名识别
ner_place = HanLP.newSegment().enablePlaceRecognize(True)
# 机构名识别
ner_organization = HanLP.newSegment().enableOrganizationRecognize(True)
name_list = get_ner_terms(sentences, ner_name, 'nr')
place_list = get_ner_terms(sentences, ner_place, 'ns')
organization_list = get_ner_terms(sentences, ner_organization, 'nt')

print(ner_name)
print(ner_place)
print(ner_organization)

6. 音译人名识别

sentence =''
person_ner = HanLP.newSegment().enableTranslatedNameRecognize(True)
p_name = person_ner.seg(sentence)
print(p_name)

7. 短语提取

phraseList = HanLp.extractPhrase(document,3)
print(phraseList)

8. 拼音转换

s='一句话'
pinyinList = HanLP.convertToPinyinList(s)
for pinyin in pinyinList:
    print(pinyin.getPinyinWithoutTone(),pinyin.getTone(),pinyin,pinyin.getPinyinWithToneMark())

# 声母、韵母
for pinyin in pinyinList:
    print(pinyin.getShengmu(),pinyin.getYunmu())

9. 繁体简体互相转换

Jianti = HanLP.convertToSimplifiedchinese("一句话")
Fanti = HanLP.convertToTraditionalChinese("一句话")
print(Jianti)
print(Fanti)

  • 20
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值