日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

[Python知識(shí)圖譜] 二.哈工大pyltp詞性標(biāo)注、命名實(shí)體識(shí)別、依存

系統(tǒng) 2914 0

本系列文章主要結(jié)合Python語(yǔ)言實(shí)現(xiàn)知識(shí)圖譜構(gòu)建相關(guān)工程,具有一定創(chuàng)新性和實(shí)用性,非常希望各位博友交流討論,相互促進(jìn)成長(zhǎng)。第一篇文章主要介紹哈工大pyltp工具,包括安裝過(guò)程、中文分詞等;第二篇文章主要講解詞性標(biāo)注、實(shí)體識(shí)別、依存句法分析和語(yǔ)義角色標(biāo)注。

知識(shí)圖譜系列文章:
[知識(shí)圖譜實(shí)戰(zhàn)篇] 一.數(shù)據(jù)抓取之Python3抓取JSON格式的電影實(shí)體
[知識(shí)圖譜實(shí)戰(zhàn)篇] 二.Json+Seaborn可視化展示電影實(shí)體
[知識(shí)圖譜實(shí)戰(zhàn)篇] 三.Python提取JSON數(shù)據(jù)、HTML+D3構(gòu)建基本可視化布局
[知識(shí)圖譜實(shí)戰(zhàn)篇] 四.HTML+D3+CSS繪制關(guān)系圖譜
[知識(shí)圖譜實(shí)戰(zhàn)篇] 五.HTML+D3添加鼠標(biāo)響應(yīng)事件顯示相關(guān)節(jié)點(diǎn)及邊
[知識(shí)圖譜實(shí)戰(zhàn)篇] 六.HTML+D3實(shí)現(xiàn)點(diǎn)擊節(jié)點(diǎn)顯示相關(guān)屬性及屬性值
[知識(shí)圖譜實(shí)戰(zhàn)篇] 七.HTML+D3實(shí)現(xiàn)關(guān)系圖譜搜索功能
[知識(shí)圖譜實(shí)戰(zhàn)篇] 八.HTML+D3繪制時(shí)間軸線及顯示實(shí)體

環(huán)境下載地址:https://download.csdn.net/download/eastmount/11226539

原文地址:
[Python知識(shí)圖譜] 一.哈工大pyltp安裝及中文分句、中文分詞、導(dǎo)入詞典基本用法


一.詞性標(biāo)注

詞性標(biāo)注(Part-Of-Speech tagging, POS tagging)也被稱為語(yǔ)法標(biāo)注(grammatical tagging)或詞類消疑(word-category disambiguation),是語(yǔ)料庫(kù)語(yǔ)言學(xué)(corpus linguistics)中將語(yǔ)料庫(kù)內(nèi)單詞的詞性按其含義和上下文內(nèi)容進(jìn)行標(biāo)記的文本數(shù)據(jù)處理技術(shù)。

pyltp詞性標(biāo)注與分詞模塊相同,將詞性標(biāo)注任務(wù)建模為基于詞的序列標(biāo)注問(wèn)題。對(duì)于輸入句子的詞序列,模型給句子中的每個(gè)詞標(biāo)注一個(gè)標(biāo)識(shí)詞邊界的標(biāo)記。在LTP中,采用的北大標(biāo)注集。

完整代碼

            
              
                # -*- coding: utf-8 -*-
              
              
                from
              
               pyltp  
              
                import
              
               SentenceSplitter

              
                from
              
               pyltp 
              
                import
              
               Segmentor

              
                from
              
               pyltp 
              
                import
              
               Postagger

              
                from
              
               pyltp 
              
                import
              
               NamedEntityRecognizer

ldir
              
                =
              
              
                'AgriKG\\ltp\\cws.model'
              
              
                #分詞模型
              
              
dicdir
              
                =
              
              
                'word'
              
              
                #外部字典
              
              
text 
              
                =
              
              
                "貴州財(cái)經(jīng)大學(xué)要舉辦大數(shù)據(jù)比賽嗎?"
              
              
                #中文分詞
              
              
segmentor 
              
                =
              
               Segmentor
              
                (
              
              
                )
              
              
                #初始化實(shí)例
              
              
segmentor
              
                .
              
              load_with_lexicon
              
                (
              
              ldir
              
                ,
              
              
                'word'
              
              
                )
              
              
                #加載模型
              
              
words 
              
                =
              
               segmentor
              
                .
              
              segment
              
                (
              
              text
              
                )
              
              
                #分詞
              
              
                print
              
              
                (
              
              text
              
                )
              
              
                print
              
              
                (
              
              
                ' '
              
              
                .
              
              join
              
                (
              
              words
              
                )
              
              
                )
              
              
                #分詞拼接
              
              
words 
              
                =
              
              
                list
              
              
                (
              
              words
              
                )
              
              
                #轉(zhuǎn)換list
              
              
                print
              
              
                (
              
              u
              
                "分詞:"
              
              
                ,
              
               words
              
                )
              
              
segmentor
              
                .
              
              release
              
                (
              
              
                )
              
              
                #釋放模型
              
              
                #詞性標(biāo)注
              
              
pdir
              
                =
              
              
                'AgriKG\\ltp\\pos.model'
              
              
pos 
              
                =
              
               Postagger
              
                (
              
              
                )
              
              
                #初始化實(shí)例
              
              
pos
              
                .
              
              load
              
                (
              
              pdir
              
                )
              
              
                #加載模型
              
              

postags 
              
                =
              
               pos
              
                .
              
              postag
              
                (
              
              words
              
                )
              
              
                #詞性標(biāo)注
              
              
postags 
              
                =
              
              
                list
              
              
                (
              
              postags
              
                )
              
              
                print
              
              
                (
              
              u
              
                "詞性:"
              
              
                ,
              
               postags
              
                )
              
              
pos
              
                .
              
              release
              
                (
              
              
                )
              
              
                #釋放模型
              
              

data 
              
                =
              
              
                {
              
              
                "words"
              
              
                :
              
               words
              
                ,
              
              
                "tags"
              
              
                :
              
               postags
              
                }
              
              
                print
              
              
                (
              
              data
              
                )
              
            
          

輸出結(jié)果如下圖所示,“貴州”詞性為“ns”(地理名詞 ),“財(cái)經(jīng)”詞性為“n”(一般名詞),“舉辦”詞性為“v”(動(dòng)詞),“嗎”詞性為“u”(助詞),“?”詞性為“wp”(標(biāo)點(diǎn))。

            
              貴州財(cái)經(jīng)大學(xué)要舉辦大數(shù)據(jù)比賽嗎?
貴州 財(cái)經(jīng) 大學(xué) 要 舉辦 大數(shù)據(jù) 比賽 嗎 ?
分詞
              
                :
              
              
                [
              
              
                '貴州'
              
              
                ,
              
              
                '財(cái)經(jīng)'
              
              
                ,
              
              
                '大學(xué)'
              
              
                ,
              
              
                '要'
              
              
                ,
              
              
                '舉辦'
              
              
                ,
              
              
                '大數(shù)據(jù)'
              
              
                ,
              
              
                '比賽'
              
              
                ,
              
              
                '嗎'
              
              
                ,
              
              
                '?'
              
              
                ]
              
              
詞性
              
                :
              
              
                [
              
              
                'ns'
              
              
                ,
              
              
                'n'
              
              
                ,
              
              
                'n'
              
              
                ,
              
              
                'v'
              
              
                ,
              
              
                'v'
              
              
                ,
              
              
                'n'
              
              
                ,
              
              
                'v'
              
              
                ,
              
              
                'u'
              
              
                ,
              
              
                'wp'
              
              
                ]
              
              
                {
              
              
                'words'
              
              
                :
              
              
                [
              
              
                '貴州'
              
              
                ,
              
              
                '財(cái)經(jīng)'
              
              
                ,
              
              
                '大學(xué)'
              
              
                ,
              
              
                '要'
              
              
                ,
              
              
                '舉辦'
              
              
                ,
              
              
                '大數(shù)據(jù)'
              
              
                ,
              
              
                '比賽'
              
              
                ,
              
              
                '嗎'
              
              
                ,
              
              
                '?'
              
              
                ]
              
              
                ,
              
              
                'tags'
              
              
                :
              
              
                [
              
              
                'ns'
              
              
                ,
              
              
                'n'
              
              
                ,
              
              
                'n'
              
              
                ,
              
              
                'v'
              
              
                ,
              
              
                'v'
              
              
                ,
              
              
                'n'
              
              
                ,
              
              
                'v'
              
              
                ,
              
              
                'u'
              
              
                ,
              
              
                'wp'
              
              
                ]
              
              
                }
              
            
          

