장준영

가장 많이 나온 단어 출력 함수 구현

...@@ -39,3 +39,7 @@ ...@@ -39,3 +39,7 @@
39 2) 시간대별로 (시작시간, 끝시간)을 입력하여 그 시간에 해당하는 기사를 출력해주는 함수 구현 39 2) 시간대별로 (시작시간, 끝시간)을 입력하여 그 시간에 해당하는 기사를 출력해주는 함수 구현
40 40
41 가장 자주 많이 나온 단어 검색과 MATPLOTLIB을 활용한 시각적 표현 구현 예정 41 가장 자주 많이 나온 단어 검색과 MATPLOTLIB을 활용한 시각적 표현 구현 예정
42 +
43 +* 6차 수정사항
44 +
45 + konlpy를 활용한 명사 추출 및 단어 빈도수가 많으 순대로 사용자가 입력한 limit만큼 출력해주는 함수 구현 완료
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -2,6 +2,8 @@ from selenium import webdriver ...@@ -2,6 +2,8 @@ from selenium import webdriver
2 from selenium.common import exceptions 2 from selenium.common import exceptions
3 from bs4 import BeautifulSoup 3 from bs4 import BeautifulSoup
4 from datetime import datetime, timedelta 4 from datetime import datetime, timedelta
5 +from konlpy.tag import Twitter
6 +from collections import Counter
5 import time 7 import time
6 8
7 9
...@@ -161,6 +163,26 @@ def search_by_time(c_List,startTime, endTime) : ...@@ -161,6 +163,26 @@ def search_by_time(c_List,startTime, endTime) :
161 163
162 return result_List 164 return result_List
163 165
166 +def printMostShowed(c_List,limit):
167 + temp = ""
168 + result = ""
169 + for item in c_List:
170 + temp = str(item['comment']) + " "
171 + result = result + temp
172 +
173 + sp = Twitter()
174 +
175 + nouns = sp.nouns(result)
176 +
177 + _cnt = Counter(nouns)
178 +
179 + tempList = []
180 + repCnt = 0
181 +
182 + for i,j in _cnt.most_common(limit):
183 + print(str(repCnt+1)+'. '+str(i)+" : "+str(j))
184 + repCnt += 1
185 +
164 def printResult(c_List): 186 def printResult(c_List):
165 for i in range(0,len(c_List)): 187 for i in range(0,len(c_List)):
166 print(c_List[i]) 188 print(c_List[i])
...@@ -182,6 +204,7 @@ def main (): ...@@ -182,6 +204,7 @@ def main ():
182 print('comment_list를 가져오는 중.....') 204 print('comment_list를 가져오는 중.....')
183 cList = getData(_url) 205 cList = getData(_url)
184 refine_time(cList) 206 refine_time(cList)
207 + #printMostShowed(cList,10)
185 print('\n') 208 print('\n')
186 print('comment_list를 다 가져왔습니다!') 209 print('comment_list를 다 가져왔습니다!')
187 210
...@@ -190,6 +213,7 @@ def main (): ...@@ -190,6 +213,7 @@ def main ():
190 print('1.닉네임 기반 검색') 213 print('1.닉네임 기반 검색')
191 print('2.키워드 기반 검색') 214 print('2.키워드 기반 검색')
192 print('3.작성시간 기반 검색') 215 print('3.작성시간 기반 검색')
216 + print('4.자주 나타난 단어 출력')
193 menu = input('메뉴를 입력해주세요: ') 217 menu = input('메뉴를 입력해주세요: ')
194 218
195 if(menu == str(1)): 219 if(menu == str(1)):
...@@ -218,6 +242,16 @@ def main (): ...@@ -218,6 +242,16 @@ def main ():
218 242
219 _result = search_by_time(cList,startTime,endTime) 243 _result = search_by_time(cList,startTime,endTime)
220 printResult(_result) 244 printResult(_result)
245 + elif(menu == str(4)):
246 + print('***********************************')
247 + inputLimit = input('상위 몇 개 까지 보고 싶은지 입력하세요(1~20): ')
248 + while(True):
249 + if (int(inputLimit) <= 0 or int(inputLimit) > 20):
250 + inputLimit = input('상위 몇 개 까지 보고 싶은지 입력하세요(1~20): ')
251 + else:
252 + break
253 +
254 + printMostShowed(cList,int(inputLimit))
221 else: 255 else:
222 print('잘못된 입력입니다') 256 print('잘못된 입력입니다')
223 continue 257 continue
......