graphlet
graphlet copied to clipboard
Create `graphlet.nlp.entity_linking` module that uses BLINK on your KG / dataset
Use of graphlet.nlp.ie
The entities and their relations that form the input to this module will be extracted using graphlet.nlp.ie
- see #11 and #1.
Integration with BLINK
BLINK by Facebook Research which you implements the ELQ architecture uses a joint embedding
In a nutshell, BLINK uses a two stages approach for entity linking, based on fine-tuned BERT architectures. In the first stage, BLINK performs retrieval in a dense space defined by a bi-encoder that independently embeds the mention context and the entity descriptions. Each candidate is then examined more carefully with a cross-encoder, that concatenates the mention and entity text. BLINK achieves state-of-the-art results on multiple datasets.
BLINK can be used interactively, which is neat. Adapting BLINK to any given ontology is not a simple task.
BLINK can use FAISS vector search engine or the more scalable distributed-faiss, which we have used in the past for blocking for entity resolution.
Using BLINK with an arbitrary KG and dataset
The work in building this ticket would be using BLINK with the knowledge graph defined using the graphlet.etl
NodeSchema
/ EdgeSchema
sub-classes and your own corpus of documents.