具體詞性為:

            
              Tag	Description	                               Example
a   adjective:形容詞                           美麗  
b   other noun
              
                -
              
              modifier:其他的修飾名詞           大型
              
                ,
              
               西式  
c   conjunction:連詞                           和
              
                ,
              
               雖然   
d   adverb:副詞                                很   
e   exclamation:感嘆詞                          哎   
g   morpheme    茨
              
                ,
              
               甥    
h   prefix:前綴                                阿
              
                ,
              
               偽    
i   idiom:成語(yǔ)                                 百花齊放    
j   abbreviation:縮寫(xiě)                          公檢法 
k   suffix:后綴                                界
              
                ,
              
               率    
m   number:數(shù)字                                一
              
                ,
              
               第一   
n   general noun:一般名詞                       蘋(píng)果  
nd  direction noun:方向名詞                     右側(cè)      
nh  person name:人名                           杜甫
              
                ,
              
               湯姆  
ni  organization name:公司名                    保險(xiǎn)公司,中國(guó)銀行
nl  location noun:地點(diǎn)名詞                      城郊
ns  geographical name:地理名詞                  北京
nt  temporal noun:時(shí)間名詞                      近日
              
                ,
              
               明代
nz  other proper noun:其他名詞                  諾貝爾獎(jiǎng)
o   onomatopoeia:擬聲詞                         嘩啦
p   preposition:介詞                           在
              
                ,
              
               把,與
q   quantity:量詞                              個(gè)
r   pronoun:代詞                               我們
u   auxiliary:助詞                             的
              
                ,
              
               地
v   verb:動(dòng)詞                                  跑
              
                ,
              
               學(xué)習(xí)
wp  punctuation:標(biāo)點(diǎn)                           ,。!
ws  foreign words:國(guó)外詞                       CPU
x   non
              
                -
              
              lexeme:不構(gòu)成詞                        萄
              
                ,
              
               翱
z	descriptive words 描寫(xiě),敘述的詞             瑟瑟,匆匆

            
          

二.命名實(shí)體識(shí)別

命名實(shí)體識(shí)別(Named Entity Recognition,簡(jiǎn)稱NER),又稱作“專名識(shí)別”,是指識(shí)別文本中具有特定意義的實(shí)體,主要包括人名、地名、機(jī)構(gòu)名、專有名詞等。命名實(shí)體識(shí)別是信息提取、問(wèn)答系統(tǒng)、句法分析、機(jī)器翻譯、面向Semantic Web的元數(shù)據(jù)標(biāo)注等應(yīng)用領(lǐng)域的重要基礎(chǔ)工具,在自然語(yǔ)言處理技術(shù)走向?qū)嵱没倪^(guò)程中占有重要地位。

在哈工大Pyltp中,NE識(shí)別模塊的標(biāo)注結(jié)果采用O-S-B-I-E標(biāo)注形式,其含義如下(參考):

[Python知識(shí)圖譜] 二.哈工大pyltp詞性標(biāo)注、命名實(shí)體識(shí)別、依存句法分析和語(yǔ)義角色標(biāo)注_第1張圖片

LTP中的NE 模塊識(shí)別三種NE,分別為人名(Nh)、機(jī)構(gòu)名(Ni)、地名(Ns)。

完整代碼

            
              
                # -*- coding: utf-8 -*-
              
              
                from
              
               pyltp  
              
                import
              
               SentenceSplitter

              
                from
              
               pyltp 
              
                import
              
               Segmentor

              
                from
              
               pyltp 
              
                import
              
               Postagger

              
                from
              
               pyltp 
              
                import
              
               NamedEntityRecognizer

ldir
              
                =
              
              
                'AgriKG\\ltp\\cws.model'
              
              
                #分詞模型
              
              
dicdir
              
                =
              
              
                'word'
              
              
                #外部字典
              
              
text 
              
                =
              
              
                "貴州財(cái)經(jīng)大學(xué)要舉辦大數(shù)據(jù)比賽嗎?"
              
              
                #中文分詞
              
              
segmentor 
              
                =
              
               Segmentor
              
                (
              
              
                )
              
              
                #初始化實(shí)例
              
              
segmentor
              
                .
              
              load_with_lexicon
              
                (
              
              ldir
              
                ,
              
              
                'word'
              
              
                )
              
              
                #加載模型
              
              
