计算nlu度量的python包
snips-nlu-metrics的Python项目详细描述
此工具是用于计算cross-validation和 train/testNLU解析管道(如Snips NLU管道)上的度量。
其目的是帮助评估和迭代测试的意图解析 管道。
安装
$ pip install snips_nlu_metrics
NLU度量API
snips nlu metrics api包含以下函数:
- compute_train_test_metrics计算train/test度量
- compute_cross_val_metrics计算cross-validation度量
metrics输出(json)提供有关以下内容的详细信息:
- confusion matrix
- precision, recall and f1 scores意向分类
- 实体提取的精确性、召回率和f1得分
- 分析错误
数据
一些可用于计算度量的示例数据集是可用的 here。或者,您可以通过以下方法创建自己的数据集: 使用snips-nlu'sdataset generation tool或继续 Snips console。
示例
snips nlu metrics库可用于满足以下条件的任何nlu管道 Engineapi:
frombuiltinsimportobjectclassEngine(object):deffit(self,dataset):# Perform training ...returnselfdefparse(self,text):# extract intent and slots ...return{"input":text,"intent":{"intentName":intent_name,"probability":probability},"slots":slots}
SNIPS NLU发动机
此库可用于对nlu解决方案(如Snips NLU)进行基准测试。到 安装snips-nlupython库,并获取 英语,运行以下命令:
$ pip install snips-nlu $ snips-nlu download en
然后,您可以使用度量来计算snips-nlu管道的度量 API如下:
fromsnips_nluimportSnipsNLUEnginefromsnips_nlu_metricsimportcompute_train_test_metrics,compute_cross_val_metricstt_metrics=compute_train_test_metrics(train_dataset="samples/train_dataset.json",test_dataset="samples/test_dataset.json",engine_class=SnipsNLUEngine)cv_metrics=compute_cross_val_metrics(dataset="samples/cross_val_dataset.json",engine_class=SnipsNLUEngine,nb_folds=5)
自定义NLU引擎
您还可以在自定义nlu引擎上计算度量,下面是一个简单的示例:
importrandomfromsnips_nlu_metricsimportcompute_train_test_metricsclassMyNLUEngine(object):deffit(self,dataset):self.intent_list=list(dataset["intents"])returnselfdefparse(self,text):return{"input":text,"intent":{"intentName":random.choice(self.intent_list),"probability":0.5},"slots":[]}compute_train_test_metrics(train_dataset="samples/train_dataset.json",test_dataset="samples/test_dataset.json",engine_class=MyNLUEngine)
链接
- Changelog
- Bug tracker
- Snips NLU
- Snips NLU Rust:rust推理管道实现和绑定(c,swift,kotlin,python)
- Snips