声明:转载请注明出处,谢谢:https://www.jianshu.com/p/f4321f0c0744
另外,更多实时更新的个人学习笔记分享,请关注:
知乎:https://www.zhihu.com/people/yuquanle/columns
公众号:StudyForAI
CSDN地址:http://blog.csdn.net/m0_37306360
今天是总结nlp基础技术的最后一篇,后面开始工具实战篇,我觉得实践对新手小白入门是相当有帮助的~~
语义角色标注定义:
维基百科定义: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。
常见方法:
语义角色标注的研究热点包括基于成分句法树的语义角色标注和基于依存句法树的语义角色标注。同时,根据谓词的词性不同,又可进一步分为动词性谓词和名词性谓词语义角色标注。尽管各任务之间存在着差异性,但标注框架类似。
目前 SRL 的实现通常都是基于句法分析结果,即对于某个给定的句子,首先得到其句法分析结果,然后基于该句法分析结果,再实现 SRL。这使得 SRL 的性能严重依赖于句法分析的结果。
例子:
以下以基于成分句法树的语义角色标注为例,任务的解决思路是以句法树的成分为单元,判断其是否担当给定谓词的语义角色:
角色剪枝:通过制定一些启发式规则,过滤掉那些不可能担当角色的成分。
角色识别:在角色剪枝的基础上,构建一个二元分类器,即识别其是或不是给定谓词的语义角色。
角色分类: 对那些是语义角色的成分,进一步采用一个多元分类器,判断其角色类别。
相关评测:
CoNLL会议2008、 2009 年则对依存分析和语义角色标注联合任务进行评测
CoNLL 2008:https://www.clips.uantwerpen.be/conll2008/
CoNLL 2009:http://ufal.mff.cuni.cz/conll2009-st/task-description.html
工具推荐:
-
Nlpnet:一个基于神经网络的自然语言处理任务的Python库。 目前提供词性标注,语义角色标记和依存分析功能。该系统的灵感来自SENNA。
Github地址:https://github.com/erickrf/nlpnet
-
Pyltp:语言技术平台(LTP) 是由哈工大社会计算与信息检索研究中心历时11年的持续研发而形成的一个自然语言处理工具库,其提供包括中文分词、词性标注、命名实体识别、依存句法分析、语义角色标注等丰富、 高效、精准的自然语言处理技术
Github地址:https://github.com/HIT-SCIR/pyltp
参考:
1.中文信息处理发展报告-2016
最新研究进展看这里:https://github.com/yuquanle/NLP-progress/blob/master/semantic_role_labeling.md