1. 程式人生 > >LTP 語義角色標註

LTP 語義角色標註

語義角色標註

語義角色標註 (Semantic Role Labeling, SRL) 是一種淺層的語義分析技術,標註句子中某些短語為給定謂詞的論元 (語義角色) ,如施事、受事、時間和地點等。其能夠對問答系統、資訊抽取和機器翻譯等應用產生推動作用。

# 語義角色標註模型
labeller = SementicRoleLabeller()
labeller.load(os.path.join(MODELDIR, "pisrl_win.model"))
roles = labeller.label(words, postags, arcs)

for role in roles:
    print(role.index, "".join(
            ["%s:(%d,%d)" % (arg.name, arg.range.start, arg.range.end) for arg in role.arguments]))

完整原始碼參考:https://blog.csdn.net/enter89/article/details/86066243

第一個詞開始的索引一次是0、1、2....
返回結果 roles 是關於多個謂詞的語義角色分析的結果。由於一句話中可能不含有語義角色,所以結果可能為空。
role.index 代表謂詞的索引, role.arguments 代表關於該謂詞的若干語義角色。
arg.name 表示語義角色型別,arg.range.start 表示該語義角色起始詞位置的索引,arg.range.end 表示該語義角色結束詞位置的索引。

上例子中的結果 為
7 TMP:(0,6)A1:(9,14)
9 A1:(10,10)
謂語索引7,即“提出”,這個謂語有兩個語義角色,第一個為型別為TMP,即時間,範圍為(0,6);第二個語義角色型別為A1,即動作的影響,範圍為(9,14)。
總結意思為: 在“國務院總理李克強調研上海外高橋時”這個時間“提出”了“支援上海積極探索新機制”。

核心的語義角色為 A0-5 六種,A0 通常表示動作的施事,A1通常表示動作的影響等,A2-5 根據謂語動詞不同會有不同的語義含義。

標記 說明
A0 通常表示動作的施事
A1 通常表示動作的影響等

其餘的15個語義角色為附加語義角色,如LOC 表示地點,TMP 表示時間等。附加語義角色列表如下:

語義角色型別 說明
ADV adverbial, default tag ( 附加的,預設標記 )
BNE beneficiary ( 受益人 )
CND condition ( 條件 )
DIR direction ( 方向 )
DGR degree ( 程度 )
EXT extent ( 擴充套件 )
FRQ frequency ( 頻率 )
LOC locative ( 地點 )
MNR manner ( 方式 )
PRP purpose or reason ( 目的或原因 )
TMP temporal ( 時間 )
TPC topic ( 主題 )
CRD coordinated arguments ( 並列引數 )
PRD predicate ( 謂語動詞 )
PSR possessor ( 持有者 )
PSE possessee ( 被持有 )

                                         

 

 

官方完整解釋:http://www.ltp-cloud.com/intro#cws_how