bio-based语义角色标注

定义

定义1:

1
Semantic Role Labeling (SRL) is defined as the task to recognize arguments for a given predicate and assign semantic role labels to them.

定义2(ltp):

1
语义角色标注 (Semantic Role Labeling, SRL) 是一种浅层的语义分析技术,标注句子中某些短语为给定谓词的论元 (语义角色) ,如施事、受事、时间和地点等。其能够对问答系统、信息抽取和机器翻译等应用产生推动作用。 仍然是上面的例子,语义角色标注的结果为:

实现

https://github.com/geasyheart/srl-parser

欢迎Star!

示例1:

alt
看黄色那部分:

  • 他叫汤姆,他作为施事者,叫为谓语,汤姆为受事者
  • 去拿外衣(为一个完整语义)
  • 汤姆拿外衣,汤姆为施事者,拿为谓语,外衣为受事者

示例2:

‘各位/PN 好/VA ,/PU 欢迎/VV 您/PN 收看/VV 国际/NN 频道/NN 的/DEG 今日/NT 关注/NN 。/PU’

此图自己画的,如有需要可参考

  • 欢迎您,欢迎为谓语,您为受事者,收看国际频道的今日关注为语义角色
  • 其余忽略…

数据集

数据集来自ontonotes5.0,但是此为收费数据集,或者需要大学帐号注册,找到一个开源的https://github.com/GuocaiL/Coref_Resolution/archive/master.zip#data/,处理后的数据集以 jsonlines后缀存储,放到此处

具体的处理逻辑可参考这里

实现

目前常见的有span-based,bio-based,treecrf,treecrf是yzhangcs的实现方式。bio-based是用序列标注的方式来做(hanlp和ltp均以此实现),故是本文的重点。

数据处理

这个文件,其中预测的label处理后是这个样子,解释如下:

  • 各位 好,好是第二个字,和第一个词有关系,关系为3。
  • 欢迎 您收看国际频道的今日关注, 对应关系为1, 13, 23, 23, 23, 23, 23。
1
2
3
4
5
6
7
8
9
10
11
12
tensor([[ 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0],
[ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 1, 13, 23, 23, 23, 23, 23, 0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]])

看到这里是否知道其模型结构了,biaffine+crf哇,biaffine转换成临接矩阵,用于预测谓词论元的关系,论元用crf序列标注的方式来进行预测。

模型结构

1
2
3
4
5
6
7
SpanBIOSemanticRoleLabelingModel(
(transformer): TransformerEncoder(n_out=256,dropout=0.1)
(s_layer): MLP(n_in=256, n_out=300, dropout=0.1)
(e_layer): MLP(n_in=256, n_out=300, dropout=0.1)
(biaffine): Biaffine(n_in=300, n_out=64, bias_x=True, bias_y=True)
(crf): CRF(num_tags=64)
)

步骤

1. loss计算和解码

biaffine这一层没什么需要特别注意的,bert获取词向量的方式从以前的求平均改成了以首字代表词向量。后面接两个mlp以及biaffine。重点在于如何和crf融合到一起?

  1. biaffine输出后维度为(batch_size,seq_length,seq_length,hidden_size),crf是用在第二个seq_length那一维。
  2. crf的输入为发射概率,此维度为(batch_size,seq_length,hidden_size)。

基于上述两个前提,将batch_size第一个seq_length进行flatten,因为第一个seq_length为谓语,不影响论元的预测,转换后输入到crf中,就可以计算loss了,解码一样。

2. 评估指标

预测出来的结果示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# pred

[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 1, 13, 23, 23, 23, 23, 23, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 1, 2, 2, 2, 2, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],