words 
              
                =
              
               segmentor
              
                .
              
              segment
              
                (
              
              text
              
                )
              
              
                #分詞
              
              
                print
              
              
                (
              
              text
              
                )
              
              
                print
              
              
                (
              
              
                ' '
              
              
                .
              
              join
              
                (
              
              words
              
                )
              
              
                )
              
              
                #分詞拼接
              
              
words 
              
                =
              
              
                list
              
              
                (
              
              words
              
                )
              
              
                #轉(zhuǎn)換list
              
              
                print
              
              
                (
              
              u
              
                "分詞:"
              
              
                ,
              
               words
              
                )
              
              
segmentor
              
                .
              
              release
              
                (
              
              
                )
              
              
                #釋放模型
              
              
                #詞性標(biāo)注
              
              
pdir
              
                =
              
              
                'AgriKG\\ltp\\pos.model'
              
              
pos 
              
                =
              
               Postagger
              
                (
              
              
                )
              
              
                #初始化實(shí)例
              
              
pos
              
                .
              
              load
              
                (
              
              pdir
              
                )
              
              
                #加載模型
              
              

postags 
              
                =
              
               pos
              
                .
              
              postag
              
                (
              
              words
              
                )
              
              
                #詞性標(biāo)注
              
              
postags 
              
                =
              
              
                list
              
              
                (
              
              postags
              
                )
              
              
                print
              
              
                (
              
              u
              
                "詞性:"
              
              
                ,
              
               postags
              
                )
              
              
pos
              
                .
              
              release
              
                (
              
              
                )
              
              
                #釋放模型
              
              

data 
              
                =
              
              
                {
              
              
                "words"
              
              
                :
              
               words
              
                ,
              
              
                "tags"
              
              
                :
              
               postags
              
                }
              
              
                print
              
              
                (
              
              data
              
                )
              
              
                print
              
              
                (
              
              
                " "
              
              
                )
              
              
                #命名實(shí)體識(shí)別
              
              
nermodel
              
                =
              
              
                'AgriKG\\ltp\\ner.model'
              
              
reg 
              
                =
              
               NamedEntityRecognizer
              
                (
              
              
                )
              
              
                #初始化命名實(shí)體實(shí)例
              
              
reg
              
                .
              
              load
              
                (
              
              nermodel
              
                )
              
              
                #加載模型
              
              
netags 
              
                =
              
               reg
              
                .
              
              recognize
              
                (
              
              words
              
                ,
              
               postags
              
                )
              
              
                #對(duì)分詞、詞性標(biāo)注得到的數(shù)據(jù)進(jìn)行實(shí)體標(biāo)識(shí)
              
              
netags 
              
                =
              
              
                list
              
              
                (
              
              netags
              
                )
              
              
                print
              
              
                (
              
              u
              
                "命名實(shí)體識(shí)別:"
              
              
                ,
              
               netags
              
                )
              
              
                #實(shí)體識(shí)別結(jié)果
              
              
data
              
                =
              
              
                {
              
              
                "reg"
              
              
                :
              
               netags
              
                ,
              
              
                "words"
              
              
                :
              
              words
              
                ,
              
              
                "tags"
              
              
                :
              
              postags
              
                }
              
              
                print
              
              
                (
              
              data
              
                )
              
              
reg
              
                .
              
              release
              
                (
              
              
                )
              
              
                #釋放模型
              
            
          

輸出結(jié)果如下圖所示,識(shí)別出的三個(gè)命名實(shí)體分別是:“貴州”(B-Ni)表示一個(gè)NE開(kāi)始-機(jī)構(gòu)名,“財(cái)經(jīng)”(I-Ni)表示一個(gè)NE中間-機(jī)構(gòu)名,“大學(xué)”(E-Ni)表示一個(gè)NE結(jié)束-機(jī)構(gòu)名。
PS:雖然導(dǎo)入指定詞典,但“貴州財(cái)經(jīng)大學(xué)”分詞仍然被分割,后續(xù)研究中。

[Python知識(shí)圖譜] 二.哈工大pyltp詞性標(biāo)注、命名實(shí)體識(shí)別、依存句法分析和語(yǔ)義角色標(biāo)注_第2張圖片

三.依存句法分析

依存句法是由法國(guó)語(yǔ)言學(xué)家L.Tesniere最先提出。它將句子分析成一棵依存句法樹(shù),描述出各個(gè)詞語(yǔ)之間的依存關(guān)系。也即指出了詞語(yǔ)之間在句法上的搭配關(guān)系,這種搭配關(guān)系是和語(yǔ)義相關(guān)聯(lián)的。如下圖所示:

[Python知識(shí)圖譜] 二.哈工大pyltp詞性標(biāo)注、命名實(shí)體識(shí)別、依存句法分析和語(yǔ)義角色標(biāo)注_第3張圖片

哈工大Pyltp的依存句法關(guān)系如下圖所示。
參考:https://ltp.readthedocs.io/zh_CN/latest/appendix.html

[Python知識(shí)圖譜] 二.哈工大pyltp詞性標(biāo)注、命名實(shí)體識(shí)別、依存句法分析和語(yǔ)義角色標(biāo)注_第4張圖片

完整代碼

            
              
                # -*- coding: utf-8 -*-
              
              
                from
              
               pyltp  
              
                import
              
               SentenceSplitter

              
                from
              
               pyltp 
              
                import
              
               Segmentor

              
                from
              
               pyltp 
              
                import
              
               Postagger

              
                from
              
               pyltp 
              
                import
              
               Parser

              
                from
              
               pyltp 
              
                import
              
               NamedEntityRecognizer

ldir 
              
                =
              
              
                'AgriKG\\ltp\\cws.model'
              
              
                #分詞模型
              
              
dicdir 
              
                =
              
              
                'word'
              
              
                #外部字典
              
              
text 
              
                =
              
              
                "貴州財(cái)經(jīng)大學(xué)要舉辦大數(shù)據(jù)比賽嗎?"
              
              
                #中文分詞
              
              
segmentor 
              
                =
              
               Segmentor
              
                (
              
              
                )
              
              
                #初始化實(shí)例
              
              
segmentor
              
                .
              
              load_with_lexicon
              
                (
              
              ldir
              
                ,
              
              
                'word'
              
              
                )
              
              
                #加載模型
              
              
words 
              
                =
              
               segmentor
              
                .
              
              segment
              
                (
              
              text
              
                )
              
              
                #分詞
              
              
                print
              
              
                (
              
              text
              
                )
              
              
                print
              
              
                (
              
              
                ' '
              
              
                .
              
              join
              
                (
              
              words
              
                )
              
              
                )
              
              
                #分詞拼接
              
              
words 
              
                =
              
              
                list
              
              
                (
              
              words
              
                )
              
              
                #轉(zhuǎn)換list
              
              
                print
              
              
                (
              
              u
              
                "分詞:"
              
              
                ,
              
               words
              
                )
              
              
segmentor
              
                .
              
              release
              
                (
              
              
                )
              
              
                #釋放模型
              
              
                #詞性標(biāo)注
              
              
pdir 
              
                =
              
              
                'AgriKG\\ltp\\pos.model'
              
              
pos 
              
                =
              
               Postagger
              
                (
              
              
                )
              
              
                #初始化實(shí)例
              
              
pos
              
                .
              
              load
              
                (
              
              pdir
              
                )
              
              
                #加載模型
              
              

postags 
              
                =
              
               pos
              
                .
              
              postag
              
                (
              
              words
              
                )
              
              
                #詞性標(biāo)注
              
              
postags 
              
                =
              
              
                list
              
              
                (
              
              postags
              
                )
              
              
                print
              
              
                (
              
              u
              
                "詞性:"
              
              
                ,
              
               postags
              
                )
              
              
pos
              
                .
              
              release
              
                (
              
              
                )
              
              
                #釋放模型
              
              

data 
              
                =
              
              
                {
              
              
                "words"
              
              
                :
              
               words
              
                ,
              
              
                "tags"
              
              
                :
              
               postags
              
                }
              
              
                print
              
              
                (
              
              data
              
                )
              
              
                print
              
              
                (
              
              
                " "
              
              
                )
              
              
                #命名實(shí)體識(shí)別
              
              
nermodel 
              
                =
              
              
                'AgriKG\\ltp\\ner.model'
              
              
reg 
              
                =
              
               NamedEntityRecognizer
              
                (
              
              
                )
              
              
                #初始化命名實(shí)體實(shí)例
              
              
reg
              
                .
              
              load
              
                (
              
              nermodel
              
                )
              
              
                #加載模型
              
              
