LTP 語義角色標註
阿新 • • 發佈:2019-01-08
語義角色標註
語義角色標註 (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 ( 被持有 ) |