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