CasRel
CasRel copied to clipboard
A Novel Cascade Binary Tagging Framework for Relational Triple Extraction. Accepted by ACL 2020.
版本都是一致的,训练时报错,求解答,谢谢。
请问,这个测试的时候是无法并行吗,我看代码好像是一条一条数据进行的测试
模型中subject_model和object_model预测的实体结尾tail的位置,就是实体结尾那个字的索引,但是在extract_items中,模型预测位置后,选择实体的时候使用的是:subject = tokens[sub_head: sub_tail]和obj = tokens[obj_head: obj_tail],这样选择的话,实体的最后一个字符不是没有选到结果里面吗?是不是应该用subject = tokens[sub_head: sub_tail+1]和obj = tokens[obj_head: obj_tail+1]
我用pytorch复现,出现一个问题是bret预训练模型在eval()模式的时候,每个token输出一模一样。。。,于是我固定了bert参数,训练之后正常了,大概只有30几的f1。这是什么原因呢
Using the given requirements, still won't work on my RTX3070. Already tried on tensorflow-gpu=1.13.1/1.14.0/1.15.0 . cudatookit=10.0/10.1
I notice that in the data_generator class, that you only preserve one relation triple by using random.choice(). what is the motivation of this? Thanks Feng
when I run the script and get wrong. Who have can help me?
使用CopyR 的nty数据集。里边在处理entity,只保留了最后一个单词 例如:Suffolk County -> County。 在casrel也使用了这个数据集,通过把数字化的数据集转化回文字,并保存关系三元组。 按照casrel论文,那sub start,end 且不是都指向County。 这个是否存在问题啊?
代码中使用了keras-bert里面的tokenizer,但是这个tokenize的表现好像有些特殊,例如: ```{ "text":"三国中的谋士很多,但是谋士也要分不同的类别,有的善于统筹全局,有的善于战术规划,有的善于外交连横,不过说实话,其中大部分知名谋士的结局都不太好,如:荀彧被曹操逼死,陆逊被孙权气死,就连大家最敬仰的诸葛亮也是被军国大事给累死,但是有一个谋士不但得到了善终,而且还位高权重,关键就在于他在生涯中的五次站队都成功了,我们来看看吧", "triple_list":[ [ "陆逊", "朝代", "三国" ] ] } ``` 这条数据,text就会被tokenize成,['[CLS]', '##三', '##国', ... , ‘[unused1]’, '[SEP]'], 对应的subject会被tokenize成,['##陆', '##逊', ‘[unused1]’],不知道是出于什么考虑还是只是bug?因为如果这样,在原始输入序列中无法找到subject与object对应的位置,就无法产生对应的标签。(bert-base-chinese, vocab也是bert自带的vocab.txt) 但是代码中在data_generator阶段似乎又有意规避了末尾的unused1标签? ```s2ro_map = {} for triple in...