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