使用python计算crf根据模型的分词结果的准确率,召回率和F值
测试文件output.txt,第一列是字,第二列是人工标注的分词结果,第三列是根据模型使用crf得到的分词结果,
字母B:单词的首字母;字母E:单词的尾字母;字母BE:单词的中间字母
格式如下:
团 B B
圆 E E
是 BE BE
春 B B
节 E E
千 B B
年 E E
不 B B
变 E E
的 BE BE
... ... ....
python代码如下:
1、读入output.txt文件,并建立相应的列名为'character','train','test'的dataframe
importpandas
line=[]
file=open(r'E:\大三下\王东波\CRF 相关\CRF 相关\crf++ tools\output.txt','r',encoding='utf-8')for i infile.readlines():
i=i[0:-1]if len(i)!=0 and len(i)!=1:
line.append(i.split('\t'))
df=pandas.DataFrame(line,columns=['character','train','test'])
【注:使用df.loc添加新行的速度太慢,因而使用列表向dataframe转化】
2、构建新的dataframe保存分词准确的部分
c