语义角色标注


语义角色标注

153/800
loading

简介

语义角色标注(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秘钥authopen in new window

分析

指定仅执行语义角色标注:

      
doc = HanLP.parse('晓美焰来到北京立方庭参观自然语义科技公司。', tasks=['srl'])
print(doc)

    

返回值为一个Documentopen in new windowdoc['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})')

    

本地调用

请参考教程open in new window

多语种支持

请参考文档open in new window设置RESTful语种或加载相应的外语或多语种模型。

上次编辑于: 2022/7/2 22:01:57
贡献者: hankcs