最近在学习 NLP 的相关项目,总觉得不够深入,决定通过写作的方式把自己学到的内容记录下来,分享给大家。并且通过一些通俗易懂的语言让大家最后能自己能动手实现一些NLP 的聊天机器人之类的应用。
先了解如何看懂一个模型评估的指标,譬如 F1-score
, Confusion matrix
.
机器学习中的 F1-score
在理解 F1-store 之前,首先定义几个概念:
TP(True Positive): 预测答案正确
FP(False Positive): 错将其他类预测为本类
FN(False Negative): 本类标签预测为其他类标
F1分数(F1-score)是分类问题的一个衡量指标, 在 0~1 之间,公式如下:
通过第一步的统计值计算每个类别下的 precision 和 recall
精准度/查准率(precision):指被分类器判定正例中的正样本的比重
召回率/查全率(recall): 指的是被预测为正例的占总的正例的比重
每个类别下的f1-score,计算方式如下:
通过对第三步求得的各个类别下的F1-score求均值,得到最后的评测结果,计算方式如下:
Confusion Matrix 混淆矩阵
混淆矩阵的每一列代表了预测类别,每一列的总数表示预测为该类别的数据的数目;每一行代表了数据的真实归属类别,每一行的数据总数表示该类别的数据实例的数目。每一列中的数值表示真实数据被预测为该类的数目。
如有150个样本数据,预测为1,2,3类各为50个。分类结束后得到的混淆矩阵为:
![](https://img.haomeiwen.com/i15338215/2e4c8aaac5754cd3.png)
每一行之和表示该类别的真实样本数量,每一列之和表示被预测为该类别的样本数量.
Corpus 语料库
巧妇难为无米之炊,语料库就是 NLP 项目中的 "米"。这里使用的是 awesome-chinese-nlp 中列出的中文wikipedia dump和百度百科语料。其中关于wikipedia dump的处理可以参考这篇帖子。
我们需要一个规模比较大的中文语料。最好的方法是用对应自己需求的语料,比如做金融的chatbot就多去爬取些财经新闻,做医疗的chatbot就多获取些医疗相关文章。
网友评论