在校大学生在上深度学习时遇到的一些问题,上课时导师教了一下命名实体识别的问题,于是我自己上github找了个适合初学者的模型(附上地址:https://github.com/Determined22/zh-NER-TF/blob/master/README.md),这模型我简单跑了一下有两个问题:
1.我经常看到F1值,精确值什么的,这些在这个模型这里是怎么计算的
2.我想把别人的数据集换上去该修改那些地方也不知道
如图(我知道个基本的BIO标记):

在校大学生在上深度学习时遇到的一些问题,上课时导师教了一下命名实体识别的问题,于是我自己上github找了个适合初学者的模型(附上地址:https://github.com/Determined22/zh-NER-TF/blob/master/README.md),这模型我简单跑了一下有两个问题:
1.我经常看到F1值,精确值什么的,这些在这个模型这里是怎么计算的
2.我想把别人的数据集换上去该修改那些地方也不知道
如图(我知道个基本的BIO标记):

以下内容由CHATGPT及笑面虎共同生成、有用望采纳:
【您想要解决的问题】:您提问的目的是想要了解如何计算命名实体识别(NER)模型中的性能指标(如F1值和精确值),并且想知道如何将别人的数据集应用到您找到的GitHub上的初学者NER模型中,以及如何根据BIO标记对数据进行处理。
【图片内容】:您上传的图片显示了一个文本编辑器的界面,其中包含了一些代码片段和文本内容。这些内容可能是您正在使用的NER模型的代码,或者是您在学习和测试模型时产生的输出。
【问题出现原因】:您遇到的问题可能源于对NER模型性能评估指标的理解不足,以及对如何适配和使用新的数据集的不确定性。在深度学习和NLP领域,性能指标的计算和数据集的适配是常见的问题,尤其是在使用开源项目和模型时。
【问题解决方案】:
计算性能指标:F1值和精确值是评估分类模型性能的常用指标。F1值是精确率和召回率的调和平均数,精确率是正确预测的正例占所有预测为正例的比例,召回率是正确预测的正例占所有实际正例的比例。在TensorFlow中,您可以使用sklearn.metrics库中的函数来计算这些指标。
适配新数据集:要使用新的数据集,您需要执行以下步骤:
【提供代码】:由于您没有提供具体的错误信息或代码片段,我无法提供修改后的代码。但是,我可以提供一个大致的代码框架,说明如何使用sklearn.metrics计算F1值和精确值:
from sklearn.metrics import precision_score, recall_score, f1_score
# 假设y_true是真实标签,y_pred是模型预测的标签
y_true = [0, 1, 2, 2, 0] # 示例真实标签
y_pred = [0, 1, 1, 1, 0] # 示例预测标签
precision = precision_score(y_true, y_pred, average='macro')
recall = recall_score(y_true, y_pred, average='macro')
f1 = f1_score(y_true, y_pred, average='macro')
print(f'Precision: {precision}, Recall: {recall}, F1: {f1}')
【代码运行方式】:运行上述代码需要Python环境和sklearn库。您可以在命令行中使用pip install scikit-learn来安装sklearn。
【代码预期运行结果】:如果使用上述示例数据,代码将输出预测的精确率、召回率和F1值。
【推荐相关链接】: