A python library that makes AMR parsing, generation and visualization simple.
Project description
amrlib
A python library that makes AMR parsing, generation and visualization simple.
About
amrlib is a python module designed to make processing for Abstract Meaning Representation (AMR) simple by providing the following functions
- Sentence to Graph (StoG) parsing to create AMR graphs from English sentences.
- Graph to Sentence (GtoS) generation for turning AMR graphs into English sentences.
- A QT based GUI to facilitate conversion of sentences to graphs and back to sentences
- Methods to plot AMR graphs in both the GUI and as library functions
- Training and test code for both the StoG and GtoS models.
- A SpaCy extension that allows direct conversion of
SpaCy
Docs
andSpans
to AMR graphs. - Rule Based Word Alignment of tokens to graph nodes
- An evaluation metric API including including...
- Smatch (multiprocessed with enhanced/detailed scores) for graph parsing
- BLEU for sentence generation
- Alignment scoring metrics detailing precision/recall
- Sentence paraphrasing - experimental
AMR Models
The system includes different neural-network models for parsing and for generation.
-
Parse (StoG) model parse_t5 gives 81 SMATCH score with LDC2020T02. This model uses the pretrained HuggingFace T5 transformer model to convert sentences to graph-encoded sequences which are then deserialized into an AMR graph.
-
Parse (StoG) model parse_gsii gives 77 SMATCH score with LDC2020T02. This model comes from jcyk/AMR-gs, the details of which can be found in this paper. The version of the model used here eliminates much of the data abstraction (aka anonymization) used in the original code
-
Generation (GtoS) generate_t5wtense gives a 54 BLEU with tense tags or 44 BLEU with un-tagged LDC2020T02. Similar to parse_t5, the model takes advantage of the pretrained HuggingFace T5 transformer. Details on using this type of model for generation can be found in this paper. The model is fine-tuned to translate AMR graphs to English sentences.
-
Generation (GtoS) generate_t5 gives a 43 BLEU. This model is deprecated in favor of the above model "with tense".
For more information on the models see their descriptions in ReadTheDocs/Models.
Documentation
For the latest documentation, see ReadTheDocs.
AMR View
The GUI allows for simple viewing, conversion and plotting of AMR Graphs.
Requirements and Installation
The project was built and tested under Python 3 and Ubuntu but should run on any Linux, Windows, Mac, etc.. system.
See Installation Instructions for details on setup.
Library Usage
To convert sentences to graphs
import amrlib
stog = amrlib.load_stog_model()
graphs = stog.parse_sents(['This is a test of the system.', 'This is a second sentence.'])
for graph in graphs:
print(graph)
To convert graphs to sentences
import amrlib
gtos = amrlib.load_gtos_model()
sents, _ = gtos.generate(graphs)
for sent in sents:
print(sent)
For a detailed description see the Model API.
Usage as a Spacy Extension
To use as an extension, you need spaCy version 2.0 or later. To setup the extension and use it do the following
import amrlib
import spacy
amrlib.setup_spacy_extension()
nlp = spacy.load('en_core_web_sm')
doc = nlp('This is a test of the SpaCy extension. The test has multiple sentences.')
graphs = doc._.to_amr()
for graph in graphs:
print(graph)
For a detailed description see the Spacy API.
Paraphrasing
For an explanation of how to use the library to do paraphrasing, see the Paraphrasing section in the docs.
Issues
If you find a bug, please report it on the GitHub issues list. Additionally, if you have feature requests or questions, feel free to post there as well. I'm happy to consider suggestions and Pull Requests to enhance the functionality and usability of the module.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file amrlib-0.4.0.tar.gz
.
File metadata
- Download URL: amrlib-0.4.0.tar.gz
- Upload date:
- Size: 78.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2caff2770943f138d8787c9e4534e18755bc2a0b000cc22d958ccc015cbf241 |
|
MD5 | 93924c57b72a265cf640a653e31e2256 |
|
BLAKE2b-256 | a8c151b747220a955898fd9eae148488c11623fa90f9450d3b7ad7b75e4f47a9 |
File details
Details for the file amrlib-0.4.0-py3-none-any.whl
.
File metadata
- Download URL: amrlib-0.4.0-py3-none-any.whl
- Upload date:
- Size: 98.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0ffd753b50ba036a6bef607369a41bf30ffd5ebf60a8b943543ba65356053bc1 |
|
MD5 | 148416b661ac017c77e7fd30d191e92b |
|
BLAKE2b-256 | 4dd4bc285fcd997ba8d11d5cfb7280fcfafe5f272953ddd64ea535cc1a0a93a8 |