Created by: adrienball
What is this Python project?
Snips NLU is a natural language understanding library dedicated to Intent Parsing and Entity Extraction. It is based on machine learning and makes use of Logistic Regression and Conditional Random Fields.
Consider the following sentence:
"What will be the weather in paris at 9pm?"
After proper training, the Snips NLU library allows to extract structured data such as:
{
"intent": {
"intentName": "searchWeatherForecast",
"probability": 0.95
},
"slots": [
{
"value": "paris",
"entity": "locality",
"slotName": "forecast_locality"
},
{
"value": {
"kind": "InstantTime",
"value": "2018-02-08 20:00:00 +00:00"
},
"entity": "snips/datetime",
"slotName": "forecast_start_datetime"
}
]
}
What's the difference between this Python project and similar ones?
- The purpose of Snips NLU is more high-level than libraries such as spaCy or NLTK and can be directly used to build chatbots for instance.
- Snips NLU has been designed to run very fast, with a very low memory footprint, while achieving very good prediction accuracy (cf this blogpost).
- This library offers an interface with
snips-nlu-rs
, its Rust equivalent for inference only. It allows to persist the NLU pipeline trained with the python code, and load it with the rust code to perform inference. This offers a great portability.
Anyone who agrees with this pull request could vote for it by adding a