Kindred is a Python3 package for relation extraction in biomedical texts. Given some training data, it can build a model to identify relations between entities (e.g. drugs, genes, etc) in a sentence.
You can install "kindred" via pip from PyPI
pip install kindred
As of v2, Kindred relies on the Spacy toolkit for parsing. After installing kindred (which also installs spacy), you will need to install a Spacy language model. For instance, the command below installs the English language model::
python -m spacy download en
Check out the tutorial that goes through a simple use case of extracting capital cities from text. More details and the full documentation can be found at readthedocs.
import kindred
trainCorpus = kindred.bionlpst.load('2016-BB3-event-train')
devCorpus = kindred.bionlpst.load('2016-BB3-event-dev')
predictionCorpus = devCorpus.clone()
predictionCorpus.removeRelations()
classifier = kindred.RelationClassifier()
classifier.train(trainCorpus)
classifier.predict(predictionCorpus)
f1score = kindred.evaluate(devCorpus, predictionCorpus, metric='f1score')
corpus = kindred.pubannotation.load('bionlp-st-gro-2013-development')
corpus = kindred.pubtator.load([19894120,19894121])
Kindred can load several formats, including BioNLP Shared Task, JSON, BioC XML and a simple tag format. Check out the file format documentation for example data and code.
It would be wonderful if you could cite the associated paper for this package if used in any academic research.
@article{lever2017painless,
title={Painless {R}elation {E}xtraction with {K}indred},
author={Lever, Jake and Jones, Steven},
journal={BioNLP 2017},
pages={176--183},
year={2017}
}
Contributions are very welcome.
Distributed under the terms of the MIT license, "kindred" is free and open source software
If you encounter any problems, please file an issue along with a detailed description.