netags 
              
                =
              
               reg
              
                .
              
              recognize
              
                (
              
              words
              
                ,
              
               postags
              
                )
              
              
                #對(duì)分詞、詞性標(biāo)注得到的數(shù)據(jù)進(jìn)行實(shí)體標(biāo)識(shí)
              
              
netags 
              
                =
              
              
                list
              
              
                (
              
              netags
              
                )
              
              
                print
              
              
                (
              
              u
              
                "命名實(shí)體識(shí)別:"
              
              
                ,
              
               netags
              
                )
              
              
                #實(shí)體識(shí)別結(jié)果
              
              
data
              
                =
              
              
                {
              
              
                "reg"
              
              
                :
              
               netags
              
                ,
              
              
                "words"
              
              
                :
              
              words
              
                ,
              
              
                "tags"
              
              
                :
              
              postags
              
                }
              
              
                print
              
              
                (
              
              data
              
                )
              
              
reg
              
                .
              
              release
              
                (
              
              
                )
              
              
                #釋放模型
              
              
                print
              
              
                (
              
              
                " "
              
              
                )
              
              
                #依存句法分析
              
              
parmodel 
              
                =
              
              
                'AgriKG\\ltp\\parser.model'
              
              
parser 
              
                =
              
               Parser
              
                (
              
              
                )
              
              
                #初始化命名實(shí)體實(shí)例
              
              
parser
              
                .
              
              load
              
                (
              
              parmodel
              
                )
              
              
                #加載模型
              
              
arcs 
              
                =
              
               parser
              
                .
              
              parse
              
                (
              
              words
              
                ,
              
               postags
              
                )
              
              
                #句法分析
              
              
                #輸出結(jié)果
              
              
                print
              
              
                (
              
              words
              
                )
              
              
                print
              
              
                (
              
              
                "\t"
              
              
                .
              
              join
              
                (
              
              
                "%d:%s"
              
              
                %
              
              
                (
              
              arc
              
                .
              
              head
              
                ,
              
               arc
              
                .
              
              relation
              
                )
              
              
                for
              
               arc 
              
                in
              
               arcs
              
                )
              
              
                )
              
              

rely_id 
              
                =
              
              
                [
              
              arc
              
                .
              
              head 
              
                for
              
               arc 
              
                in
              
               arcs
              
                ]
              
              
                # 提取依存父節(jié)點(diǎn)id
              
              
relation 
              
                =
              
              
                [
              
              arc
              
                .
              
              relation 
              
                for
              
               arc 
              
                in
              
               arcs
              
                ]
              
              
                # 提取依存關(guān)系
              
              
heads 
              
                =
              
              
                [
              
              
                'Root'
              
              
                if
              
              
                id
              
              
                ==
              
              
                0
              
              
                else
              
               words
              
                [
              
              
                id
              
              
                -
              
              
                1
              
              
                ]
              
              
                for
              
              
                id
              
              
                in
              
               rely_id
              
                ]
              
              
                # 匹配依存父節(jié)點(diǎn)詞語(yǔ)
              
              
                for
              
               i 
              
                in
              
              
                range
              
              
                (
              
              
                len
              
              
                (
              
              words
              
                )
              
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              relation
              
                [
              
              i
              
                ]
              
              
                +
              
              
                '('
              
              
                +
              
               words
              
                [
              
              i
              
                ]
              
              
                +
              
              
                ', '
              
              
                +
              
               heads
              
                [
              
              i
              
                ]
              
              
                +
              
              
                ')'
              
              
                )
              
              

parser
              
                .
              
              release
              
                (
              
              
                )
              
              
                #釋放模型
              
            
          

輸出結(jié)果如下所示,其中ATT表示定中關(guān)系,如“貴州-大學(xué)”、“財(cái)經(jīng)-大學(xué)”;SBV表示主謂關(guān)系,如“大學(xué)-舉辦”;ADV表示狀中結(jié)果“要-舉辦”;HED表示核心關(guān)系“舉辦-Root”,即“舉辦大數(shù)據(jù)”。

[Python知識(shí)圖譜] 二.哈工大pyltp詞性標(biāo)注、命名實(shí)體識(shí)別、依存句法分析和語(yǔ)義角色標(biāo)注_第5張圖片

