DensePhrases/examples/entity-linking at main · princeton-nlp/DensePhrases (original) (raw)
Pre-trained Models
Model | Query-FT. & Eval | R-Precision | Description |
---|---|---|---|
densephrases-multi-query-ay2 | AIDA CoNLL-YAGO (AY2) | 61.6 | Result from eval.ai |
densephrases-multi-query-kilt-multi | Multiple / AY2 | 68.4 | Trained on multiple KILT tasks |
How to Use
from densephrases import DensePhrases
Load densephraes-multi-query-ay2
model = DensePhrases( ... load_dir='princeton-nlp/densephrases-multi-query-ay2', ... dump_dir='/path/to/densephrases-multi_wiki-20181220/dump', ... )
Entities need to be surrounded by [START_ENT] and [END_ENT] tags
model.search('West Indian all-rounder Phil Simmons took four for 38 on Friday as Leicestershire beat [START_ENT] Somerset [END_ENT] by an innings and 39 runs', retrieval_unit='document', top_k=1) ['Somerset County Cricket Club']
model.search('[START_ENT] Security Council [END_ENT] members expressed concern on Thursday', retrieval_unit='document', top_k=1) ['United Nations Security Council']
Evaluation
import os
Evaluate loaded DensePhrases on AIDA CoNLL-YAGO (KILT)
model.evaluate( ... test_path=os.path.join(os.environ['DATA_DIR'], 'kilt/ay2/aidayago2-dev-kilt_open.json'), ... is_kilt=True, title2wikiid_path=os.path.join(os.environ['DATA_DIR'], 'wikidump/title2wikiid.json'), ... kilt_gold_path=os.path.join(os.environ['DATA_DIR'], 'kilt/ay2/aidayago2-dev-kilt.jsonl'), agg_strat='opt2', max_query_length=384 ... )
For test accuracy, use aidayago2-test-kilt_open.json
instead and submit the prediction file (saved as $SAVE_DIR/densephrases-multi-query-ay2/pred-kilt/*.jsonl
) to eval.ai. For WNED-WIKI and WNED-CWEB, follow the same process with files specified in the wned-kilt-data
and cweb-kilt-data
targets in Makefile. You can also evaluate the model with Makefile eval-index
target by simply chaning the dependency.