首页 > 分享 > NLP干货: (4) NER模型的调用和效果评估

NLP干货: (4) NER模型的调用和效果评估

在上一篇文章中讲述了如何 使用Spacy建立NER模型,因此本篇将讲述如何调用模型,并评估模型的效果。

1. 加载所需的库:

import pandas as pd

import joblib

2. 加载模型和验证的数据集,提取所有文本的实体信息:

ner = joblib.load(r"C:UsersxxxDesktopnerNER.m")

print('NER模型加载成功')

df = pd.read_excel(r"C:UsersxxxDesktopNERNER-validate.xlsx")

content = df['Content'].values.tolist()

AllEntity = []

for line in range(len(content)):

doc = ner(content[line])

Entity = [(ent.text, ent.label_) for ent in doc.ents]

Entity = sorted(list(set(Entity)), key=Entity.index)

AllEntity.append(Entity)

df['AllEntity'] = AllEntity

Result_Path = r"C:UsersxxxDesktopNERner-ValidateResult1.xlsx"

df.to_excel(Result_Path, index=False)

3. 分析上述输出的Excel文件:

df = pd.read_excel(Result_Path)

label = df['label'].tolist()

values = df['value'].tolist()

AllEntity = df['AllEntity'].tolist()

total = len(label)

Manual_Labeling, mark_AllEnt = [],[]

right_count = all_source_count = all_pred_count = count = fail_count = 0

for line in range(len(label)):

col1 = label[line]

col2 = values[line]

col3 = AllEntity[line]

col1 = eval(col1)

col2 = eval(col2)

col3 = eval(col3)

print('nAllEntity:', col3)

new_list = [(col2[j],col1[j][2]) for j in range(len(col2))]

print('labelled_list:',list(set(new_list)))

Manual_Labeling.append(list(set(new_list)))

all_source_count = all_source_count + len(list(set(new_list)))

all_pred_count = all_pred_count + len(col3)

for item in col3:

if isinstance(item, tuple) and item in new_list:

right_count += 1

else:

fail_count += 1

match_count = 0

for item in new_list:

if item in col3:

match_count += 1

if match_count == len(new_list):

count += 1

mark_AllEnt.append(1)

else:

mark_AllEnt.append(0)

print('Entity总数=',all_source_count, '; Entity预测正确个数=',right_count, '; 找准+找全的文本个数为=',count, '; Entity预测错误个数=',fail_count)

df['Manual_Labeling'] = Manual_Labeling

df['AllEnt_Correction'] = mark_AllEnt

df.to_excel(Result_Path, index=False)

print('nNER测试文本个数=',total, '; labelled Entity总数=',all_source_count, '; model预测正确个数=',right_count, '; 召回率=',round(right_count/all_source_count, 2), '; 精确率=',round(1-(fail_count/all_pred_count), 2))

输出结果:

若NER模型的效果不够好,则可以尝试从几个方面提升:A.增加迭代次数  B.调整学习率和drop参数  C.增加训练数据量

相关知识

NLP干货: (4) NER模型的调用和效果评估
如何评估Transformer模型的性能和效果?
大模型训练结果分析及其效果评估
达摩院跨语言研究最新进展:多语言知识增强的预训练&基于一致性训练的跨语言NER
大模型训练结果分析与评估
深入解析Yolov7模型训练结果及评估
人工智能在心理健康评估和干预中的应用
模型训练、评估与推理
用于评估宠物放射学图像的系统和方法专利
培训效果评估4层次

网址: NLP干货: (4) NER模型的调用和效果评估 https://m.mcbbbk.com/newsview360822.html

所属分类:萌宠日常
上一篇: 如何评估Transformer模
下一篇: 聚合物电池和18650电池哪个好