目标: 使用条件随机场(CRF)模型对文本数据进行分类,并评估模型的性能。任务包括读取数据、划分训练集和测试集、训练CR
# 1.数据读取与预处理:
# o使用open函数读取包含文本和标签的CSV文件。
# o将每一行数据分为文本和标签两部分,
# o将文本存储为字典格式的列表,标签存储为对应的列表。
# o确保每行数据的格式为两部分(即文本和标签)。
from sklearn_crfsuite import CRF
texts=[]
labels=[]
word='word'
word.isupper()
word.isdigit()
word.istitle()
with open('第二题数据集.csv','r',encoding='utf8') as f:
for sen in f:
parts=sen.split(',')
if len(parts)==2:
word, label = parts
texts.append([{
'word':'word',
'isupper':word.isupper(),
'isdigit':word.isdigit(),
'istitle':word.istitle(),
'word_1':word[:1],
'word_2':word[:2],
'word_3':word[:3],
'word1_':word[:-1],
'word2_':word[:-2],
'word3_':word[:-3],
'word_len':len(word)
}])
labels.append([label.strip()])
2.数据集划分:
# o使用函数将数据集划分为训练集和测试集。
# o训练集占总数据的80%,测试集占20%。
# 3.训练CRF模型:
# o初始化一个条件随机场(CRF)模型。
# o使用训练集训练CRF模型。
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(texts,labels,test_size=0.2)
crf=CRF(c1=0.1,c2=0.2)
crf.fit(X_train,y_train)
# 4.模型预测:
# o使用训练好的CRF模型对测试集进行预测,得到预测标签。
predict = crf.predict(X_test)
# 5.模型评估:
# o使用函数评估模型的性能,输出包括精确度、召回率和F1分数等指标。
from sklearn.metrics import classification_report
print(classification_report(y_test,predict))
# 6.错误分类实例分析:
# o对比测试集的真实标签和预测标签,找出被
for text_x,text_y,pre in zip(X_test,y_test,predict):
if text_y != pre:
print(text_x,text_y,pre)错误分类的实例。
# o输出被错误分类的数据集
# o输出分类报告以评估模型在测试集上的表现。
F模型、进行预测、评估结果,并识别错误分类的实例。