聲明:轉(zhuǎn)載請注明出處,禁止二次轉(zhuǎn)載,謝謝:http://www.itdecent.cn/p/6e7dbe716fe7
另外,更多實時更新的個人學習筆記分享,請關(guān)注:
知乎:https://www.zhihu.com/people/yuquanle/columns
微信訂閱號:AI小白入門
CSDN地址:http://blog.csdn.net/m0_37306360

StudyForAI
Hanlp簡介
HanLP是一系列模型與算法組成的NLP工具包,由大快搜索主導并完全開源,目標是普及自然語言處理在生產(chǎn)環(huán)境中的應(yīng)用。
HanLP主要功能包括分詞、詞性標注、關(guān)鍵詞提取、自動摘要、依存句法分析、命名實體識別、短語提取、拼音轉(zhuǎn)換、簡繁轉(zhuǎn)換等等。
Github地址:https://github.com/hankcs/HanLP
官網(wǎng)地址:http://hanlp.linrunsoft.com/
HanLP工具Demo
安裝:pip install pyhanlp
from pyhanlp import *
Using local c:\users\yuquanle\anaconda3\envs\nlpcoure\lib\site-packages\pyhanlp\static\data-for-1.7.0.zip, ignore http://hanlp.linrunsoft.com/release/data-for-1.7.0.zip
Extracting data.zip...
1.分詞和詞性標注
sentence = "我愛自然語言處理技術(shù)!"
s_hanlp = HanLP.segment(sentence)
for term in s_hanlp:
print(term.word, term.nature)
我 rr
愛 v
自然語言處理 nz
技術(shù) n
! w
2.依存句法分析
s_dep = HanLP.parseDependency(sentence)
print(s_dep)
1 我 我 r r _ 2 主謂關(guān)系 _ _
2 愛 愛 v v _ 0 核心關(guān)系 _ _
3 自然語言處理 自然語言處理 v v _ 4 定中關(guān)系 _ _
4 技術(shù) 技術(shù) n n _ 2 動賓關(guān)系 _ _
5 ! ! wp w _ 2 標點符號 _ _
3.關(guān)鍵詞提取
document = u'''
自然語言處理是計算機科學領(lǐng)域與人工智能領(lǐng)域中的一個重要方向。
它研究能實現(xiàn)人與計算機之間用自然語言進行有效通信的各種理論和方法。
自然語言處理是一門融語言學、計算機科學、數(shù)學于一體的科學。
因此,這一領(lǐng)域的研究將涉及自然語言,即人們?nèi)粘J褂玫恼Z言,
所以它與語言學的研究有著密切的聯(lián)系,但又有重要的區(qū)別。
自然語言處理并不是一般地研究自然語言,
而在于研制能有效地實現(xiàn)自然語言通信的計算機系統(tǒng),
特別是其中的軟件系統(tǒng)。因而它是計算機科學的一部分。
'''
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)
自然語言處理并不是一般地研究自然語言
自然語言處理是計算機科學領(lǐng)域與人工智能領(lǐng)域中的一個重要方向
它研究能實現(xiàn)人與計算機之間用自然語言進行有效通信的各種理論和方法
5.感知機詞法分析器
PerceptronLexicalAnalyzer = JClass('com.hankcs.hanlp.model.perceptron.PerceptronLexicalAnalyzer')
analyzer = PerceptronLexicalAnalyzer()
print(analyzer.analyze("上海華安工業(yè)(集團)公司董事長譚旭光和秘書胡花蕊來到美國紐約現(xiàn)代藝術(shù)博物館參觀"))
[上海/ns 華安/nz 工業(yè)/n (/w 集團/n )/w 公司/n]/nt 董事長/n 譚旭光/nr 和/c 秘書/n 胡花蕊/nr 來到/v [美國紐約/ns 現(xiàn)代/ntc 藝術(shù)/n 博物館/n]/ns 參觀/v
6.中國人名識別
NER = HanLP.newSegment().enableNameRecognize(True)
p_name = NER.seg('王國強、高峰、汪洋、張朝陽光著頭、韓寒、小四')
print(p_name)
[王國強/nr, 、/w, 高峰/n, 、/w, 汪洋/n, 、/w, 張朝陽/nr, 光著頭/l, 、/w, 韓寒/nr, 、/w, 小/a, 四/m]
7.音譯人名識別
sentence = '微軟的比爾蓋茨、Facebook的扎克伯格跟桑德博格、亞馬遜的貝索斯、蘋果的庫克,這些硅谷的科技人'
person_ner = HanLP.newSegment().enableTranslatedNameRecognize(True)
p_name = person_ner.seg(sentence)
print(p_name)
[微軟/ntc, 的/ude1, 比爾蓋茨/nrf, 、/w, Facebook/nx, 的/ude1, 扎克伯格/nrf, 跟/p, 桑德博格/nrf, 、/w, 亞馬遜/nrf, 的/ude1, 貝索斯/nrf, 、/w, 蘋果/nf, 的/ude1, 庫克/nrf, ,/w, 這些/rz, 硅谷/ns, 的/ude1, 科技/n, 人/n]
8.短語提取
phraseList = HanLP.extractPhrase(document, 3)
print(phraseList)
[計算機科學, 中的重要, 之間自然語言]
9.拼音轉(zhuǎn)換
s = '重載不是重任'
pinyinList = HanLP.convertToPinyinList(s)
for pinyin in pinyinList:
print(pinyin.getPinyinWithoutTone(),pinyin.getTone(), pinyin, pinyin.getPinyinWithToneMark())
chong 2 chong2 chóng
zai 3 zai3 zǎi
bu 2 bu2 bú
shi 4 shi4 shì
zhong 4 zhong4 zhòng
ren 4 ren4 rèn
聲母、韻母
for pinyin in pinyinList:
print(pinyin.getShengmu(), pinyin.getYunmu())
ch ong
z ai
b u
sh i
zh ong
r en
10.繁簡轉(zhuǎn)換
Jianti = HanLP.convertToSimplifiedChinese("我愛自然語言處理技術(shù)!")
Fanti = HanLP.convertToTraditionalChinese("我愛自然語言處理技術(shù)!")
print(Jianti)
print(Fanti)
我愛自然語言處理技術(shù)!
我愛自然語言處理技術(shù)!