[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[12, 6, 3, 4, 4, 4, 4, 4, 4, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]

pred类型为List[List[int]],他的长度等于batch_tokens中每个词的长度,即:

1
len(pred) == sum([len(i) for i in batch["batch_tokens"]])

其中每一行表示的是当前词和整句每个词所呈现出来的关系。

基于上面结论,就不难写评估代码了,将其转成(token_index, start, end, label),然后set取交集,最终计算f1值,可看这里

3. 解码预测

基本如上,具体可看

性能

ltp v4

从这里也可以看出,语义角色标注任务任重道远。

ltp关系类型

ltp关系类型1ltp关系类型2

关系类型

Tag

Description

Example

ARG0

causers or experiencers

施事者、主体、触发者

[政府 ARG0]鼓励个人投资服务业。

ARG1

patient

受事者

政府鼓励[个人 ARG1]投资服务业。

ARG2

range

语义角色2

政府鼓励个人[投资服务业 ARG2]。

ARG3

starting point

语义角色3

巴基斯坦[对谈判前景 ARG3]表示悲观。

ARG4

end point

语义角色4

产检部门将产检时间缩短到[一至三天 ARG4]。

ADV

adverbial

状语

我们[即将 ADV]迎来新年。

BNF

beneficiary

受益人

义务[为学童及老师 BNF]做超音波检查 。

CND

condition

条件

[如果早期发现 CND],便能提醒当事人注意血压的变化。

CRD

coordinated arguments

并列

跟南韩、[跟美国 CRD]谋求和平关系的举动也更加积极。

DGR

degree

程度

贫铀弹含有放射性比铀强[20万倍 DGR]。

DIR

direction

方向

[从此处 DIR] 我们可以发现寇克斯报告的精髓。

DIS

discourse marker

会话标记

警方上午针对目击者做笔录,[而 DIS]李士东仍然不见踪影。

EXT

extent

### 回答1: Bio-Rad软件是一种用于科学研究、生物医学和生物技术的软件工具。它由Bio-Rad实验室公司开发,旨在帮助科学家和研究人员在实验室工作中分析和处理数据。 Bio-Rad软件可应用于多个领域,包括分子生物学、细胞生物学、生物化学和基因组学。它提供了一系列功能强大的工具,用于数据可视化、统计分析和数据管理。通过使用Bio-Rad软件,研究人员可以更轻松地解释实验结果、发现模式和趋势,并生成专业水平的图形和报告。 其中一种常见的Bio-Rad软件是GenePattern。它是一个集成了许多生物学分析工具和算法的软件平台。GenePattern可以用于基因表达分析、遗传变异分析、序列分析和数据可视化。它具有用户友好的界面和直观的工作流程,使研究人员能够快速进行复杂的生物学数据分析。 Bio-Rad软件还提供了其他工具,如PrimePCR和Amplification & Detection。这些工具被广泛应用于分子生物学实验中,如实时定量PCR和DNA扩增等。它们提供了准确和可靠的分析结果,并可以帮助研究人员更好地理解基因表达和遗传变异。 总之,Bio-Rad软件是一套专门设计用于生物学研究和实验室工作的实用工具。它们提供了强大的数据分析和可视化功能,帮助科学家更好地理解和解释实验结果,并推动生命科学的发展。 ### 回答2: Bio-Rad软件是由Bio-Rad Laboratories公司开发的一种生物实验数据分析和管理工具。它旨在帮助科学家和研究人员更快、更准确地分析和解读实验数据。 Bio-Rad软件具有多种功能,能够处理来自不同实验平台和仪器的数据。它可以导入和导出多种数据格式,包括文本、Excel和图像文件,并提供直观的界面,使用户能够轻松地操作和组织数据。 该软件提供了丰富的数据分析工具,例如统计分析、绘图和数据可视化等。它可以执行各种常用的统计方法,如t检验、方差分析和回归分析,以帮助用户找到数据之间的关联和趋势。此外,它还提供了丰富的绘图功能,可以快速生成柱状图、曲线图和热图等,以便更好地展示和比较数据。 除了数据分析工具,Bio-Rad软件还提供了实验管理功能。用户可以使用该软件创建实验方案、记录实验步骤和结果,轻松管理实验过程。它还提供了数据共享和协作平台,使多个用户可以同时使用同一份数据,并进行实时的数据交流和讨论。 总之,Bio-Rad软件是一款功能强大的生物实验数据分析和管理工具。它可以帮助科学家和研究人员更好地处理、分析和解读实验数据,提高实验效率和研究质量。 ### 回答3: Bio-Rad软件是一家领先的生物科技公司Bio-Rad Laboratories开发的一系列软件工具。这些软件旨在帮助生物科学研究人员在实验设计、数据收集、数据分析和结果解释方面更加高效和准确。 Bio-Rad软件提供了许多不同的功能,以满足不同实验室需求。其中包括实时荧光定量PCR数据分析软件。这种软件可以自动识别和分析实时荧光定量PCR实验生成的数据,帮助用户计算样品的相对表达量,进行数据正则化和统计分析,并生成结果报告。 另一个重要的Bio-Rad软件是凝胶图像分析软件。这种软件可用于从凝胶图像中分析DNA、RNA和蛋白质的电泳结果。通过该软件,用户可以对图像进行校正和增强,测量片段长度、相对浓度和相对表达量,并在图像上标记关键点。 除了这些常用功能,Bio-Rad软件还提供了专门设计的工具,以帮助用户解决特定的实验需求。例如,有一些软件可以用于聚合物酶链式反应(PCR)优化和设计引物。还有一些软件可以用于序列分析和比对、基因表达分析和细胞培养监控等。 总的来说,Bio-Rad软件通过提供先进的数据分析工具和自动化流程,帮助生物科学研究人员提高实验效率,减少人为误差,并提供准确和可靠的结果。这些软件具有用户友好的界面和强大的功能,是生物科学研究领域的重要工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值