-
Notifications
You must be signed in to change notification settings - Fork 9
/
p835_compare.py
74 lines (60 loc) · 2.29 KB
/
p835_compare.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import re
import numpy as np
def read_from_txt(filename, counter):
str_list = []
with open(filename, "r") as f:
for line in f.readlines():
if counter == 0:
break
# line = line.split('\n')
str_list.append(line)
counter = counter - 1
f.close()
return str_list
def get_the_same(str_list1, str_list2):
dict1 = {}
depart2 = []
same_str_1 = []
same_str_2 = []
for str in str_list1:
filename = str.split(' ')[0]
dict1[filename] = str
for str in str_list2:
filename = str.split(' ')[0]
depart2.append((filename, str))
for filename2, totalstr2 in depart2:
if filename2 in dict1.keys():
same_str_1.append(dict1[filename2])
same_str_2.append(totalstr2)
return same_str_1, same_str_2
def get_score(str_list):
sig_list = []
bak_list = []
ovr_list = []
number_format = re.compile(r"(\d)+.(\d)*")
sig_format = re.compile(r"SIG\[(\d)+.(\d)*\]")
bak_format = re.compile(r"BAK\[(\d)+.(\d)*\]")
ovr_format = re.compile(r"OVR\[(\d)+.(\d)*\]")
for str in str_list:
sig_result = (sig_format.search(str)).group(0)
sig_number = float((number_format.search(sig_result)).group(0))
sig_list.append(sig_number)
bak_result = (bak_format.search(str)).group(0)
bak_number = float((number_format.search(bak_result)).group(0))
bak_list.append(bak_number)
ovr_result = (ovr_format.search(str)).group(0)
ovr_number = float((number_format.search(ovr_result)).group(0))
ovr_list.append(ovr_number)
# print(number.group(0))
return np.mean(sig_list), np.mean(bak_list), np.mean(ovr_list)
file_name1 = "C:/Users/thujunchen/Desktop/SE工作/DNSMOS/noisy_no_neighbor/file_mos.txt"
file_name2 = "C:/Users/thujunchen/Desktop/SE工作/DNSMOS/yukai_11_no_neighbor/file_mos.txt"
counter = 3000
list1 = read_from_txt(file_name1, counter)
list2 = read_from_txt(file_name2, counter)
same_str_1, same_str_2 = get_the_same(list1, list2)
print(len(same_str_1))
SIG, BAK, OVR = get_score(same_str_1)
print(file_name1 + " " + "SIG={}, BAK={}, OVR={}".format(SIG, BAK, OVR))
SIG, BAK, OVR = get_score(same_str_2)
print(file_name2 + " " + "SIG={}, BAK={}, OVR={}".format(SIG, BAK, OVR))