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 |
||
developped 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 and Italian |
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