-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathmain.py
More file actions
88 lines (70 loc) · 3.03 KB
/
main.py
File metadata and controls
88 lines (70 loc) · 3.03 KB
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
import front
import search
import copy
import levenshtein
import nGram
import cosineSimilarity
#import Euclidean
def preprocess(text):
return ''.join(filter(str.isalnum, text))
title_list = []
f = open("data.txt", 'rt', encoding='UTF8')
while True:
title = f.readline().rstrip()
content = f.readline().rstrip()
processed = preprocess(title)
if not title:
break
title_list.append({'title': title, 'content': content,
'processed': processed, 'similarity': 0})
f.close()
front.start()
while True:
print("■ 검색할 키워드를 입력하세요 : ", end="")
keyword = input()
titles = search.search(title_list, keyword)
print("\n")
print('\033[94m' +
"■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■" + '\033[0m', end="\n\n\n")
print("----- 검색 결과 -----")
front.searchedTitle(titles)
print("\n")
print('\033[94m' +
"■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■" + '\033[0m')
print("\n■ 읽을 논문의 번호를 입력하세요 : ", end="")
title_num = int(input())
while(True):
front.searchedPaper(titles, title_num)
# 각 알고리즘의 유사도를 측정하는 함수 호출
titles = levenshtein.levenshtein(titles, title_num)
#titles = nGram.nGram(titles, title_num)
#titles = cosineSimilarity.cosineSimilarity(titles, title_num)
#titles = Euclidean.euclidean(titles, title_num)
# 각 알고리즘의 데이터 비교 횟수를 확인할 있는 함수 호출
#titles = nGram.printNgramCnt(titles, title_num)
#titles = cosineSimilarity.printCosineCnt(titles, title_num)
#titles = levenshtein.printlevenshteinCnt(titles, title_num)
c_titles = copy.deepcopy(titles)
titles.sort(key=lambda x: x["similarity"], reverse=True)
for i in range(len(titles)):
if c_titles[title_num-1]["title"] == titles[i]["title"]:
title_index = i
break
front.paperRelation(titles, title_index)
print("\n■ 다음에 읽을 논문의 번호를 입력하세요(키워드 검색으로 돌아가기는 0, 종료는 q를 입력하세요) : ", end="")
select = input()
if select == 'q' or select == "Q":
print("\nDRMS 서비스를 이용해주셔서 감사합니다 =)\n")
exit()
elif select == '0':
print("\n")
break
elif 0 < int(select) < len(titles):
select = int(select)
if(select < title_index):
title_num = select
else:
title_num = select + 1
else:
print("잘못된 input입니다.")
exit()