01
定义
先来看看语义角色标注在维基百科上的定义:Semantic role labeling, sometimes also called shallow semantic parsing, is a process in natural language processing that assigns labels to words or phrases in a sentence that indicate their semantic role in the sentence, such as that of an agent, goal, or result. It consists of the detection of the semantic arguments associated with the predicate or verb of a sentence and their classification into their specific roles.
语义角色标注(Semantic Role Labeling,简称 SRL)是一种浅层的语义分析。
给定一个句子, SRL 的任务是找出句子中谓词的相应语义角色成分,包括核心语义角色(如施事者、受事者等) 和附属语义角色(如地点、时间、方式、原因等)。
根据谓词类别的不同,又可以将现有的 SRL 分为动词性谓词 SRL 和名词性谓词 SRL。
02
例子
以基于成分句法树的语义角色标注为例,任务的解决思路是以句法树的成分为单元,判断其是否担当给定谓词的语义角色:
角色剪枝:通过制定一些启发式规则,过滤掉那些不可能担当角色的成分。
角色识别:在角色剪枝的基础上,构建一个二元分类器,即识别其是或不是给定谓词的语义角色。
角色分类:对那些是语义角色的成分,进一步采用一个多元分类器,判断其角色类别。
03
相关评测
CoNLL 会议 2008、 2009 年对依存分析和语义角色标注联合任务进行评测。
04
工具推荐
Nlpnet
一个基于神经网络的自然语言处理任务的 Python 库。目前提供词性标注,语义角色标记和依存分析功能。该系统的灵感来自 SENNA。
Github 地址:
https://github.com/erickrf/nlpnet
预训练模型地址:
http://nilc.icmc.usp.br/nlpnet/models.html#
Pyltp
语言技术平台(LTP) 是由哈工大社会计算与信息检索研究中心历时11年的持续研发而形成的一个自然语言处理工具库,其提供包括中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注等丰富、 高效、精准的自然语言处理技术。
Github 地址:
https://github.com/HIT-SCIR/pyltp
代码已上传:
https://github.com/yuquanle/StudyForNLP/blob/master/NLPbasic/SRL.ipynb
参考:
1. 统计自然语言处理
2. 中文信息处理报告-2016