栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

describe怎么读_descend?

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

describe怎么读_descend?

如果有遇到这个问题的欢迎和我交流讨论,我真的不懂了。。。

qq:1410497065

2022.3.29更新,发现问题了。

我下载下来后

 我下载下来处理好之后和作者的数量是一样的。

可以看到,负样本占了大多数。

如果把负样本加入最后的分数计算的话,达到论文中提出的80多分是正常的,实验结果显示确实是80多分。

(下面图中每个都是分数都是一样的,不过不影响,是代码里操作有点小失误,总的来说就是加入了Neg评分才达到这么高)

但是作者给出的代码是没有把负样本算在里面的。我将数据打印出来如下图所示,Mechanism和effect的值为0,advice 和int也很低,如果不算negative的话,可能确实是0.00x分。

  ('negative', 'Mechanism',    'Effect',        'Advise',            'Int.')
P [0.83127413,       0.        ,            0.        , 0.08695652,    0.01639344]),
R [0.98288062,      0.        ,             0.        , 0.00934579,    0.0106383 ]
F [0.9007426 ,       0.        ,             0 .        0.01687764,      0.01290323]
S [4381,               278,                  298,              214,                94]

 

作者给出的每一种类型都有这么高的分数,是我操作失误吗。。。有复现过的遇到同样的问题了吗?


   

1.首先就是下载语料库数据集

     GitHub - isegura/DDICorpus

找到DDICorpus-2013.zip,下载下来,如果不了解格式的可以花2分钟看一下下面的链接,先看数据集格式再看代码

DDICorpus 2013 内容介绍_未空blog的博客-CSDN博客

我当时是LINUX命令不熟悉在这里兜了一会儿圈,遇到的奇怪LINUX命令总结_未空blog的博客-CSDN博客

主要任务是将xml格式语料转成BRAT格式再存进tsv文件

xml2brat.py:

'''
将某个xml文件处理成brat格式,
例如: somefile.xml
        -> somefile.txt
        -> somefile.ann
        -> somefile.map

'''

我是用训练集和测试集分别单独操作然后得到train.tsv 和dev.tsv


DrugBank...DrugBank我发邮件给他们了,要来回拉扯几天吧。。。因为人家都是两三点给我发消息,我看到的时候回复人家人家已经下班了,

 如果是学术使用的话,是可以得到别人的许可的,估计明天就会给我回复了。我看到别人公开的代码也有drugbank,比如Sum GNN,不过好像都是txt文件,我一直想从官方那里下载一次,自己处理,毕竟实践也是很重要的。https://go.drugbank.com/releases/latest,如果想要的话也可以自己申请一下。第三步fingerprint需要用到drugbank,等明天拿到许可了再弄。

续更:下载下来了,继续操作,老规矩首先要知道数据基本格式

DrugBank总结_未空blog的博客-CSDN博客

下载下来之后执行readme,我放在shell里面了

我不知道TSV_FILE是不是刚才生成的train.tsv,dev.tsv还是别的(但是似乎没有别的了呀)。

按部就班操作得到新的TSV


fingerprint:这是对新的TSV操作,生成npy文件


BERT模型部分:

按照github给出地址下载即可

config_class, model_class, tokenizer_class = MODEL_CLASSES[args.model_type]
    config = config_class.from_pretrained(args.config_name if args.config_name else args.model_name_or_path, num_labels=num_labels, finetuning_task=args.task_name) #task_name = MRPC
    tokenizer = tokenizer_class.from_pretrained(args.tokenizer_name if args.tokenizer_name else args.model_name_or_path, do_lower_case=args.do_lower_case)
    desc_tokenizer = tokenizer_class.from_pretrained(args.tokenizer_name if args.tokenizer_name else args.model_name_or_path, do_lower_case=args.do_lower_case)

用到模型的代码在上面三行,config_class = BertConfig

model_class = BertForSequenceClassification

tokenizer = BertTokenizer

args那里都改成/scibert_scivocab_uncased应该就能访问到了,tokenizer引用的时候报了个小错如下所示,就是说模型不是括号里的那些模型(括号里那些模型是常用的如果没有地址直接可以下载那种),默认包含提示的三个json配置文件

03/28/2022 09:25:41 - INFO - transformers.tokenization_utils -   Model name '../scibert_scivocab_uncased/vocab.txt' not found in model shortcut name list (bert-base-uncased, bert-large-uncased, bert-base-cased, bert-large-cased, bert-base-multilingual-uncased, bert-base-multilingual-cased, bert-base-chinese, bert-base-german-cased, bert-large-uncased-whole-word-masking, bert-large-cased-whole-word-masking, bert-large-uncased-whole-word-masking-finetuned-squad, bert-large-cased-whole-word-masking-finetuned-squad, bert-base-cased-finetuned-mrpc). Assuming '../scibert_scivocab_uncased/vocab.txt' is a path or url to a directory containing tokenizer files.
03/28/2022 09:25:41 - INFO - transformers.tokenization_utils -   Didn't find file ../scibert_scivocab_uncased/added_tokens.json. We won't load it.
03/28/2022 09:25:41 - INFO - transformers.tokenization_utils -   Didn't find file ../scibert_scivocab_uncased/special_tokens_map.json. We won't load it.
03/28/2022 09:25:41 - INFO - transformers.tokenization_utils -   Didn't find file ../scibert_scivocab_uncased/tokenizer_config.json. We won't load it.

03/28/2022 09:25:41 - INFO - transformers.tokenization_utils -   loading file ../scibert_scivocab_uncased/vocab.txt
03/28/2022 09:25:41 - INFO - transformers.tokenization_utils -   loading file None
03/28/2022 09:25:41 - INFO - transformers.tokenization_utils -   loading file None
03/28/2022 09:25:41 - INFO - transformers.tokenization_utils -   loading file None

但是打开这个transformer.tokenization_utils可以看到这段文字:

# We can't instantiate directly the base class `PreTrainedTokenizer` so let's show our examples on a derived class: BertTokenizer

            # Download vocabulary from S3 and cache.
            tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')

            # If vocabulary files are in a directory (e.g. tokenizer was saved using `save_pretrained('./test/saved_model/')`)
            tokenizer = BertTokenizer.from_pretrained('./test/saved_model/')

            # If the tokenizer uses a single vocabulary file, you can point directly to this file
            tokenizer = BertTokenizer.from_pretrained('./test/saved_model/my_vocab.txt')

            # You can link tokens to special vocabulary when instantiating
            tokenizer = BertTokenizer.from_pretrained('bert-base-uncased', unk_token='')
            # You should be sure '' is in the vocabulary when doing that.
            # Otherwise use tokenizer.add_special_tokens({'unk_token': ''}) instead)
            assert tokenizer.unk_token == ''

说明vocab.txt应该也是可以的。


开始训练

03/28/2022 09:59:10 - INFO - __main__ -   ***** eval results  *****
03/28/2022 09:59:10 - INFO - __main__ -     Precision = 0.020754716981132074
03/28/2022 09:59:10 - INFO - __main__ -     Recall = 0.011235955056179775
03/28/2022 09:59:10 - INFO - __main__ -     microF = 0.014579191517561301

大爷的。。。数据集操作部分肯定有问题,但是我还不知道问题在哪里


猜测原因:我把medline和drugbank的训练集合在一起算作train.tsv,测试集也是,在database那个步骤里有一个代码是mention2dbid.py,而medline在drugbank里是找不到id的。这里可能会出问题,改了之后,嗯,解决了这个问题。。。产生了新的问题

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/786624.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号