Yoctol Natural Language Understanding SDK
Project description
# yoctol-nlu-py
[![Build Status](https://travis-ci.org/Yoctol/yoctol-nlu-py.svg?branch=master)](https://travis-ci.org/Yoctol/yoctol-nlu-py)
[![PyPI version](https://badge.fury.io/py/yoctol-nlu.svg)](https://badge.fury.io/py/yoctol-nlu)
Yoctol Natural Language Understanding SDK for python.
## Install
Use Python3
```
pip install yoctol-nlu
```
## Usage
### Intent Classifier Service
#### Fetch Model & One Line Prediction
```python
from ynlu import NLUClient
client = NLUClient(token='YOUR_TOKEN_HERE')
# Get all possible clf ids
ids = client.get_all_available_clf_ids()
print(ids)
# Get model by id
model = client.get_model_by_id(ids[0])
# Predict
intent_prediction, entity_prediction = model.predict('飲料喝到飽')
# Also could get the clf by clf's name
# Get all possible clf names
names = client.get_all_available_clf_names()
print(names)
# Get model by name
model = client.get_model_by_name(names[0])
# Predict
intent_prediction, entity_prediction = model.predict('飲料喝到飽')
```
#### Evaluations for Intent
```python
from ynlu import NLUClient
from ynlu.sdk.evaluation import {
# Accuracy
intent_accuracy_score_with_threshold,
# Precision
intent_precision_score_with_threshold,
# Recall
intent_recall_score_with_threshold,
}
client = NLUClient(token='YOUR_TOKEN_HERE')
model = client.get_model_by_id('TARGET_MODEL_ID_HERE')
test_data = [
'This is a line ',
'for testing the NLUClient ',
'and evaluating the prediction ',
'from the trained model. ',
]
intent_predictions, entities_predictions = model.batch_predict(test_data)
# Pure Accuracy
print(intent_accuracy_score_with_threshold(
intent_predictions=intent_predictions,
y_trues=test_data,
threshold=0.,
)
)
# Accuracy with threshold 0.5
print(intent_accuracy_score_with_threshold(
intent_predictions=intent_predictions,
y_trues=test_data,
threshold=0.5,
)
)
```
Check out the tutorials for more examples.
## Documentation
We rely on Sphinx for user and API documentation.
You can run just make to do rebuild the API stubs and then build the HTML documentation.
```
cd docs
make # equivalent to `make apidoc && make html`
```
To only build the html pages:
```
cd docs
make html
```
To just re-generate the API reference.
```
cd docs
make apidoc # calls sphinx-apidoc
```
Run `make help` for a full list of build options.
[![Build Status](https://travis-ci.org/Yoctol/yoctol-nlu-py.svg?branch=master)](https://travis-ci.org/Yoctol/yoctol-nlu-py)
[![PyPI version](https://badge.fury.io/py/yoctol-nlu.svg)](https://badge.fury.io/py/yoctol-nlu)
Yoctol Natural Language Understanding SDK for python.
## Install
Use Python3
```
pip install yoctol-nlu
```
## Usage
### Intent Classifier Service
#### Fetch Model & One Line Prediction
```python
from ynlu import NLUClient
client = NLUClient(token='YOUR_TOKEN_HERE')
# Get all possible clf ids
ids = client.get_all_available_clf_ids()
print(ids)
# Get model by id
model = client.get_model_by_id(ids[0])
# Predict
intent_prediction, entity_prediction = model.predict('飲料喝到飽')
# Also could get the clf by clf's name
# Get all possible clf names
names = client.get_all_available_clf_names()
print(names)
# Get model by name
model = client.get_model_by_name(names[0])
# Predict
intent_prediction, entity_prediction = model.predict('飲料喝到飽')
```
#### Evaluations for Intent
```python
from ynlu import NLUClient
from ynlu.sdk.evaluation import {
# Accuracy
intent_accuracy_score_with_threshold,
# Precision
intent_precision_score_with_threshold,
# Recall
intent_recall_score_with_threshold,
}
client = NLUClient(token='YOUR_TOKEN_HERE')
model = client.get_model_by_id('TARGET_MODEL_ID_HERE')
test_data = [
'This is a line ',
'for testing the NLUClient ',
'and evaluating the prediction ',
'from the trained model. ',
]
intent_predictions, entities_predictions = model.batch_predict(test_data)
# Pure Accuracy
print(intent_accuracy_score_with_threshold(
intent_predictions=intent_predictions,
y_trues=test_data,
threshold=0.,
)
)
# Accuracy with threshold 0.5
print(intent_accuracy_score_with_threshold(
intent_predictions=intent_predictions,
y_trues=test_data,
threshold=0.5,
)
)
```
Check out the tutorials for more examples.
## Documentation
We rely on Sphinx for user and API documentation.
You can run just make to do rebuild the API stubs and then build the HTML documentation.
```
cd docs
make # equivalent to `make apidoc && make html`
```
To only build the html pages:
```
cd docs
make html
```
To just re-generate the API reference.
```
cd docs
make apidoc # calls sphinx-apidoc
```
Run `make help` for a full list of build options.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
File details
Details for the file yoctol_nlu-0.7.1-py3-none-any.whl
.
File metadata
- Download URL: yoctol_nlu-0.7.1-py3-none-any.whl
- Upload date:
- Size: 38.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc3fd4e0b8d7afbfa715e2a126a507b5a79827eb0325f40556e6775165f05649 |
|
MD5 | e0577b9841f2a34e834b9237bb9207eb |
|
BLAKE2b-256 | 15b5fbbdd2255569165cae5334cee9919e1aec6fb17a4529e99b9c95fb10bd88 |