relatio
A Python package to extract underlying narrative statements from text.
- "relatio" is Latin for "storytelling" (pronounced reh-LOTT-ee-oh).
- Motivated, described, and applied in "Text Semantics Capture Political and Economic Narratives" (2021).
- Interactive tutorial notebook is here.
- See here for graphical demo of system outputs.
What can this package do?
-
Identify Agent-Verb-Patient (AVP) / Subject-Verb-Object (SVO) triplets in the text
- AVPs are obtained via Semantic Role Labeling.
- SVOs are obtained via Dependency Parsing.
- A concrete example of AVP/SVO extraction:
Original sentence: "Taxes kill jobs and hinder innovation."
Triplets: [('taxes', 'kill', 'jobs'), ('taxes','hinder','innovation')]
-
Group agents and patients into interpretable entities in two ways:
- Supervised classification of entities. Simply provide a list of entities and we will filter the triplets for you (e.g., ['Barack Obama', 'government', ...]).
- Unsupervised classification via clustering of entities. We represent agents and patients as text embeddings and cluster them via KMeans or HDBSCAN. The optimal number of topics is data-driven.
- A concrete example of a cluster:
Interpretable entity: "tax"
Related phrases: ['income tax', 'the tax rates', 'taxation in this country', etc.] -
Visualize clusters and resulting narratives.
We currently support French and English out-of-the-box. You can also provide us with a custom SVO-extraction function for any language supported by spaCy.
Installation
Runs on Linux and macOS (x86 platform) and it requires Python 3.7 (or 3.8) and pip.
It is highly recommended to use a virtual environment (or conda environment) for the installation.
# upgrade pip, wheel and setuptools
python -m pip install -U pip wheel setuptools
# install the package
python -m pip install -U relatio
In case you want to use Jupyter make sure that you have it installed in the current environment.
Quickstart
Please see our hands-on tutorials:
Team
relatio is brought to you by
- Elliott Ash, ETH Zurich
- Germain Gauthier, CREST
- Andrei Plamada, ETH Zurich
- Philine Widmer, University of St.Gallen
with a special thanks for support of ETH Scientific IT Services.
If you are interested in contributing to the project please read the Development Guide.
Disclaimer
Remember that this is a research tool :)
Release files for relatio 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| relatio-0.3.0.tar.gz | 27.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| relatio-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 55.7 kB
Release files / relatio-0.3.0.tar.gz
| Download URL | relatio-0.3.0.tar.gz |
|---|---|
| Size | 27.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
31079e301f12e1a3f0911b3676a70b290d9b6de1c5fb823723aaaf7fe8295a57
|
|
BLAKE2b-256 checksum How to use checksums |
72c11e2b310c584dc5349b64e886777dee5066798a57d492c1ea7a3dc3ffbb28
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.7.15
|
Release files / relatio-0.3.0-py3-none-any.whl
| Download URL | relatio-0.3.0-py3-none-any.whl |
|---|---|
| Size | 28.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
745d3b6f3735c75f647115d49116f308c9ab0e1d658b2bd5bac101cd4b92b35b
|
|
BLAKE2b-256 checksum How to use checksums |
3bc10b76648b2f6f6bc101110e6eb48d438f6771d585c179cd74bd3026e60d0e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.7.15
|