语义角色标注
语义角色标注
153/800
简介
语义角色标注(Semantic Role Labeling 、SRL)任务的目标是分析一个句子的谓词论元结构(predicate-argument、PA),回答了“谁对谁做了什么”这样的语义问题。
调用方法
创建客户端
from hanlp_restful import HanLPClient # auth不填则匿名,zh中文,mul多语种 HanLP = HanLPClient('https://www.hanlp.com/api', auth=None, language='zh')
申请秘钥
由于服务器算力有限,匿名用户每分钟限2次调用。如果你需要更多调用次数,建议申请免费公益API秘钥auth。
分析
指定仅执行语义角色标注:
doc = HanLP.parse('晓美焰来到北京立方庭参观自然语义科技公司。', tasks=['srl']) print(doc)
返回值为一个Document。doc['srl']
字段为语义角色标注结果,每个四元组的格式为[论元或谓词, 语义角色标签, 起始下标, 终止下标]
。其中,谓词的语义角色标签为PRED
,起止下标对应以tok
开头的第一个单词数组。
可视化
通过doc.pretty_print()
,可以在等宽字体环境中得到可视化,你需要取消换行才能对齐可视化结果。我们已经发布HTML环境的可视化,在Jupyter Notebook中自动对齐中文。
doc.pretty_print()
操作谓词论元结构的技巧
遍历谓词论元结构:
for i, pas in enumerate(doc['srl'][0]): print(f'第{i+1}个谓词论元结构:') for form, role, begin, end in pas: print(f'{form} = {role} at [{begin}, {end})')
本地调用
请参考教程。
多语种支持
请参考文档设置RESTful语种或加载相应的外语或多语种模型。