NLP基础知识: F1-score, 混淆矩阵和语料库

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NLP基础知识: F1-score, 混淆矩阵和语料库相关的知识,希望对你有一定的参考价值。

参考技术A

最近在学习 NLP 的相关项目,总觉得不够深入,决定通过写作的方式把自己学到的内容记录下来,分享给大家。并且通过一些通俗易懂的语言让大家最后能自己能动手实现一些NLP 的聊天机器人之类的应用。

先了解如何看懂一个模型评估的指标,譬如 F1-score , Confusion matrix .

在理解 F1-store 之前,首先定义几个概念:

TP(True Positive) : 预测答案正确
FP(False Positive) : 错将其他类预测为本类
FN(False Negative) : 本类标签预测为其他类标

F1分数(F1-score)是分类问题的一个衡量指标, 在 0~1 之间,公式如下:

通过第一步的统计值计算每个类别下的 precision 和 recall

精准度/查准率(precision):指被分类器判定正例中的正样本的比重

召回率/查全率(recall): 指的是被预测为正例的占总的正例的比重

每个类别下的f1-score,计算方式如下:

通过对第三步求得的各个类别下的F1-score求均值,得到最后的评测结果,计算方式如下:

混淆矩阵的每一列代表了预测类别,每一列的总数表示预测为该类别的数据的数目;每一行代表了数据的真实归属类别,每一行的数据总数表示该类别的数据实例的数目。每一列中的数值表示真实数据被预测为该类的数目。

如有150个样本数据,预测为1,2,3类各为50个。分类结束后得到的混淆矩阵为:

每一行之和表示该类别的真实样本数量,每一列之和表示被预测为该类别的样本数量.

巧妇难为无米之炊,语料库就是 NLP 项目中的 "米"。这里使用的是 awesome-chinese-nlp 中列出的中文wikipedia dump和百度百科语料。其中关于wikipedia dump的处理可以参考 这篇帖子 。

我们需要一个规模比较大的中文语料。最好的方法是用对应自己需求的语料,比如做金融的chatbot就多去爬取些财经新闻,做医疗的chatbot就多获取些医疗相关文章。

以上是关于NLP基础知识: F1-score, 混淆矩阵和语料库的主要内容,如果未能解决你的问题,请参考以下文章

拓端tecdat|R语言中的多类别问题的绩效衡量:F1-score 和广义AUC

阿里云天池 零基础入门NLP - 新闻文本分类 2种做法,F1=0.87

Python机器学习:6.6 不同的性能评价指标

第七篇 图像分类的评价指标

第二章 | 分类问题 | F1-score | ROC曲线 | 精准率召回率 | tensorflow2.6+sklearn | 学习笔记

分类模型的评估和模型选择与调优