@@ -525,54 +525,70 @@ public String calcByType() {
525
525
public double [] calcPRF () {
526
526
527
527
/**
528
- * 估计的中正确的,key是字符串长度,value是这种长度的个数
528
+ * 估计的中正确的
529
529
*/
530
- Map < String , Double > mpc = new TreeMap < String , Double >() ;
530
+ int mpc = 0 ;
531
531
/**
532
- * 估计的,key是字符串长度,value是这种长度的个数
532
+ * 估计的
533
533
*/
534
- Map < String , Double > mp = new TreeMap < String , Double >() ;
534
+ int mp = 0 ;
535
535
/**
536
- * 正确的,key是字符串长度,value是这种长度的个数
536
+ * 正确的
537
537
*/
538
- Map < String , Double > mc = new TreeMap < String , Double >();
538
+ int mc = 0 ;
539
539
540
540
/**
541
541
* OOV
542
542
*/
543
- Map <String ,Double > oov = new TreeMap <String ,Double >();
543
+ int oov = 0 ;
544
+ int coov =0 ;
544
545
545
546
for (int i =0 ;i <entityCs .size ();i ++){
546
547
LinkedList <Entity > cList = entityCs .get (i );
547
548
LinkedList <Entity > pList = entityPs .get (i );
548
549
LinkedList <Entity > cpList = entityCinPs .get (i );
549
550
550
- for (Entity entity :cList ){
551
-
552
- adjust (mc , "" , 1.0 );
553
- if (dict !=null &&dict .size ()>0 ){
551
+ for (Entity entity :cList ){
552
+ if (dict !=null &&dict .size ()>0 ){
554
553
String s = entity .getEntityStr ();
555
554
if (!dict .contains (s )){
556
- adjust ( oov , "" , 1.0 ) ;
555
+ oov ++ ;
557
556
}
558
557
}
559
558
}
560
559
561
- for (Entity entity :pList ){
562
- adjust (mp , "" , 1.0 );
560
+ for (Entity entity :cpList ){
561
+ if (dict !=null &&dict .size ()>0 ){
562
+ String s = entity .getEntityStr ();
563
+ if (!dict .contains (s )){
564
+ coov ++;
565
+ }
566
+ }
563
567
}
564
568
565
- for (Entity entity :cpList ){
566
- adjust (mpc , "" , 1.0 );
567
- }
569
+
570
+
571
+ mc +=cList .size ();
572
+ mp +=pList .size ();
573
+ mpc +=cpList .size ();
568
574
}
569
575
570
- String key = "" ;
571
- double pre = (Double ) mpc .get (key )/(Double ) mp .get (key )*100 ;
572
- double recall = (Double )mpc .get (key )/(Double )mc .get (key )*100 ;
573
- double FB1 = (pre *recall *2 )/(recall +pre )*100 ;
576
+ double pre =0 ;
577
+ if (mp !=0 )
578
+ pre = (double ) mpc /(double ) mp *100 ;
579
+ double recall = 0 ;
580
+ if (mc !=0 )
581
+ recall = (double )mpc /(double )mc *100 ;
582
+
583
+ double FB1 =0 ;
584
+ if (recall +pre !=0 )
585
+ FB1 = (pre *recall *2 )/(recall +pre )*100 ;
586
+
587
+ double oovrecall = 0 ;
588
+ if (oov !=0 )
589
+ oovrecall = (double )coov /(double )oov *100 ;
574
590
575
- return new double []{pre ,recall ,FB1 };
591
+ return new double []{pre ,recall ,FB1 , oovrecall };
576
592
577
593
}
578
594
0 commit comments