All Projects → stanford-oval → genie-toolkit

stanford-oval / genie-toolkit

Licence: Apache-2.0 License
A Generator of Natural Language Parsers for Compositional Virtual Assistants

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language
HTML
75241 projects
Makefile
30231 projects

Projects that are alternatives of or similar to genie-toolkit

Mycroft Core
Mycroft Core, the Mycroft Artificial Intelligence platform.
Stars: ✭ 5,489 (+4673.04%)
Mutual labels:  natural-language, voice-assistant
pixiedust-facebook-analysis
A Jupyter notebook that uses the Watson Visual Recognition and Natural Language Understanding services to enrich Facebook Analytics and uses Cognos Dashboard Embedded to explore and visualize the results in Watson Studio
Stars: ✭ 42 (-63.48%)
Mutual labels:  natural-language
react-taggy
A simple zero-dependency React component for tagging user-defined entities within a block of text.
Stars: ✭ 29 (-74.78%)
Mutual labels:  natural-language
vasisualy
Vasisualy it's a simple Russian voice assistant written on Python for GNU/Linux, Windows and Android.
Stars: ✭ 33 (-71.3%)
Mutual labels:  voice-assistant
VoiceNET.Library
.NET library to easily create Voice Command Control feature.
Stars: ✭ 14 (-87.83%)
Mutual labels:  voice-assistant
VoiceCom
A Simple Voice Command Application powered by Java and Sphinx4 Speech Recognition Library
Stars: ✭ 17 (-85.22%)
Mutual labels:  voice-assistant
retext-spell
plugin to check spelling
Stars: ✭ 53 (-53.91%)
Mutual labels:  natural-language
array-to-sentence
Join all elements of an array and create a human-readable string
Stars: ✭ 32 (-72.17%)
Mutual labels:  natural-language
musicologist
Music advice from a conversational interface powered by Algolia
Stars: ✭ 19 (-83.48%)
Mutual labels:  voice-assistant
bixby
we make your Artweek. we find your Inspiration. 💫
Stars: ✭ 20 (-82.61%)
Mutual labels:  voice-assistant
AshTech-AI Personal Voice Assistant
One great friend in our gadgets 💻📳📱
Stars: ✭ 37 (-67.83%)
Mutual labels:  voice-assistant
apertium-html-tools
Web application providing a fully localised interface for text/website/document translation, analysis and generation powered by Apertium.
Stars: ✭ 36 (-68.7%)
Mutual labels:  natural-language
spokestack-android
Extensible Android mobile voice framework: wakeword, ASR, NLU, and TTS. Easily add voice to any Android app!
Stars: ✭ 52 (-54.78%)
Mutual labels:  voice-assistant
voce-browser
Voice Controlled Chromium Web Browser
Stars: ✭ 34 (-70.43%)
Mutual labels:  voice-assistant
lancaster-stemmer
Lancaster stemming algorithm
Stars: ✭ 22 (-80.87%)
Mutual labels:  natural-language
rita
Website, documentation and examples for RiTa
Stars: ✭ 42 (-63.48%)
Mutual labels:  natural-language
nli-go
Natural Language Interface in GO, a semantic parser and execution engine.
Stars: ✭ 20 (-82.61%)
Mutual labels:  natural-language
porfir
Голосовой ассистент Порфирьевич
Stars: ✭ 23 (-80%)
Mutual labels:  voice-assistant
ultimate-guide-to-voice-assistants
Curation of startups, resources, people, posts etc in the voice-space
Stars: ✭ 55 (-52.17%)
Mutual labels:  voice-assistant
retext-profanities
plugin to check for profane and vulgar wording
Stars: ✭ 34 (-70.43%)
Mutual labels:  natural-language

Genie

Build Status Coverage Status Dependency Status Language grade: JavaScript Discord Discourse status

This repository hosts Genie, a toolkit which allows you to quickly create new semantic parsers that translate from natural language to a formal language of your choice.

Genie was described in the paper:

Genie: A Generator of Natural Language Semantic Parsers for Virtual Assistant Commands
Giovanni Campagna (*), Silei Xu (*), Mehrad Moradshahi, Richard Socher, and Monica S. Lam
In Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2019), Phoenix, AZ, June 2019.

If you use Genie in any academic work, please cite the above paper.

Installation

Genie depends on additional libraries, including the ThingTalk library and the GenieNLP machine learning library. See doc/install.md for details and installation instructions.

License

This package is covered by the Apache 2.0 license. See LICENSE for details. Note that this package depends on several nodejs modules by third-parties, each with their own license. In particular, some modules might have licensing requirements that are more restrictive than Genie's. It is your responsability to comply with Genie's copyright license, as well as all licenses of included dependencies.

Reproducing The Results In Our Papers

To reproduce the machine learning results in Stanford papers that use Genie (including the PLDI 2019 paper and the ACL 2020 paper), please use the associated artifacts, available for download from our website. The artifact includes all the necessary datasets (including ablation and case studies), pretrained models and evaluation scripts. Please follow the instructions in the README file to reproduce individual experiments.

Using Genie

Genie Concepts

Genie is a synthesis-based tool to build dialogue agents. Genie is based on the Genie template language, which succintly defines a space of synthesized sentences. Genie can use the template language to generate a dataset, then sample a subset of sentences to paraphrase using crowdsourcing. Commonly, the template language is paired with a skill definition, entered in a repository like Thingpedia, which defines the APIs available to the dialogue agent.

A Turnkey Solution For Genie+Almond

A all-in-one solution to use Genie to extend ThingTalk with new skills and new templates is provided by almond-cloud. Please refer to its documentation for installation instructions.

After installation, administrators can create new natural language models, trigger automated training and deploy the trained models to any Almond system.

Manual Genie Usage

If one wants to avoid the complexity of setting up a database and web server, it is possible to invoke Genie manually from the command-line, and have it manipulate datasets stored as TSV/CSV files.

A number of tutorials are included in the doc/ folder, describing common Genie usage.

NOTE: Genie assumes all files are UTF-8, and ignores the current POSIX locale (LC_CTYPE and LANG enviornment varialbes). Legacy encodings such as ISO-8859-1 or Big5 are not supported and could cause problems.

Modifying ThingTalk

If you want to also extend ThingTalk (with new syntax or new features) you will need to fork and modify the library, which lives at https://github.com/stanford-oval/thingtalk. After modifying the library, you can use npm link to point the almond-cloud installation to your library. You must make sure that only one copy of the ThingTalk library is loaded (use npm ls thingtalk to check).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].