Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

输入数据的格式 #81

Open
666-zhang opened this issue Sep 16, 2022 · 7 comments
Open

输入数据的格式 #81

666-zhang opened this issue Sep 16, 2022 · 7 comments
Assignees
Labels
bug Something isn't working

Comments

@666-zhang
Copy link

请问关系抽取中输入数据的格式是什么样子的?

“列表中每个元素是如下组织的字典”([头实体, 头实体首字符在文本的位置, 头实体尾字符在文本的位置, 关系类型, 尾实体, 尾实体首字符在文本的位置, 尾实体尾字符在文本的位置])

以上所说的字典是什么意思?没太理解

@jimme0421
Copy link
Collaborator

你好,这里的“字典”应该是描述错误,就是类似下面列表的形式,
[头实体, 头实体首字符在文本的位置, 头实体尾字符在文本的位置, 关系类型, 尾实体, 尾实体首字符在文本的位置, 尾实体尾字符在文本的位置]
具体的输入格式你可以参考example文件下CMeIE.ipynb中train_df的格式。例子如下:
[[产后抑郁症, 0, 4, 鉴别诊断@疾病, 轻度情绪失调, 14, 19]]

@jimme0421 jimme0421 self-assigned this Sep 16, 2022
@666-zhang
Copy link
Author

感谢回复,我输入的是如下的数据格式:

截屏2022-09-16 23 42 48

在model.fit的步骤会报错,在其中
# 计算损失 logits, loss = self._get_train_loss(inputs, outputs, **kwargs)

这一步时会显示输入数据的shape与期待不符:
ValueError: Using a target size (torch.Size([1, 100, 1])) that is different to the input size (torch.Size([1, 100])) is deprecated. Please ensure they have the same size.

请问输入的格式哪里有问题呀?

@jimme0421
Copy link
Collaborator

我通过输入单条数据复现出了相同的错误,定位到的是CasRelLoss中包含的torch.nn.functional.binary_cross_entropy报的错。输入多条数据的时候不存在这个错误。

我尝试修复了下,临时的修复方案是在ark_nlp.factory.loss_function.casrel_loss的_compute_loss中将gold也展开。比如将
pred = pred.squeeze(-1)
修改为
pred, gold = pred.squeeze(-1), gold.squeeze(-1)

@jimme0421 jimme0421 added the bug Something isn't working label Sep 17, 2022
@666-zhang
Copy link
Author

我将输入数据改为多条:
截屏2022-09-17 09 29 51

model.fit阶段没有问题,在predict单条text的时候只返回一个空的集合,
截屏2022-09-17 09 30 07

请问predict的时候对于text的格式有什么要求吗?或者说怎样能得到和输入的label一样格式的输出?

@jimme0421
Copy link
Collaborator

这个情况应该是输入的text中没有包含任何关系,所以结果为空,造成的原因是你用的数据太少了,建议你先用CMeIE的数据试试。

输出格式你可以自己根据需求自行处理,目前的模型的输出格式和输入label略有不同。

@666-zhang
Copy link
Author

收到谢谢

@samueljsluo
Copy link

请问这个报错可能是什么原因呢?
token_ids, masks, text_len, sub_heads, sub_tails, sub_head, sub_tail, obj_heads, obj_tails, triples, tokens, token_mapping = zip(*batch)
ValueError: not enough values to unpack (expected 12, got 0)
这是我的数据集
Screenshot 2023-05-31 at 20 33 30

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants