رمز الورق Schema-adaptable Knowledge Graph Construction .
تم قبول عملنا في مؤتمر نتائج EMNLP2023.
لتشغيل الرمز ، تحتاج إلى تثبيت المتطلبات التالية:
conda create -n adakgc python=3.8
pip install torch==1.8.0+cu111 -f https://download.pytorch.org/whl/torch_stable.html
pip install -r requirements.txt
يستخدم جزء Tokenizer الخاص بنا UIE ، والآخرون يستخدمون T5 ، لذلك هو ملف مختلط. يتم توفير رابط التنزيل هنا ، يرجى التأكد من استخدام هذا النموذج. HF_MODELS/MIX
لمزيد من المعلومات حول بناء مجموعة البيانات ، راجع بناء البيانات.
يمكنك العثور على مجموعة البيانات عبر رابط Google Drive التالي.
مجموعة البيانات ACE05 ، قليلة ، NYT
mkdir hf_models
cd hf_models
git lfs install
git clone https : // huggingface . co / google / t5 - v1_1 - base
cd ..
mkdir output # */AdaKGC/output # Current path: */AdaKGC
mode=H
data_name=Few-NERD
task=entity
device=0
ratio=0.8
bash scripts/fine_prompt.bash --model=hf_models/mix --data=data/ ${data_name} _ ${mode} /iter_1 --output=output/ ${data_name} _ ${mode} _ ${ratio} --config=config/prompt_conf/Few-NERD.ini --device= ${device} --negative_ratio= ${ratio} --record2=data/ ${data_name} _ ${mode} /iter_7/record.schema --use_prompt=True --init_prompt=True
model : اسم أو مسار النموذج المسبق.
data : المسار إلى مجموعة البيانات.
output : مسار نقطة التفتيش الدقيقة المحفوظة ، ومسار الإخراج النهائي الذي تم إنشاؤه تلقائيًا `ADAKGC/Output/ACE05_EVENT_H_E30_LR1E-4_B14_N0.
config : ملف التكوين الافتراضي ، في دليل config/prompt_conf ، يكون تكوين كل مهمة مختلفًا.
mode : وضع مجموعة البيانات ( H ، V ، M ، أو R ).
device : CUDA_VISIBLE_DEVICES.
batch : حجم الدُفعة.
(انظر برامج النصوص وملفات بيثون للحصول على معلمات سطر الأوامر التفصيلية)
mode=H
data_name=NYT
task=relation
device=0
ratio=0.8
bash scripts/fine_prompt.bash --model=hf_models/mix --data=data/ ${data_name} _ ${mode} /iter_1 --output=output/ ${data_name} _ ${mode} _ ${ratio} --config=config/prompt_conf/NYT.ini --device= ${device} --negative_ratio= ${ratio} --record2=data/ ${data_name} _ ${mode} /iter_7/record.schema --use_prompt=True --init_prompt=Truemode=H
data_name=ace05_event
task=event
device=0
ratio=0.8
bash scripts/fine_prompt.bash --model=hf_models/mix --data=data/ ${data_name} _ ${mode} /iter_1 --output=output/ ${data_name} _ ${mode} _ ${ratio} --config=config/prompt_conf/ace05_event.ini --device= ${device} --negative_ratio= ${ratio} --record2=data/ ${data_name} _ ${mode} /iter_7/record.schema --use_prompt=True --init_prompt=Truedata/ace05_event_H/iter_1 ) mode=H
data_name=ace05_event
task=event
device=0
ratio=0.8
python3 inference.py --dataname=data/ ${data_name} / ${data_name} _ ${mode} /iter_2 --t5_path=hf_models/mix --model=output/ ${data_name} _ ${mode} _ ${ratio} --task= ${task} --cuda= ${device} --mode= ${mode} --use_prompt --use_ssi --prompt_len=80 --prompt_dim=512 datasetname : يتم التنبؤ بالمسار إلى مجموعة البيانات ( ace05_event ، NYT أو Few-NERD ).
model : مسار النموذج الذي تم الحصول عليه بعد التدريب السابق (الإخراج في مرحلة التدريب).
t5_path : نموذج T5 (نموذج في مرحلة التدريب).
task : نوع المهمة (الكيان ، العلاقة ، الحدث).
cuda : CUDA_VISIBLE_DEVICES.
mode : وضع مجموعة البيانات ( H ، V ، M ، أو R ).
يجب أن تكون use_ssi ، use_prompt ، prompt_len ، prompt_dim متسقة مع وقت التدريب. يمكنك عرضه وتعيينه في تكوين ملف التكوين المقابل/prester_conf/ace05_event.ini.
data/iter_1/ace05_event_H ~ data/iter _7/ace05_event_H ) mode=H
data_name=ace05_event
task=event
device=0
ratio=0.8
python3 inference_mul.py --dataname=data/ ${data_name} / ${data_name} _ ${mode} --t5_path=hf_models/mix --model=output/ ${data_name} _ ${mode} _ ${ratio} --task= ${task} --cuda= ${device} --mode= ${mode} --use_prompt --use_ssi --prompt_len=80 --prompt_dim=512 يجب أن تكون use_ssi ، use_prompt ، prompt_len ، prompt_dim متسقة مع التدريب.
العملية الكاملة ، بما في ذلك الضبط والتفكير الدقيق (في "النصوص/Run.bash"):
mode=H
data_name=ace05_event
task=event
device=0
ratio=0.8
bash scripts/run_prompt.bash --model=hf_models/mix --data=data/ ${data_name} _ ${mode} /iter_1 --output=output/ ${data_name} _ ${mode} _ ${ratio} --config=config/prompt_conf/ace05_event.ini --device= ${device} --negative_ratio= ${ratio} --record2=data/ ${data_name} _ ${mode} /iter_7/record.schema --use_prompt=True --init_prompt=True
python3 inference_mul.py --dataname=data/ ${data_name} / ${data_name} _ ${mode} --t5_path=hf_models/mix --model=output/ ${data_name} _ ${mode} _ ${ratio} --task= ${task} --cuda= ${device} --mode= ${mode} --use_prompt --use_ssi --prompt_len=80 --prompt_dim=512| فِهرِس | تعريف | F1 |
|---|---|---|
| ent- (p/r/f1) | كيان Micro-F1 درجة (نوع الكيان ، امتداد الكيان) | بقعة F1 |
| Rel-Strict- (P/R/F1) | درجات Micro-F1 لأوضاع العلاقة الصارمة (نوع العلاقة ، span arg1 ، نوع Arg1 ، Arg2 span ، نوع Arg2) | يستخدم ASOC-F1 للعلاقات ، يتم استخدام spot-F1 للكيانات |
| evt-trigger- (p/r/f1) | درجة Micro-F1 من كلمة Trigger Word (نوع الحدث ، فترة الزناد) | بقعة F1 |
| evt-Role- (P/R/F1) | درجة Micro-F1 لأدوار الأحداث (نوع الحدث ، دور Arg ، Arg Span) | ASOC-F1 |
يشير بشكل عام F1 إلى مجموع Spot-F1 و ASOC-F1 ، والذي قد يتجاوز 100.
يتم استعارة جزء من رمزنا من UIE و UnifiedSkg ، شكرًا جزيلاً.
إذا كنت تستخدم أو تمديد عملنا ، فيرجى الاستشهاد بالورقة على النحو التالي:
@article { DBLP:journals/corr/abs-2305-08703 ,
author = { Hongbin Ye and
Honghao Gui and
Xin Xu and
Huajun Chen and
Ningyu Zhang } ,
title = { Schema-adaptable Knowledge Graph Construction } ,
journal = { CoRR } ,
volume = { abs/2305.08703 } ,
year = { 2023 } ,
url = { https://doi.org/10.48550/arXiv.2305.08703 } ,
doi = { 10.48550/arXiv.2305.08703 } ,
eprinttype = { arXiv } ,
eprint = { 2305.08703 } ,
timestamp = { Wed, 17 May 2023 15:47:36 +0200 } ,
biburl = { https://dblp.org/rec/journals/corr/abs-2305-08703.bib } ,
bibsource = { dblp computer science bibliography, https://dblp.org }
}