zjunlp / KnowPrompt

[WWW 2022] KnowPrompt: Knowledge-aware Prompt-tuning with Synergistic Optimization for Relation Extraction
MIT License
195 stars 34 forks source link

数据集和实验设置 #33

Closed Kyrie-LiuX closed 2 months ago

Kyrie-LiuX commented 3 months ago

您好,感谢您的开源贡献,我有下面几个问题还请您能够解答一下: 1.您的.sh默认是将标准、低资源两种模式都执行吗?假如要进行特定实验(比如16-shot下的semeval.sh),参数该如何修改? 2.目前我看semeval数据集中有19种关系类型,但是train.txt文件双向关系数据中,没有“Entity-Destination(e2,e1)”关系类型的数据,而仅有“Entity-Destination(e1,e2)”,缺乏这一种类型的数据为什么还要加这一种关系类型呢?

Kyrie-LiuX commented 3 months ago

还有在kneprompt路径下执行 bash scripts/semeval.sh 报错: Traceback (most recent call last): File "main.py", line 212, in main() File "main.py", line 136, in main data = data_class(args, model) # 32 按照命名空间中的要求加载数据集,用模型处理数据集 File "/mnt/data/Psy_KGLLM_LX/KnowPrompt/data/dialogue.py", line 143, in init rel2id = self.processor.get_labels() File "/mnt/data/Psy_KGLLM_LX/KnowPrompt/data/processor.py", line 530, in get_labels with open(os.path.join(data_dir,'rel2id.json'), "r", encoding='utf-8') as reader: FileNotFoundError: [Errno 2] No such file or directory: 'semeval/rel2id.json' 请问这些路径需要修改代码改成绝对路径之类的吗

njcx-ai commented 3 months ago

您好,感谢您对我们KnowPrompt工作的关注。关于您的问题作如下解答:

  1. .sh脚本只针对输入的数据参数对应的data作处理, 并未涉及标准和低资源两种模式的切换。实际上低资源只需自己对数据进行采样预处理即可。
  2. 关于semeval数据集的处理,我们git项目中有致谢到PTR的代码。这里可能是数据集本身的设定。
  3. 需要改为绝对路径
Kyrie-LiuX commented 3 months ago

感谢您的专业回复,抱歉我还想再问一下,如果我想设置低资源运行,只需要将.sh的data_dir设置成dataset/semeval/k-shot/16-1就可以了吗?还需要将robert-large_semeval.pt复制一份到16-1文件夹中吗?

njcx-ai commented 3 months ago

您好,robert-large_semeval.pt应该是训练过的模型文件,dataset/semeval/k-shot/16-1中只需放切分好的数据就行