33import sys
44import time
55import csv
6+ import xlsxwriter
67from dnlp .core .re_cnn import RECNN ,RECNNConfig
78
89WINDOW_LIST = [(2 ,), (3 ,), (4 ,), (2 ,3 ), (3 ,4 ), (2 ,3 ,4 )]
@@ -76,7 +77,7 @@ def test_re_cnn(mode='two', remark=''):
7677writer = csv .DictWriter (f , ['name' ,'p' ,'r' ,'f1' ])
7778writer .writeheader ()
7879for w ,e ,ee in zip (WINDOW_LIST ,epoch ,epoch_embedding ):
79- p ,r ,f1 = test_re_cnn_by_window (w ,e ,mode = mode ,relation_count = relation_count ,remark = '_directed' )
80+ p ,r ,f1 = test_re_cnn_by_window (w ,e ,mode = mode ,relation_count = relation_count ,remark = '_directed' )
8081# p, r, f1 = test_re_cnn_by_window(w, e, mode='two', relation_count=2)
8182writer .writerow ({'name' :'_' .join (map (str ,w )),'p' :fmt (p ),'r' :fmt (r ),'f1' :fmt (f1 )})
8283# if w in [(3,), (4,)]:
@@ -93,6 +94,25 @@ def test_re_cnn(mode='two', remark=''):
9394writer .writerow ({'name' :'_' .join (map (str ,w )),'p' :fmt (p ),'r' :fmt (r ),'f1' :fmt (f1 )})
9495
9596
97+ def get_re_cnn_result (mode = 'two' ):
98+ if mode == 'two' :
99+ relation_count = 2
100+ else :
101+ relation_count = 28
102+ filename = '../dnlp/data/emr/re_cnn_result_{0}.xlsx' .format (mode )
103+ workbook = xlsxwriter .Workbook (filename )
104+ for w in WINDOW_LIST :
105+ core_name = '_' .join (map (str ,w ))
106+ sheet = workbook .add_worksheet (core_name )
107+ for i in range (1 ,51 ):
108+ p1 ,r1 ,f11 = test_re_cnn_by_window (w ,i ,mode = mode ,relation_count = relation_count ,remark = '_directed' )
109+ p2 ,r2 ,f12 = test_re_cnn_by_window (w ,i ,mode = mode ,relation_count = relation_count ,remark = '_cbow_directed' )
110+ p3 ,r3 ,f13 = test_re_cnn_by_window (w ,i ,mode = mode ,relation_count = relation_count ,remark = '_skip_gram_directed' )
111+ sheet .write_row (i ,0 ,[fmt (p1 ),fmt (r1 ),fmt (f11 ),fmt (p2 ),fmt (r2 ),fmt (f12 ),fmt (p3 ),fmt (r3 ),fmt (f13 )])
112+
113+ workbook .close ()
114+
115+
96116def fmt (n ):
97117return str ('{0:.2f}' ).format (n * 100 )
98118
@@ -140,7 +160,9 @@ def test_re_cnn_with_embedding():
140160else :
141161# test_re_cnn()
142162# test_re_cnn_by_window((2,),epoch=1,embedding_path=SKIP_GRAM_PATH,remark='_skip_gram')
143- test_re_cnn_by_window ((2 , ),epoch = 5 ,embedding_path = CBOW_PATH ,remark = '_cbow_directed' )
163+ # test_re_cnn_by_window((2,), epoch=5, embedding_path=CBOW_PATH, remark='_cbow_directed')
164+ get_re_cnn_result ()
165+ get_re_cnn_result ('multi' )
144166# test_re_cnn(remark='_directed')
145167# test_re_cnn('multi')
146168# test_re_cnn_with_embedding()