Simple natural language parsing and semantic grounding
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc
scripts
share
src/dialogs
.gitignore
AUTHORS
CITATION
LICENSE
README.md
RELEASE_NOTES
TODO
setup.py

README.md

Dialogs: A Naive Natural Language Processor

DOI

(c) LAAS-CNRS 2010-2013, EPFL 2013-2015

This module, licensed under the permissive BSD 3-clause, reads on stdin user input in natural language, parse it, call resolution routines when ambiguous concepts are used, and finally generate RDF statements that are an interpretation of the input.

It includes as well a verbalization module that conversely turns RDF statements into a sentence in natural language.

Overview of the Dialogs pipeline

While not strictly required, it is strongly recommanded to use dialogs with a knowledge base that follows the ''KB API'' like minimalKB or oro-server.

You are welcome to reuse this software for your research. Please refer to the CITATION file for proper attribution in scientific works.

Installation

Simply run:

> pip install dialogs

You can also grab the source code of the latest release here.

Usage

You can start to use dialogs immediately. For instance, try:

> dialogs -d -p"What are you doing?"
> dialogs -d -p"I'm playing with you"

The -d flags activates the debug mode, and gives you a complete picture of the different steps: pre-processing, parsing, semantic resolution of the atoms of the sentence, interpretation and verbalization (read the paper to know more about these steps).

Lines displayed in cyan log the interactions of the dialogue module with the knowledge base (queries and knowledge revisions). If no knowledge base is running, most of the semantic resolution attempts will fail, so when asked "what are you doing?", the system answers "I don't know".

If you start dialogs with no options, it will simply read on stdin.

Check dialogs --help for other options.

Common invokation is:

> dialogs -d NAME_OF_THE_SPEAKER

The main test-suite can be started with:

> dialogs_test

Demo

A live demo of the parser alone (not the semantic grounding part) is available online.