補(bǔ)充:arc.head表示依存弧的父節(jié)點(diǎn)詞的索引,arc.relation表示依存弧的關(guān)系。arc.head中的ROOT節(jié)點(diǎn)的索引是0,第一個(gè)詞開(kāi)始的索引依次為1、2、3。


四.語(yǔ)義角色標(biāo)注

該部分代碼僅供博友們參考,作者還在深入研究中。

            
              
                #語(yǔ)義角色標(biāo)注
              
              
                from
              
               pyltp 
              
                import
              
               SementicRoleLabeller

srlmodel 
              
                =
              
              
                'AgriKG\\ltp\\pisrl.model'
              
              
labeller 
              
                =
              
               SementicRoleLabeller
              
                (
              
              
                )
              
              
                #初始化實(shí)例
              
              
labeller
              
                .
              
              load
              
                (
              
              srlmodel
              
                )
              
              
                #加載模型
              
              

words 
              
                =
              
              
                [
              
              
                '元芳'
              
              
                ,
              
              
                '你'
              
              
                ,
              
              
                '怎么'
              
              
                ,
              
              
                '看'
              
              
                ]
              
              
postags 
              
                =
              
              
                [
              
              
                'nh'
              
              
                ,
              
              
                'r'
              
              
                ,
              
              
                'r'
              
              
                ,
              
              
                'v'
              
              
                ]
              
              
arcs 
              
                =
              
               parser
              
                .
              
              parse
              
                (
              
              words
              
                ,
              
               postags
              
                )
              
              
                #依存句法分析
              
              
                #arcs使用依存句法分析的結(jié)果
              
              
roles 
              
                =
              
               labeller
              
                .
              
              label
              
                (
              
              words
              
                ,
              
               postags
              
                ,
              
               arcs
              
                )
              
              
                #語(yǔ)義角色標(biāo)注
              
              
                # 打印結(jié)果
              
              
                for
              
               role 
              
                in
              
               roles
              
                :
              
              
                print
              
              
                (
              
              role
              
                .
              
              index
              
                ,
              
              
                ""
              
              
                .
              
              join
              
                (
              
              
                [
              
              
                "%s:(%d,%d)"
              
              
                %
              
              
                (
              
              arg
              
                .
              
              name
              
                ,
              
               arg
              
                .
              
              
                range
              
              
                .
              
              start
              
                ,
              
               arg
              
                .
              
              
                range
              
              
                .
              
              end
              
                )
              
              
                for
              
               arg 
              
                in
              
               role
              
                .
              
              arguments
              
                ]
              
              
                )
              
              
                )
              
              

labeller
              
                .
              
              release
              
                (
              
              
                )
              
              
                #釋放模型
              
            
          

輸出結(jié)果如下:
3 A0:(1,1)ADV:(2,2)

上面的例子,由于結(jié)果輸出一行,所以“元芳你怎么看”有一組語(yǔ)義角色。 其謂詞索引為3,即“看”。這個(gè)謂詞有三個(gè)語(yǔ)義角色,范圍分別是(0,0)即“元芳”,(1,1)即“你”,(2,2)即“怎么”,類型分別是A0、A0、ADV。


希望這篇基礎(chǔ)性文章對(duì)你有所幫助,如果有錯(cuò)誤或不足之處,還請(qǐng)海涵。

你好!六月。
這些年通過(guò)CSDN認(rèn)識(shí)了很多志同道合的朋友,也有很多編程領(lǐng)域的大佬,每天都感覺(jué)自己差距還很大,優(yōu)秀的很多。很高興認(rèn)識(shí)這些素未謀面的新朋友。靡不有初,鮮克有終,一起加油。coding~

(By:Eastmount 2019-06-17 中午12點(diǎn)寫(xiě)于花溪 https://blog.csdn.net/Eastmount )


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 宜章县| 昂仁县| 隆化县| 永春县| 枝江市| 章丘市| 寻乌县| 莱西市| 深水埗区| 西青区| 上犹县| 且末县| 巴中市| 乌拉特中旗| 太白县| 枣庄市| 长寿区| 阳新县| 洱源县| 达州市| 柘荣县| 五华县| 尼玛县| 乐山市| 武夷山市| 阿坝县| 九龙县| 同心县| 玛曲县| 清镇市| 保定市| 建宁县| 靖西县| 新泰市| 仁寿县| 团风县| 宁都县| 沾化县| 辽中县| 阳江市| 安平县|