@jnv/node-nlp
Version:
Library for NLU (Natural Language Understanding) done in Node.js
210 lines (182 loc) • 9.13 kB
Markdown
# Benchmarking
## Introduction
This benchmark is done following the instructions at https://github.com/Botfuel/benchmark-nlp-2018/blob/master/README.md
3 corpus called `Chatbot`, `Ask Ubuntu` and `Web Applications` as described in the paper http://workshop.colips.org/wochat/@sigdial2017/documents/SIGDIAL22.pdf
The corpus can be found at json files at https://github.com/sebischair/NLU-Evaluation-Corpora
| corpus | num of intents | train | test |
| ---------------- | -------------- | ----- | ---- |
| Chatbot | 2 | 100 | 106 |
| Ask Ubuntu | 5 | 53 | 109 |
| Web Applications | 8 | 30 | 59 |
For `Ask Ubuntu` and `Web Application` corpus, there is a specific `None` intent for sentences that should not be matched with the other intents.
The code using for the benchmark of NLP.js can be found at [`/examples/nlu-benchmark`](https://github.com/axa-group/nlp.js/tree/master/examples/nlu-benchmark)
## Intent classification results
We compute the `f1` score for each corpus and the overall `f1`:
| Platform\Corpus | Chatbot | Ask Ubuntu | Web Applications | Overall |
| ---------------- | ------- | ---------- | ---------------- | ------- |
| NLP.js | 0.99 | 0.94 | 0.80 | 0.93 |
| Watson | 0.97 | 0.92 | 0.83 | 0.92 |
| Botfuel | 0.98 | 0.90 | 0.80 | 0.91 |
| Luis | 0.98 | 0.90 | 0.81 | 0.91 |
| Snips | 0.96 | 0.83 | 0.78 | 0.89 |
| Recast | 0.99 | 0.86 | 0.75 | 0.89 |
| RASA | 0.98 | 0.86 | 0.74 | 0.88 |
| API (DialogFlow) | 0.93 | 0.85 | 0.80 | 0.87 |
<div align="center">
<img src="https://github.com/axa-group/nlp.js/raw/master/screenshots/benchmark.png" width="auto" height="auto"/>
</div>
## Full data by system
### NLP.js
| Corpus | intent | true + | false - | false + | precision | recall | f1 |
| ------- | ------ | ------ | ------- | ------- | --------- | ------ | -- |
| chatbot | FindConnection | 70 | 0 | 1 | 0,986 | 1 | 0,993 |
| chatbot | DepartureTime | 35 | 1 | 0 | 1 | 0,972 | 0,986 |
| askUbuntu | Software Recommendation | 35 | 1 | 4 | 0,897 | 0,972 | 0,933 |
| askUbuntu | None | 3 | 1 | 2 | 0,6 | 0,75 | 0,667 |
| askUbuntu | Shutdown Computer | 14 | 2 | 0 | 1 | 0,875 | 0,933 |
| askUbuntu | Make Update | 37 | 2 | 0 | 1 | 0,949 | 0,974 |
| askUbuntu | Setup Printer | 13 | 0 | 0 | 1 | 1 | 1 |
| webApp | Find Alternative | 16 | 3 | 0 | 1 | 0,842 | 0,914 |
| webApp | Delete Account | 9 | 4 | 1 | 0,9 | 0,692 | 0,783 |
| webApp | Export Data | 2 | 3 | 1 | 0,667 | 0,4 | 0,5 |
| webApp|Sync Accounts|4|0|2|0,667|1|0,8|
|webApp|None|0|0|4|0|
|webApp|Change Password|3|0|3|0,5|1|0,667|
|webApp|Filter Spam|13|1|1|0,929|0,929|0,929|
|webApp|Download Video||0|1|0|0|
|**Total Chatbot**||105|1|1|0,991|0,991|0,991|
|**Total askUbuntu**||102|6|6|0,944|0,944|0,944|
|**Total webApp**||47|12|12|0,797|0,797|0,797|
|**Total**||254|19|19|0,930|0,930|0,930|
### Watson
| Corpus | intent | true + | false - | false + | precision | recall | f1 |
| ------- | ------ | ------ | ------- | ------- | --------- | ------ | -- |
|chatbot|FindConnection|70|1|2|0,972|0,986|0,979|
|chatbot|DepartureTime|33|2|1|0,971|0,943|0,957|
|askUbuntu|Software Recommendation|35|5|3|0,921|0,875|0,897|
|askUbuntu|None|1|4|1|0,5|0,2|0,286|
|askUbuntu|Shutdown Computer|14|0|0|1|1|1|
|askUbuntu|Make Update|37|0|4|0,902|1|0,949|
|askUbuntu|Setup Printer|13|0|1|0,929|1|0,963|
|webApp|Find Alternative|15|1|1|0,938|0,938|0,938|
|webApp|Delete Account|9|1|3|0,75|0,9|0,818|
|webApp|Export Data|2|1|2|0,5|0,667|0,571|
|webApp|Sync Accounts|5|1|0|1|0,833|0,909|
|webApp|None|0|4|1|0|0|
|webApp|Change Password|5|1|0|1|0,833|0,909|
|webApp|Filter Spam|13|1|2|0,867|0,929|0,897|
|webApp|Download Video|0|0|1|0|
|Total Chatbot||103|3|3|0,972|0,972|0,972|
|Total askUbuntu||100|9|9|0,917|0,917|0,917|
|Total webApp||49|10|10|0,831|0,831|0,831|
|Total||252|22|22|0,920|0,920|0,920|
### LUIS
| Corpus | intent | true + | false - | false + | precision | recall | f1 |
| ------- | ------ | ------ | ------- | ------- | --------- | ------ | -- |
|chatbot|FindConnection|70|1|1|0,986|0,986|0,986|
|chatbot|DepartureTime|34|1|1|0,971|0,971|0,971|
|askUbuntu|Software Recommendation|36|4|5|0,878|0,9|0,889|
|askUbuntu|None|0|5|0||0|
|askUbuntu|Shutdown Computer|14|0|0|1|1|1|
|askUbuntu|Make Update|36|1|4|0,9|0,973|0,935|
|askUbuntu|Setup Printer|12|1|2|0,857|0,923|0,889|
|webApp|Find Alternative|14|2|2|0,875|0,875|0,875|
|webApp|Delete Account|8|2|0|1|0,8|0,889|
|webApp|Export Data|3|0|1|0,75|1|0,857|
|webApp|Sync Accounts|5|1|0|1|0,833|0,909|
|webApp|None|3|1|8|0,272|0,75|0,4|
|webApp|Change Password|3|3|0|1|0,5|0,667|
|webApp|Filter Spam|12|2|0|1|0,857|0,923|
|webApp|Download Video|0|0|0|
|Total Chatbot||104|2|2|0,981|0,981|0,981|
|Total askUbuntu||98|11|11|0,900|0,900|0,900|
|Total webApp||48|11|11|0,814|0,814|0,814|
|Total||250|24|24|0,912|0,912|0,9124|
### Botfuel
| Corpus | intent | true + | false - | false + | precision | recall | f1 |
| ------- | ------ | ------ | ------- | ------- | --------- | ------ | -- |
|chatbot|FindConnection|69|2|0|1|0,972|0,986|
|chatbot|DepartureTime|35|0|2|0,946|1|0,972|
|askUbuntu|Software Recommendation|33|7|1|0,971|0,825|0,892|
|askUbuntu|None|1|4|0|1|0,2|0,333|
|askUbuntu|Shutdown Computer|14|0|2|0,875|1|0,933|
|askUbuntu|Make Update|37|0|6|0,860|1|0,925|
|askUbuntu|Setup Printer|12|1|2|0,857|0,923|0,889|
|webApp|Find Alternative|16|0|4|0,8|1|0,889|
|webApp|Delete Account|9|1|3|0,75|0,9|0,818|
|webApp|Export Data|2|1|2|0,5|0,667|0,571|
|webApp|Sync Accounts|4|2|0|1|0,667|0,8|
|webApp|None|0|4|0||0|
|webApp|Change Password|4|2|1|0,8|0,667|0,727|
|webApp|Filter Spam|12|2|1|0,923|0,857|0,889|
|webApp|Download Video|0|0|1|0|
|Total Chatbot||104|2|2|0,981|0,981|0,981|
|Total askUbuntu||97|12|11|0,898|0,890|0,894|
|Total webApp||47|12|12|0,797|0,797|0,797|
|Total||248|26|25|0,908|0,905|0,907|
### Recast
| Corpus | intent | true + | false - | false + | precision | recall | f1 |
| ------- | ------ | ------ | ------- | ------- | --------- | ------ | -- |
|chatbot|FindConnection|70|1|0|1|0,986|0,993|
|chatbot|DepartureTime|35|0|1|0,972|1|0,986|
|askUbuntu|Software Recommendation|29|11|1|0,967|0,725|0,829|
|askUbuntu|None|1|4|0|1|0,2|0,333|
|askUbuntu|Shutdown Computer|14|0|6|0,7|1|0,824|
|askUbuntu|Make Update|37|0|7|0,841|1|0,914|
|askUbuntu|Setup Printer|13|0|1|0,929|1|0,963|
|webApp|Find Alternative|15|1|3|0,833|0,938|0,882|
|webApp|Delete Account|9|1|5|0,643|0,9|0,75|
|webApp|Export Data|2|1|4|0,333|0,667|0,444|
|webApp|Sync Accounts|3|3|0|1|0,5|0,667|
|webApp|None|1|3|1||0,25|
|webApp|Change Password|4|2|1|0,8|0,667|0,727|
|webApp|Filter Spam|10|4|1|0,909|0,714|0,8|
|webApp|Download Video|0|0|0|
|Total Chatbot||105|1|1|0,991|0,991|0,991|
|Total askUbuntu||94|15|15|0,862|0,862|0,862|
|Total webApp||44|15|15|0,746|0,746|0,746|
|Total||243|31|31|0,887|0,887|0,887|
### RASA
| Corpus | intent | true + | false - | false + | precision | recall | f1 |
| ------- | ------ | ------ | ------- | ------- | --------- | ------ | -- |
|chatbot|FindConnection|70|1|1|0,986|0,986|0,986|
|chatbot|DepartureTime|34|1|1|0,971|0,971|0,971|
|askUbuntu|Software Recommendation|33|7|4|0,892|0,825|0,857|
|askUbuntu|None|0|5|1|0|0|
|askUbuntu|Shutdown Computer|14|0|6|0,7|1|0,824|
|askUbuntu|Make Update|34|3|2|0,944|0,919|0,932|
|askUbuntu|Setup Printer|13|0|2|0,867|1|0,929|
|webApp|Find Alternative|15|1|8|0,652|0,9375|0,769|
|webApp|Delete Account|9|1|5|0,643|0,9|0,75|
|webApp|Export Data|0|3|0||0|
|webApp|Sync Accounts|3|3|0|1|0,5|0,667|
|webApp|None|0|4|1|0|0|
|webApp|Change Password|4|2|0|1|0,667|0,8|
|webApp|Filter Spam|13|1|0|1|0,929|0,963|
|webApp|Download Video|0|0|1|0|
|Total Chatbot||104|2|2|0,981|0,981|0,981|
|Total askUbuntu||94|15|15|0,862|0,862|0,862|
|Total webApp||44|15|15|0,746|0,746|0,746|
|Total||242|32|32|0,883|0,883|0,883|
### DialogFlow
| Corpus | intent | true + | false - | false + | precision | recall | f1 |
| ------- | ------ | ------ | ------- | ------- | --------- | ------ | -- |
|chatbot|FindConnection|60|11|0|1|0,845|0,916|
|chatbot|DepartureTime|35|0|4|0,897|1|0,946|
|askUbuntu|Software Recommendation|28|12|2|0,933|0,7|0,8|
|askUbuntu|None|2|3|8|0,2|0,4|0,267|
|askUbuntu|Shutdown Computer|14|0|2|0,875|1|0,933|
|askUbuntu|Make Update|36|1|3|0,923|0,973|0,947|
|askUbuntu|Setup Printer|13|0|1|0,929|1|0,963|
|webApp|Find Alternative|16|0|2|0,889|1|0,941|
|webApp|Delete Account|10|0|2|0,833|1|0,909|
|webApp|Export Data|1|2|2|0,333|0,333|0,333|
|webApp|Sync Accounts|4|2|0|1|0,667|0,8|
|webApp|None|2|2|1|0,667|0,5|0,571|
|webApp|Change Password|4|2|1|0,8|0,667|0,727|
|webApp|Filter Spam|10|4|3|0,769|0,714|0,741|
|webApp|Download Video|0|0|0|
|Total Chatbot||95|11|4|0,960|0,896|0,927|
|Total askUbuntu||93|16|16|0,853|0,853|0,853|
|Total webApp||47|12|11|0,810|0,797|0,803|
|Total||235|39|31|0,883|0,858|0,870|