A python library that makes AMR parsing, generation and visualization simple.
Alternatives To Amrlib
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
3 months ago1February 27, 201837mitC++
A GraphQL query parser in C++ with C and C++ APIs
146 years ago5March 24, 201516apache-2.0Objective-C
Objective-C Tokenizer and Parser Generator. Supports Grammars.
Vscode Antlr4343
2 months ago35mitANTLR
ANTLR4 language support for Visual Studio Code
Warnings Ng Plugin325
10 days ago11mitJava
Jenkins Warnings Plugin - Next Generation
Configurate295922 days ago8August 17, 202126apache-2.0Java
A simple configuration library for Java applications providing a node structure, a variety of formats, and tools for transformation
Amrlib16125 months ago13March 08, 20224mitPython
A python library that makes AMR parsing, generation and visualization simple.
Ldaptor1429124 days ago10February 28, 202140mitPython
LDAP server, client and utilities, using Twisted Python
2 years ago19mitC#
A second-generation parser for the .NET Core command line tools
2 years ago7Python
PyTorch Implementation for Unsupervised Person Image Generation with Semantic Parsing Transformation
Codegenerationutils915325 months ago13August 29, 20221mitPHP
A set of code generator utilities built on top of PHP-Parsers that ease its use when combined with Reflection
Alternatives To Amrlib
Select To Compare

Alternative Project Comparisons


A python library that makes AMR parsing, generation and visualization simple.

For the latest documentation, see ReadTheDocs.

!! Note: The models must be downloaded and installed separately. See the Installation Instructions.


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 and Spans to AMR graphs.
  • Sentence to Graph alignment routines
    • FAA_Aligner (Fast_Align Algorithm), based on the ISI aligner code detailed in this paper.
    • RBW_Aligner (Rule Based Word) for simple, single token to single node alignment
  • 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

AMR Models

The system includes different neural-network models for parsing and for generation. !! Note: Models must be downloaded and installed separately. See amrlib-models for all parse and generate model download links.

  • Parse (StoG) model_parse_xfm_bart_large gives an 83.7 SMATCH score with LDC2020T02.

  • Generation (GtoS) generate_t5wtense gives a 54 BLEU with tense tags or 44 BLEU with un-tagged LDC2020T02.

AMR View

The GUI allows for simple viewing, conversion and plotting of AMR Graphs.


AMR CoReference Resolution

The library does not contain code for AMR co-reference resolution but there is a related project at amr_coref.

The following papers have GitHub projects/code that have similar or better scoring than the above..

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:

To convert graphs to sentences

import amrlib
gtos = amrlib.load_gtos_model()
sents, _ = gtos.generate(graphs)
for sent in sents:

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
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:

For a detailed description see the Spacy API.


For an example of how to use the library to do paraphrasing, see the Paraphrasing section in the docs.


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.

Popular Generation Projects
Popular Parser Projects
Popular Software Development Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Neural Network
Text Generation