RosaeNLG compared to other NLG software
CoreNLG
CoreNLG is a modern open-source Python NLG library published by Société Générale.
| Characteristic | CoreNLG | RosaeNLG | 
|---|---|---|
main  | 
||
developed in  | 
Python  | 
JavaScript & TypeScript  | 
language for data prep and glue  | 
Python  | 
TypeScript or JavaScript  | 
language for text generation  | 
Python code  | 
Pug templates  | 
output languages  | 
English and French  | 
full support with linguistic ressources for French, English, German, Italian and Spanish  | 
open-souce  | 
yes (Apache 2.0)  | 
yes (MIT)  | 
client side execution (browser)  | 
no  | 
yes  | 
standard / templating features  | 
||
if / else, switch / case  | 
yes (pure Python)  | 
yes (Pug or JavaScript)  | 
textual functions  | 
yes (Python functions)  | 
yes (Pug mixins)  | 
template based  | 
no (pure Python)  | 
yes (based on Pug)  | 
NLG features  | 
||
enumerations  | 
yes  | 
yes  | 
capitalization, punctuation, contractions  | 
yes  | 
yes  | 
dates, numbers  | 
yes  | 
yes  | 
anaphora  | 
basic using synonyms  | 
yes  | 
agreement on verbs, adjectives and words  | 
no (has to be done manually)  | 
yes (rules & linguistic ressources)  | 
synonyms with modes  | 
yes (random + draw without replacement)  | 
yes (random + draw without replacement + sequence)  | 
synonyms global optimization  | 
no  | 
yes (per section, generates multiple alternatives and chooses the best one)  | 
ability to spot empty elements  | 
yes  | 
yes  | 
safely record what was said  | 
yes  | 
yes  | 
packaging  | 
||
as a library  | 
? (to be checked, cannot be found on PyPI)  | 
yes (npm)  | 
command-line interface  | 
no  | 
yes  | 
Docker image  | 
no  | 
yes (distroless)  | 
In summary CoreNLG is just perfect:
- 
if you use Python
 - 
if you do not need sophisticated linguistic features likes anaphora, verbs, words and ajectives agreements
 - 
if you are not afraid of maintaining texts templates as Python code
 
RosaeNLG can be better:
- 
if you want more readable templates
 - 
if your NLG project requires linguistic resources
 - 
if you use Javascript or TypeScript
 - 
if you wish to make browser side rendering
 
xSpin
Spin generators are a category of tools that are able to generate a huge quantity of different texts for a same dataset. In general, you define a template with plenty of different paths, and the spinner will randomly go through the template and generate different texts. Spin generators are generally considered as basic pre-NLG software and are quite popular among web redactors. They are generally easier to use than NLG engines.
xSpin is a modern SaaS Spin generator with a visual design tool, and more advanced features than what is generally excepted from a Spin generator.
This comparison has been made in collaboration with Sylvain Deauré, the author of xSpin.
| Characteristic | xSpin | RosaeNLG | 
|---|---|---|
Licence  | 
proprietary licence  | 
open-source (MIT)  | 
Pricing  | 
monthly cost €32 excl. tax.  | 
free  | 
Hosting  | 
SaaS only  | 
you can run anywhere, on your laptop, your server or on the cloud, but no SaaS as of today  | 
Integration  | 
API + WordPress plugin + RSS feeds as an input  | 
|
Template definition  | 
nice visual interface, with good overview of structure  | 
templating language based on Pug, no visual editor  | 
Share / reuse elements  | 
yes with modules  | 
yes with mixins  | 
Conditional blocks (if/then/else)  | 
yes  | 
yes  | 
Enumerations  | 
yes (with shuffle ability too)  | 
yes  | 
Linguistic features  | 
no agreements on verbs, words and adjectives  | 
linguistic resources for supported languages  | 
Punctuation management  | 
no  | 
|
Contractions  | 
yes (automatic capitalization and contractions)  | 
|
Synonyms with modes  | 
yes (random + specific algo to maximize the distance between outputs)  | 
yes (random + draw without replacement + sequence)  | 
Synonyms global optimization  | 
yes with Qualispin (add on service)  | 
yes (per section, generates multiple alternatives and chooses the best one)  | 
Ability to spot empty elements  | 
yes to a certain extend  | 
yes  | 
Safely record what was said  | 
to a certain extend using variables  | 
yes  | 
In summary xSpin is just perfect:
- 
if you do not wish to code and need a visual interface to design your templates
 - 
if you do not need linguistic features likes anaphora, verbs, words and ajectives agreements
 
RosaeNLG is be better:
- 
if you are ok to write some code
 - 
if you want to use standard developer tools like VSCode, Git versioning, CI, automated testing etc.
 - 
if your NLG project requires linguistic resources