pyhanlp 两种依存句法分类器
生活随笔
收集整理的這篇文章主要介紹了
pyhanlp 两种依存句法分类器
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
依存句法分析器
在HanLP中一共有兩種句法分析器
- 依存句法分析
- 基于神經(jīng)網(wǎng)絡(luò)的高性能依存句法分析器
- MaxEnt依存句法分析
基于神經(jīng)網(wǎng)絡(luò)的高性能依存句法分析器
HanLP中的基于神經(jīng)網(wǎng)絡(luò)的高性能依存句法分析器參考的是14年Chen&Manning的論文(A Fast and Accurate Dependency Parser using Neural Networks),這里還有一個發(fā)在了Github的實現(xiàn)程序,其實現(xiàn)語言為Python。除此之外,你還可以參考ljj123zz 的CSDN 一篇博客:https://blog.csdn.net/ljj123zz/article/details/78834838
HanLP作者的原文介紹已經(jīng)寫得比較清楚,唯一要注意的是原文章中介紹的依存句法分析器為早期版本,輸出的依存關(guān)系為英文,現(xiàn)在應該變?yōu)橹形?#xff0c;而且從測試結(jié)果看,訓練語料應該已經(jīng)更新了,但是更新為了那個語料現(xiàn)在還不會是很清楚。
基于最大熵的依存句法分析器
經(jīng)過測試這個句法分析器為真的很坑,絕對不建議使用,測試代碼見最后,作者原文介紹請點擊:http://www.hankcs.com/nlp/parsing/to-achieve-the-maximum-entropy-of-the-dependency-parser.html
下面是使用的例子
基于神經(jīng)網(wǎng)絡(luò)的高性能依存句法分析器
from pyhanlp import * # 依存句法分析 sentence = HanLP.parseDependency("徐先生還具體幫助他確定了把畫雄鷹、松鼠和麻雀作為主攻目標。")print(sentence)for word in sentence.iterator(): # 通過dir()可以查看sentence的方法print("%s --(%s)--> %s" % (word.LEMMA, word.DEPREL, word.HEAD.LEMMA)) print()# 也可以直接拿到數(shù)組,任意順序或逆序遍歷 word_array = sentence.getWordArray() for word in word_array:print("%s --(%s)--> %s" % (word.LEMMA, word.DEPREL, word.HEAD.LEMMA)) print()# 還可以直接遍歷子樹,從某棵子樹的某個節(jié)點一路遍歷到虛根 CoNLLWord = JClass("com.hankcs.hanlp.corpus.dependency.CoNll.CoNLLWord") head = word_array[12] while head.HEAD:head = head.HEADif (head == CoNLLWord.ROOT):print(head.LEMMA)else:print("%s --(%s)--> " % (head.LEMMA, head.DEPREL)) 1 徐先生 徐先生 nh nr _ 4 主謂關(guān)系 _ _ 2 還 還 d d _ 4 狀中結(jié)構(gòu) _ _ 3 具體 具體 a ad _ 4 狀中結(jié)構(gòu) _ _ 4 幫助 幫助 v v _ 0 核心關(guān)系 _ _ 5 他 他 r r _ 4 兼語 _ _ 6 確定 確定 v v _ 4 動賓關(guān)系 _ _ 7 了 了 u u _ 6 右附加關(guān)系 _ _ 8 把 把 p p _ 15 狀中結(jié)構(gòu) _ _ 9 畫 畫 v v _ 8 介賓關(guān)系 _ _ 10 雄鷹 雄鷹 n n _ 9 動賓關(guān)系 _ _ 11 、 、 wp w _ 12 標點符號 _ _ 12 松鼠 松鼠 n n _ 10 并列關(guān)系 _ _ 13 和 和 c c _ 14 左附加關(guān)系 _ _ 14 麻雀 麻雀 n n _ 10 并列關(guān)系 _ _ 15 作為 作為 v v _ 6 動賓關(guān)系 _ _ 16 主攻 主攻 v vn _ 17 定中關(guān)系 _ _ 17 目標 目標 n n _ 15 動賓關(guān)系 _ _ 18 。 。 wp w _ 4 標點符號 _ _徐先生 --(主謂關(guān)系)--> 幫助 還 --(狀中結(jié)構(gòu))--> 幫助 具體 --(狀中結(jié)構(gòu))--> 幫助 幫助 --(核心關(guān)系)--> ##核心## 他 --(兼語)--> 幫助 確定 --(動賓關(guān)系)--> 幫助 了 --(右附加關(guān)系)--> 確定 把 --(狀中結(jié)構(gòu))--> 作為 畫 --(介賓關(guān)系)--> 把 雄鷹 --(動賓關(guān)系)--> 畫 、 --(標點符號)--> 松鼠 松鼠 --(并列關(guān)系)--> 雄鷹 和 --(左附加關(guān)系)--> 麻雀 麻雀 --(并列關(guān)系)--> 雄鷹 作為 --(動賓關(guān)系)--> 確定 主攻 --(定中關(guān)系)--> 目標 目標 --(動賓關(guān)系)--> 作為 。 --(標點符號)--> 幫助徐先生 --(主謂關(guān)系)--> 幫助 還 --(狀中結(jié)構(gòu))--> 幫助 具體 --(狀中結(jié)構(gòu))--> 幫助 幫助 --(核心關(guān)系)--> ##核心## 他 --(兼語)--> 幫助 確定 --(動賓關(guān)系)--> 幫助 了 --(右附加關(guān)系)--> 確定 把 --(狀中結(jié)構(gòu))--> 作為 畫 --(介賓關(guān)系)--> 把 雄鷹 --(動賓關(guān)系)--> 畫 、 --(標點符號)--> 松鼠 松鼠 --(并列關(guān)系)--> 雄鷹 和 --(左附加關(guān)系)--> 麻雀 麻雀 --(并列關(guān)系)--> 雄鷹 作為 --(動賓關(guān)系)--> 確定 主攻 --(定中關(guān)系)--> 目標 目標 --(動賓關(guān)系)--> 作為 。 --(標點符號)--> 幫助麻雀 --(并列關(guān)系)--> 雄鷹 --(動賓關(guān)系)--> 畫 --(介賓關(guān)系)--> 把 --(狀中結(jié)構(gòu))--> 作為 --(動賓關(guān)系)--> 確定 --(動賓關(guān)系)--> 幫助 --(核心關(guān)系)--> ##核心##最大熵依存句法分析器
MaxEntDependencyParser = JClass("com.hankcs.hanlp.dependency.MaxEntDependencyParser")print("hankcs每天都在寫程序") print(MaxEntDependencyParser.compute("hankcs每天都在寫程序")) print("吳彥祖每天都在寫程序") print(MaxEntDependencyParser.compute("吳彥祖每天都在寫程序")) hankcs每天都在寫程序 1 hankcs hankcs x x _ 6 限定 _ _ 2 每天 每天 r r _ 5 施事 _ _ 3 都 都 d d _ 5 程度 _ _ 4 在 在 d d _ 5 程度 _ _ 5 寫 寫 v v _ 0 核心成分 _ _ 6 程序 程序 n n _ 5 內(nèi)容 _ _吳彥祖每天都在寫程序 1 吳彥祖 吳彥祖 n nr _ 5 施事 _ _ 2 每天 每天 r r _ 5 施事 _ _ 3 都 都 d d _ 5 程度 _ _ 4 在 在 d d _ 5 程度 _ _ 5 寫 寫 v v _ 0 核心成分 _ _ 6 程序 程序 n n _ 5 內(nèi)容 _ _總結(jié)
以上是生活随笔為你收集整理的pyhanlp 两种依存句法分类器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pyhanlp 词性标注(正篇)
- 下一篇: pyhanlp 文本分类与情感分析