양지수

Merge branch 'master' into 'master'

Master



See merge request !1
Showing 721 changed files with 1991 additions and 0 deletions
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
1 +import warnings
2 +#########5/23일작성중 #########
3 +warnings.simplefilter(("ignore"))
4 +import openpyxl
5 +import pandas as pd
6 +
7 +####### [날짜, 뉴스단어 한개] 구성 만드는 파일 차트 분석 시 count함수 이욜 할 때 참조 자료
8 +# ex)hmm뉴스키워드날짜뉴스모으고특수삭제.xlsx 파일 넣음<- DayNewsMerge.py 중간에 주석처리 된 부분 해제하고 결과 얻기
9 +Stockfilename = input("키워드파일이름입력:")
10 +fileStock = "C:/Users/yangj/PycharmProjects/pythonProject1/샘플/" + Stockfilename + ".xlsx"
11 +Stockfile = openpyxl.load_workbook(fileStock) # 파일이름입력
12 +stock_ws = Stockfile.active
13 +Stock_data = [] # list 타입
14 +date=[]
15 +i = 0
16 +for row in stock_ws.rows:
17 + Stock_data.append([])
18 + date.append(row[1].value)
19 + for cell in row:
20 + if cell.value != None :
21 + Stock_data[i].append(cell.value)
22 + i += 1
23 +del Stock_data[0]
24 +del date[0]
25 +for i in range(len(Stock_data)):
26 + del Stock_data[i][0] #각 열의 첫번째 행 삭제
27 +for i in range(len(Stock_data)):
28 + del Stock_data[i][0] #각 열의 첫번째 행 삭제
29 +print(Stock_data)
30 +print(date)
31 +a=[] #
32 +print(len(date),len(Stock_data))
33 +for j in range(len(Stock_data)):
34 + for k in range(len(Stock_data[j])):
35 + a.append([date[j],Stock_data[j][k]])
36 +print(a)
37 +df_SourTar = pd.DataFrame(a)
38 +df_SourTar.to_excel(Stockfilename+'countif.xlsx',sheet_name='sheet1')
...\ No newline at end of file ...\ No newline at end of file
1 +import pandas as pd
2 +
3 +source = {
4 + '학년': [1, 2, 1, 3, 4],
5 + '성별': ['남자', '여자', '남자', '여자', '남자'],
6 + '국어': [98, 88, 92, 63, 120],
7 + '영어': [88, 90, 70, 60, 50],
8 + '수학': [64, 62, None, 31, None],
9 + '과학': [None, 72, None, 70, 88]
10 +}
11 +df = pd.DataFrame(source)
12 +df1=df[(df['성별']!='남자')].index
13 +df2=df.drop(df1)
14 +print(df)
15 +print("---------")
16 +print(df2)
1 +import warnings
2 +
3 +warnings.simplefilter(("ignore"))
4 +import openpyxl
5 +import pandas as pd
6 +
7 +# 000_KNU_New_Vdic2.xlsx 파일 넣기
8 +
9 +Stockfilefolder = input("종목시세폴더입력: ")
10 +Stockfilename = input("시세파일이름입력:")
11 +fileStock = "C:/Users/yangj/PycharmProjects/pythonProject1/뉴스키워드/" + Stockfilefolder + "/" + Stockfilename + ".xlsx"
12 +Stockfile = openpyxl.load_workbook(fileStock) # 파일이름입력
13 +stock_ws = Stockfile.active
14 +Stock_data = [] # list 타입
15 +i = 0
16 +for row in stock_ws.rows:
17 + Stock_data.append([])
18 + for cell in row:
19 + if cell.value != None:
20 + Stock_data[i].append(cell.value)
21 + i += 1
22 +del Stock_data[0]
23 +for i in range(len(Stock_data)):
24 + del Stock_data[i][0]
25 +#print(Stock_data)
26 +
27 +
28 +vert_p = [] # 수직 중복 삭제
29 +for i in range(len(Stock_data)):
30 + vert_p.append([])
31 + for j in range(len(Stock_data[i])):
32 + vert_p[i].append(Stock_data[i][j]) # 단어만 넣기
33 +print(vert_p)
34 +
35 +vert_p.sort(key=lambda x: x[0]) # 단어 기준으로 정렬
36 +for i in range(len(vert_p) - 2): # 단어 비교해서 같으면 누적, 다르면 값 바꾸기
37 + for j in range(i + 1, len(vert_p)):
38 + if vert_p[i][0] == vert_p[j][0] :
39 + vert_p[i][1] += vert_p[j][1]
40 + vert_p[j] = ['0', 0]
41 + if str.isalnum(vert_p[i][0]) == False:
42 + vert_p[i] =['0', 0]
43 +
44 +vert_p = [i for i in vert_p if not '0' in i] # '0'들어간 열 제거
45 +df_ver = pd.DataFrame(vert_p)
46 +df_ver.to_excel(Stockfilename + ' Stock_dictionary2.xlsx', sheet_name='sheet1')
47 +####사전 완성####
File mode changed
1 +import warnings
2 +
3 +warnings.simplefilter(("ignore"))
4 +import openpyxl
5 +import pandas as pd
6 +
7 +Stockfilefolder = input("종목시세폴더입력: ")
8 +Stockfilename = input("시세파일이름입력:")
9 +fileStock = "C:/Users/yangj/PycharmProjects/pythonProject1/종목별시세/" + Stockfilefolder + "/" + Stockfilename + ".xlsx"
10 +Stockfile = openpyxl.load_workbook(fileStock) # 파일이름입력
11 +stock_ws = Stockfile.active
12 +Stock_data = [] # list 타입
13 +i = 0
14 +for row in stock_ws.rows:
15 + Stock_data.append([])
16 + for cell in row:
17 + if cell.value != None:
18 + Stock_data[i].append(cell.value)
19 + i += 1
20 +del Stock_data[0]
21 +for i in range(len(Stock_data)):
22 + del Stock_data[i][0] # 대비 삭제
23 +#print(Stock_data)
24 +
25 +
26 +vert_p = [] # 수직 중복 삭제
27 +for i in range(len(Stock_data)):
28 + vert_p.append([])
29 + for j in range(len(Stock_data[i])):
30 + vert_p[i].append(Stock_data[i][j]) # 단어만 넣기
31 +print(vert_p)
32 +
33 +vert_p.sort(key=lambda x: x[0]) # 단어 기준으로 정렬
34 +for i in range(len(vert_p) - 2): # 단어 비교해서 같으면 누적 다르면 값 바꾸기
35 + for j in range(i + 1, len(vert_p)):
36 + if vert_p[i][0] == vert_p[j][0] :
37 + vert_p[i][1] += vert_p[j][1]
38 + vert_p[j] = ['0', 0]
39 + if str.isalnum(vert_p[i][0]) == False:
40 + vert_p[i] =['0', 0]
41 +
42 +vert_p = [i for i in vert_p if not '0' in i] # '0'들어간 열 제거
43 +df_ver = pd.DataFrame(vert_p)
44 +df_ver.to_excel(Stockfilename + ' Stock_dictionary2.xlsx', sheet_name='sheet1')
1 +# **뉴스 키워드 노출 빈도수에 따른 기업 주가 영향 분석**
2 +---------------------------------------------------
3 +----------------------------------------------------
4 +
5 +
6 +## **지도교수님**
7 +* 한치근 교수님
8 +
9 +## **팀원**
10 +* 2017104003 컴퓨터공학과 양지수
11 +* 2017104039 컴퓨터공학과 한서흔
12 +
13 +---
14 +
15 +## **개발일정**
16 +* 2021.03.09~2021.03.22 데이터 수집
17 +* 2021.03.23~2021.04.19 자연어 처리,중간보고서 작성
18 +* 2021.04.20~2021.05.04 감성사전 분석 및 특화 사전 제작
19 +* 2021.05.05~ 중심성 분석 및 최종 결과 제작
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
1 +import warnings
2 +warnings.simplefilter(("ignore"))
3 +import konlpy
4 +from konlpy.tag import *
5 +import openpyxl
6 +import pandas as pd
7 +from math import log10
8 +import numpy as np
9 +
10 +#형태소분석라이브러리
11 +#okt = Okt()
12 +hannanum = Hannanum()
13 +#filename= input("분석할 파일이름 입력:") #파일명
14 +filefolder = input("종목폴더입력: ")
15 +filename=input("파일이름입력:")
16 +filepos = "C:/Users/yangj/PycharmProjects/pythonProject1/뉴스크롤링/"+filefolder+"/" + filename + ".xlsx"
17 +kfile = openpyxl.load_workbook(filepos)#파일이름입력
18 +sheet=kfile.worksheets[0]#sheet1에 있는 데이터 가죠오기
19 +#print(sheet)
20 +data=[]
21 +for row in sheet.rows: #data에 크롤링한 뉴스 제목들 저장
22 + data.append(
23 + row[1].value
24 + )
25 +#print(data)
26 +#print(type(data[1])) #str
27 +
28 +newData2=[]
29 +
30 +#print(newData)
31 +for i in range(len(data)-1):
32 + newData2.append(hannanum.nouns(data[i+1])) #명사만 추출hannanum가 okt보다 성능좋음
33 +#print(newData2)
34 +
35 +newData3=[]
36 +for i in range(len(newData2)):
37 + newData3.append([])
38 + for j in newData2[i]:
39 + if any(map(str.isdigit,j))==False and len(j)>1: #추출한 결과가 숫자포함이거나 한글자 인것 제외
40 + newData3[i].append(j)
41 +#print(newData3)
42 +
43 +#print(type(newData2))#newData2 데이터 형식은 list
44 +#df= pd.DataFrame.from_records(newData3)#newData3 dataframe으로 변환
45 +#df.to_excel(filename+'_명사추출_숫자제외'+'.xlsx') #파일명의 엑셀로 변환
46 +
47 +#TF-IDF함수 시작
48 +
49 +def f(t, d): # 엑셀 d 안에 있는 t 빈도 세기
50 + return d.count(t)
51 +
52 +def tf(t, d): #tf(t,d)증가빈도 공식 적용
53 + return 0.5 + 0.5*f(t,d)/max([f(w,d) for w in d])
54 +
55 +def idf(t, D): #역문서 빈도 공식 적용
56 + numerator = len(D) #문서 집합에 포함 된 문서 수
57 + denominator = 1 + len([ True for d in D if t in d]) #1더해서 0되는 것 방지
58 + return log10(numerator/denominator)
59 +
60 +def tfidf(t, d, D):
61 + return tf(t,d)*idf(t, D)
62 +
63 +def tfidfScorer(D):
64 + result = []
65 + for d in D:
66 + result.append([(t, tfidf(t, d, D)) for t in d] )
67 + return result
68 +
69 +#newData3는 명사추출을 통해 분리되어있음(이미 split상태)
70 +
71 +if __name__ == '__main__':
72 + corpus=[]
73 + for i in range(len(newData3)):
74 + corpus.append(newData3[i])
75 + TfIf=[] #결과저장
76 + for i, result in enumerate(tfidfScorer(corpus)):
77 + #print('====== document[%d] ======' % i)
78 + #print(result)
79 + TfIf.append(result)
80 +print(TfIf)#TFIF는 (단어,가중치) 조합으로 저장
81 +for i in range(len(TfIf)-1):
82 + TfIf[i].sort(key=lambda x:x[1], reverse=True) #가중치기준 내림차순 정렬
83 +print(TfIf)
84 +onlynouns = []
85 +for i in range(len(TfIf)):
86 + onlynouns.append([])
87 + for j in range(len(TfIf[i])):
88 + for k in range(len(TfIf[i][j])):
89 + if k%2==0:
90 + onlynouns[i].append(TfIf[i][j][k])
91 +print(onlynouns)
92 +#df= pd.DataFrame.from_records(TfIf)#TfIf dataframe으로 변환
93 +#df.to_excel(filename+'_가중치추출_내림정렬'+'.xlsx')
94 +
1 +<component name="InspectionProjectProfileManager">
2 + <settings>
3 + <option name="USE_PROJECT_PROFILE" value="false" />
4 + <version value="1.0" />
5 + </settings>
6 +</component>
...\ No newline at end of file ...\ No newline at end of file
1 +<?xml version="1.0" encoding="UTF-8"?>
2 +<module type="PYTHON_MODULE" version="4">
3 + <component name="NewModuleRootManager">
4 + <content url="file://$MODULE_DIR$" />
5 + <orderEntry type="inheritedJdk" />
6 + <orderEntry type="sourceFolder" forTests="false" />
7 + </component>
8 +</module>
...\ No newline at end of file ...\ No newline at end of file
1 +<?xml version="1.0" encoding="UTF-8"?>
2 +<project version="4">
3 + <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.7" project-jdk-type="Python SDK" />
4 +</project>
...\ No newline at end of file ...\ No newline at end of file
1 +<?xml version="1.0" encoding="UTF-8"?>
2 +<project version="4">
3 + <component name="ProjectModuleManager">
4 + <modules>
5 + <module fileurl="file://$PROJECT_DIR$/.idea/knu.iml" filepath="$PROJECT_DIR$/.idea/knu.iml" />
6 + </modules>
7 + </component>
8 +</project>
...\ No newline at end of file ...\ No newline at end of file
1 +<?xml version="1.0" encoding="UTF-8"?>
2 +<project version="4">
3 + <component name="VcsDirectoryMappings">
4 + <mapping directory="$PROJECT_DIR$/.." vcs="Git" />
5 + <mapping directory="$PROJECT_DIR$/KnuSentiLex" vcs="Git" />
6 + </component>
7 +</project>
...\ No newline at end of file ...\ No newline at end of file
1 +<?xml version="1.0" encoding="UTF-8"?>
2 +<project version="4">
3 + <component name="ChangeListManager">
4 + <list default="true" id="c0303638-0fd2-416a-ba15-34825add524a" name="Default Changelist" comment="">
5 + <change afterPath="$PROJECT_DIR$/../ 2021-5-8 21시 33분 12초 merging.xlsx" afterDir="false" />
6 + <change afterPath="$PROJECT_DIR$/../ 2021-5-8 21시 37분 30초 merging.xlsx" afterDir="false" />
7 + <change afterPath="$PROJECT_DIR$/../ 2021-5-8 21시 6분 9초 merging.xlsx" afterDir="false" />
8 + <change afterPath="$PROJECT_DIR$/../ 2021-5-8 22시 48분 54초 merging.xlsx" afterDir="false" />
9 + <change afterPath="$PROJECT_DIR$/../ 2021-5-9 10시 55분 12초 merging.xlsx" afterDir="false" />
10 + <change afterPath="$PROJECT_DIR$/../ 2021-5-9 12시 15분 22초 merging.xlsx" afterDir="false" />
11 + <change afterPath="$PROJECT_DIR$/.idea/inspectionProfiles/profiles_settings.xml" afterDir="false" />
12 + <change afterPath="$PROJECT_DIR$/.idea/knu.iml" afterDir="false" />
13 + <change afterPath="$PROJECT_DIR$/.idea/modules.xml" afterDir="false" />
14 + <change afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
15 + <change afterPath="$PROJECT_DIR$/../mecab_python-0.996_ko_0.9.2_msvc-cp37-cp37m-win_amd64.whl" afterDir="false" />
16 + <change afterPath="$PROJECT_DIR$/../venv/Lib/site-packages/MeCab.py" afterDir="false" />
17 + <change afterPath="$PROJECT_DIR$/../venv/Lib/site-packages/_MeCab.cp37-win_amd64.pyd" afterDir="false" />
18 + <change afterPath="$PROJECT_DIR$/../venv/Lib/site-packages/libmecab.dll" afterDir="false" />
19 + <change afterPath="$PROJECT_DIR$/../venv/Lib/site-packages/mecab_python-0.996_ko_0.9.2_msvc.dist-info/INSTALLER" afterDir="false" />
20 + <change afterPath="$PROJECT_DIR$/../venv/Lib/site-packages/mecab_python-0.996_ko_0.9.2_msvc.dist-info/METADATA" afterDir="false" />
21 + <change afterPath="$PROJECT_DIR$/../venv/Lib/site-packages/mecab_python-0.996_ko_0.9.2_msvc.dist-info/RECORD" afterDir="false" />
22 + <change afterPath="$PROJECT_DIR$/../venv/Lib/site-packages/mecab_python-0.996_ko_0.9.2_msvc.dist-info/REQUESTED" afterDir="false" />
23 + <change afterPath="$PROJECT_DIR$/../venv/Lib/site-packages/mecab_python-0.996_ko_0.9.2_msvc.dist-info/WHEEL" afterDir="false" />
24 + <change afterPath="$PROJECT_DIR$/../venv/Lib/site-packages/mecab_python-0.996_ko_0.9.2_msvc.dist-info/direct_url.json" afterDir="false" />
25 + <change afterPath="$PROJECT_DIR$/../venv/Lib/site-packages/mecab_python-0.996_ko_0.9.2_msvc.dist-info/top_level.txt" afterDir="false" />
26 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/코스피/코스피10월.xlsx" afterDir="false" />
27 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/코스피/코스피11월.xlsx" afterDir="false" />
28 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/코스피/코스피12월.xlsx" afterDir="false" />
29 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/항공사/대한항공/2021-4-14 15시 32분 35초 merging.xlsx" afterDir="false" />
30 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/항공사/대한항공/2021-4-14 15시 40분 14초 merging.xlsx" afterDir="false" />
31 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/항공사/대한항공/2021-4-14 15시 47분 35초 merging.xlsx" afterDir="false" />
32 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/항공사/대한항공/2021-4-14 16시 13분 52초 merging.xlsx" afterDir="false" />
33 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/항공사/대한항공/2021-4-14 16시 21분 37초 merging.xlsx" afterDir="false" />
34 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/항공사/대한항공/2021-4-14 16시 32분 13초 merging.xlsx" afterDir="false" />
35 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/항공사/대한항공/대한항공10월.xlsx" afterDir="false" />
36 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/항공사/대한항공/대한항공11월.xlsx" afterDir="false" />
37 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/항공사/대한항공/대한항공12월.xlsx" afterDir="false" />
38 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/항공사/대한항공/대한항공1월.xlsx" afterDir="false" />
39 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/항공사/대한항공/대한항공2월.xlsx" afterDir="false" />
40 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/항공사/대한항공/대한항공3월.xlsx" afterDir="false" />
41 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/해운사/hmm/hmm10월.xlsx" afterDir="false" />
42 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/해운사/hmm/hmm11월.xlsx" afterDir="false" />
43 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/해운사/hmm/hmm12월.xlsx" afterDir="false" />
44 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/해운사/hmm/hmm1월.xlsx" afterDir="false" />
45 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/해운사/hmm/hmm2월.xlsx" afterDir="false" />
46 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/해운사/hmm/hmm3월.xlsx" afterDir="false" />
47 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/화학/금호석유/2021-4-16 10시 32분 58초 merging.xlsx" afterDir="false" />
48 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/화학/금호석유/2021-4-16 10시 39분 27초 merging.xlsx" afterDir="false" />
49 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/화학/금호석유/2021-4-16 10시 48분 36초 merging.xlsx" afterDir="false" />
50 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/화학/금호석유/2021-4-16 10시 56분 54초 merging.xlsx" afterDir="false" />
51 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/화학/금호석유/2021-4-16 10시 7분 43초 merging.xlsx" afterDir="false" />
52 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/화학/금호석유/2021-4-16 11시 3분 9초 merging.xlsx" afterDir="false" />
53 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/화학/금호석유/2021-4-16 11시 9분 40초 merging.xlsx" afterDir="false" />
54 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/화학/금호석유/2021-4-16 9시 45분 49초 merging.xlsx" afterDir="false" />
55 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/화학/금호석유/2021-4-16 9시 53분 0초 merging.xlsx" afterDir="false" />
56 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/화학/금호석유/2021-4-16 9시 58분 44초 merging.xlsx" afterDir="false" />
57 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/화학/금호석유/금호석유10월.xlsx" afterDir="false" />
58 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/화학/금호석유/금호석유11월.xlsx" afterDir="false" />
59 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/화학/금호석유/금호석유12월.xlsx" afterDir="false" />
60 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/화학/금호석유/금호석유1월.xlsx" afterDir="false" />
61 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/화학/금호석유/금호석유2월.xlsx" afterDir="false" />
62 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/화학/금호석유/금호석유3월.xlsx" afterDir="false" />
63 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/화학/롯데케미칼/롯데케미칼10월.xlsx" afterDir="false" />
64 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/화학/롯데케미칼/롯데케미칼11월.xlsx" afterDir="false" />
65 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/화학/롯데케미칼/롯데케미칼12월.xlsx" afterDir="false" />
66 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/화학/롯데케미칼/롯데케미칼1월.xlsx" afterDir="false" />
67 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/화학/롯데케미칼/롯데케미칼2월.xlsx" afterDir="false" />
68 + <change afterPath="$PROJECT_DIR$/../뉴스크롤링/화학/롯데케미칼/롯데케미칼3월.xlsx" afterDir="false" />
69 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/고려아연/고려아연10월뉴스키워드.xlsx" afterDir="false" />
70 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/고려아연/고려아연11월뉴스키워드.xlsx" afterDir="false" />
71 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/고려아연/고려아연12월뉴스키워드.xlsx" afterDir="false" />
72 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/고려아연/고려아연1월뉴스키워드.xlsx" afterDir="false" />
73 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/고려아연/고려아연2월뉴스키워드.xlsx" afterDir="false" />
74 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/고려아연/고려아연3월뉴스키워드.xlsx" afterDir="false" />
75 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/금호석유/금호석유10월뉴스키워드.xlsx" afterDir="false" />
76 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/금호석유/금호석유11월뉴스키워드.xlsx" afterDir="false" />
77 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/금호석유/금호석유12월뉴스키워드.xlsx" afterDir="false" />
78 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/금호석유/금호석유1월뉴스키워드.xlsx" afterDir="false" />
79 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/금호석유/금호석유2월뉴스키워드.xlsx" afterDir="false" />
80 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/금호석유/금호석유3월뉴스키워드.xlsx" afterDir="false" />
81 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/기업은행/기업은행10월뉴스키워드.xlsx" afterDir="false" />
82 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/기업은행/기업은행11월뉴스키워드.xlsx" afterDir="false" />
83 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/기업은행/기업은행12월뉴스키워드.xlsx" afterDir="false" />
84 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/기업은행/기업은행1월뉴스키워드.xlsx" afterDir="false" />
85 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/기업은행/기업은행2월뉴스키워드.xlsx" afterDir="false" />
86 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/기업은행/기업은행3월뉴스키워드.xlsx" afterDir="false" />
87 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/대한항공/대한항공10월뉴스키워드.xlsx" afterDir="false" />
88 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/대한항공/대한항공11월뉴스키워드.xlsx" afterDir="false" />
89 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/대한항공/대한항공12월뉴스키워드.xlsx" afterDir="false" />
90 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/대한항공/대한항공1월뉴스키워드.xlsx" afterDir="false" />
91 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/대한항공/대한항공2월뉴스키워드.xlsx" afterDir="false" />
92 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/대한항공/대한항공3월뉴스키워드.xlsx" afterDir="false" />
93 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/롯데케미칼/롯데케미칼10월뉴스키워드.xlsx" afterDir="false" />
94 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/롯데케미칼/롯데케미칼11월뉴스키워드.xlsx" afterDir="false" />
95 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/롯데케미칼/롯데케미칼12월뉴스키워드.xlsx" afterDir="false" />
96 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/롯데케미칼/롯데케미칼1월뉴스키워드.xlsx" afterDir="false" />
97 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/롯데케미칼/롯데케미칼2월뉴스키워드.xlsx" afterDir="false" />
98 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/롯데케미칼/롯데케미칼3월뉴스키워드.xlsx" afterDir="false" />
99 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/미래에셋증권/미래에셋증권10월뉴스키워드.xlsx" afterDir="false" />
100 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/미래에셋증권/미래에셋증권11월뉴스키워드.xlsx" afterDir="false" />
101 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/미래에셋증권/미래에셋증권12월뉴스키워드.xlsx" afterDir="false" />
102 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/미래에셋증권/미래에셋증권1월뉴스키워드.xlsx" afterDir="false" />
103 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/미래에셋증권/미래에셋증권2월뉴스키워드.xlsx" afterDir="false" />
104 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/미래에셋증권/미래에셋증권3월뉴스키워드.xlsx" afterDir="false" />
105 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/삼성SDS/삼성SDS10월뉴스키워드.xlsx" afterDir="false" />
106 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/삼성SDS/삼성SDS11월뉴스키워드.xlsx" afterDir="false" />
107 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/삼성SDS/삼성SDS12월뉴스키워드.xlsx" afterDir="false" />
108 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/삼성SDS/삼성SDS1월뉴스키워드.xlsx" afterDir="false" />
109 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/삼성SDS/삼성SDS2월뉴스키워드.xlsx" afterDir="false" />
110 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/삼성SDS/삼성SDS3월뉴스키워드.xlsx" afterDir="false" />
111 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/삼성생명/삼성생명10월뉴스키워드.xlsx" afterDir="false" />
112 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/삼성생명/삼성생명11월뉴스키워드.xlsx" afterDir="false" />
113 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/삼성생명/삼성생명12월뉴스키워드.xlsx" afterDir="false" />
114 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/삼성생명/삼성생명1월뉴스키워드.xlsx" afterDir="false" />
115 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/삼성생명/삼성생명2월뉴스키워드.xlsx" afterDir="false" />
116 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/삼성생명/삼성생명3월뉴스키워드.xlsx" afterDir="false" />
117 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/삼성전기/삼성전기10월뉴스키워드.xlsx" afterDir="false" />
118 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/삼성전기/삼성전기11월뉴스키워드.xlsx" afterDir="false" />
119 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/삼성전기/삼성전기12월뉴스키워드.xlsx" afterDir="false" />
120 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/삼성전기/삼성전기1월뉴스키워드.xlsx" afterDir="false" />
121 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/삼성전기/삼성전기2월뉴스키워드.xlsx" afterDir="false" />
122 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/삼성전기/삼성전기3월뉴스키워드.xlsx" afterDir="false" />
123 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/삼성화재/삼성화재10월뉴스키워드.xlsx" afterDir="false" />
124 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/삼성화재/삼성화재11월뉴스키워드.xlsx" afterDir="false" />
125 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/삼성화재/삼성화재12월뉴스키워드.xlsx" afterDir="false" />
126 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/삼성화재/삼성화재1월뉴스키워드.xlsx" afterDir="false" />
127 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/삼성화재/삼성화재2월뉴스키워드.xlsx" afterDir="false" />
128 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/삼성화재/삼성화재3월뉴스키워드.xlsx" afterDir="false" />
129 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/아모레퍼시픽/아모레퍼시픽10월뉴스키워드.xlsx" afterDir="false" />
130 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/아모레퍼시픽/아모레퍼시픽11월뉴스키워드.xlsx" afterDir="false" />
131 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/아모레퍼시픽/아모레퍼시픽12월뉴스키워드.xlsx" afterDir="false" />
132 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/아모레퍼시픽/아모레퍼시픽1월뉴스키워드.xlsx" afterDir="false" />
133 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/아모레퍼시픽/아모레퍼시픽2월뉴스키워드.xlsx" afterDir="false" />
134 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/아모레퍼시픽/아모레퍼시픽3월뉴스키워드.xlsx" afterDir="false" />
135 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/우리금융지주/우리금융지주10월뉴스키워드.xlsx" afterDir="false" />
136 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/우리금융지주/우리금융지주11월뉴스키워드.xlsx" afterDir="false" />
137 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/우리금융지주/우리금융지주12월뉴스키워드.xlsx" afterDir="false" />
138 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/우리금융지주/우리금융지주1월뉴스키워드.xlsx" afterDir="false" />
139 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/우리금융지주/우리금융지주2월뉴스키워드.xlsx" afterDir="false" />
140 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/우리금융지주/우리금융지주3월뉴스키워드.xlsx" afterDir="false" />
141 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/포스코케미칼/포스코케미칼10월뉴스키워드.xlsx" afterDir="false" />
142 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/포스코케미칼/포스코케미칼11월뉴스키워드.xlsx" afterDir="false" />
143 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/포스코케미칼/포스코케미칼12월뉴스키워드.xlsx" afterDir="false" />
144 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/포스코케미칼/포스코케미칼1월뉴스키워드.xlsx" afterDir="false" />
145 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/포스코케미칼/포스코케미칼2월뉴스키워드.xlsx" afterDir="false" />
146 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/포스코케미칼/포스코케미칼3월뉴스키워드.xlsx" afterDir="false" />
147 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/하나금융지주/하나금융지주10월뉴스키워드.xlsx" afterDir="false" />
148 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/하나금융지주/하나금융지주11월뉴스키워드.xlsx" afterDir="false" />
149 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/하나금융지주/하나금융지주12월뉴스키워드.xlsx" afterDir="false" />
150 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/하나금융지주/하나금융지주1월뉴스키워드.xlsx" afterDir="false" />
151 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/하나금융지주/하나금융지주2월뉴스키워드.xlsx" afterDir="false" />
152 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/하나금융지주/하나금융지주3월뉴스키워드.xlsx" afterDir="false" />
153 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/하이브/하이브10월뉴스키워드.xlsx" afterDir="false" />
154 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/하이브/하이브11월뉴스키워드.xlsx" afterDir="false" />
155 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/하이브/하이브12월뉴스키워드.xlsx" afterDir="false" />
156 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/하이브/하이브1월뉴스키워드.xlsx" afterDir="false" />
157 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/하이브/하이브2월뉴스키워드.xlsx" afterDir="false" />
158 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/하이브/하이브3월뉴스키워드.xlsx" afterDir="false" />
159 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/한국전력/한국전력10월뉴스키워드.xlsx" afterDir="false" />
160 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/한국전력/한국전력11월뉴스키워드.xlsx" afterDir="false" />
161 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/한국전력/한국전력12월뉴스키워드.xlsx" afterDir="false" />
162 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/한국전력/한국전력1월뉴스키워드.xlsx" afterDir="false" />
163 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/한국전력/한국전력2월뉴스키워드.xlsx" afterDir="false" />
164 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/한국전력/한국전력3월뉴스키워드.xlsx" afterDir="false" />
165 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/한국조선해양/한국조선해양10월뉴스키워드.xlsx" afterDir="false" />
166 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/한국조선해양/한국조선해양11월뉴스키워드.xlsx" afterDir="false" />
167 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/한국조선해양/한국조선해양12월뉴스키워드.xlsx" afterDir="false" />
168 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/한국조선해양/한국조선해양1월뉴스키워드.xlsx" afterDir="false" />
169 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/한국조선해양/한국조선해양2월뉴스키워드.xlsx" afterDir="false" />
170 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/한국조선해양/한국조선해양3월뉴스키워드.xlsx" afterDir="false" />
171 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/한온시스템/한온시스템10월뉴스키워드.xlsx" afterDir="false" />
172 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/한온시스템/한온시스템11월뉴스키워드.xlsx" afterDir="false" />
173 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/한온시스템/한온시스템12월뉴스키워드.xlsx" afterDir="false" />
174 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/한온시스템/한온시스템1월뉴스키워드.xlsx" afterDir="false" />
175 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/한온시스템/한온시스템2월뉴스키워드.xlsx" afterDir="false" />
176 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/한온시스템/한온시스템3월뉴스키워드.xlsx" afterDir="false" />
177 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/한화솔루션/한화솔루션10월뉴스키워드.xlsx" afterDir="false" />
178 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/한화솔루션/한화솔루션11월뉴스키워드.xlsx" afterDir="false" />
179 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/한화솔루션/한화솔루션12월뉴스키워드.xlsx" afterDir="false" />
180 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/한화솔루션/한화솔루션1월뉴스키워드.xlsx" afterDir="false" />
181 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/한화솔루션/한화솔루션2월뉴스키워드.xlsx" afterDir="false" />
182 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/한화솔루션/한화솔루션3월뉴스키워드.xlsx" afterDir="false" />
183 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/현대글로비스/현대글로비스10월뉴스키워드.xlsx" afterDir="false" />
184 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/현대글로비스/현대글로비스11월뉴스키워드.xlsx" afterDir="false" />
185 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/현대글로비스/현대글로비스12월뉴스키워드.xlsx" afterDir="false" />
186 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/현대글로비스/현대글로비스1월뉴스키워드.xlsx" afterDir="false" />
187 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/현대글로비스/현대글로비스2월뉴스키워드.xlsx" afterDir="false" />
188 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/현대글로비스/현대글로비스3월뉴스키워드.xlsx" afterDir="false" />
189 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/현대제철/현대제철10월뉴스키워드.xlsx" afterDir="false" />
190 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/현대제철/현대제철11월뉴스키워드.xlsx" afterDir="false" />
191 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/현대제철/현대제철12월뉴스키워드.xlsx" afterDir="false" />
192 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/현대제철/현대제철1월뉴스키워드.xlsx" afterDir="false" />
193 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/현대제철/현대제철2월뉴스키워드.xlsx" afterDir="false" />
194 + <change afterPath="$PROJECT_DIR$/../뉴스키워드/현대제철/현대제철3월뉴스키워드.xlsx" afterDir="false" />
195 + <change afterPath="$PROJECT_DIR$/../종목별시세/hmm/data_1640_20210419.xlsx" afterDir="false" />
196 + <change afterPath="$PROJECT_DIR$/../종목별시세/hmm/data_1723_20210419.xlsx" afterDir="false" />
197 + <change afterPath="$PROJECT_DIR$/../종목별시세/hmm/data_1758_20210419.xlsx" afterDir="false" />
198 + <change afterPath="$PROJECT_DIR$/../종목별시세/hmm/data_1809_20210419.xlsx" afterDir="false" />
199 + <change afterPath="$PROJECT_DIR$/../종목별시세/hmm/data_3042_20210419.xlsx" afterDir="false" />
200 + <change afterPath="$PROJECT_DIR$/../종목별시세/hmm/hmm3월시세.xlsx" afterDir="false" />
201 + <change afterPath="$PROJECT_DIR$/../종목별시세/kt/data_3605_20210419.xlsx" afterDir="false" />
202 + <change afterPath="$PROJECT_DIR$/../종목별시세/kt/data_3618_20210419.xlsx" afterDir="false" />
203 + <change afterPath="$PROJECT_DIR$/../종목별시세/kt/data_3723_20210419.xlsx" afterDir="false" />
204 + <change afterPath="$PROJECT_DIR$/../종목별시세/kt/data_3743_20210419.xlsx" afterDir="false" />
205 + <change afterPath="$PROJECT_DIR$/../종목별시세/kt/data_3804_20210419.xlsx" afterDir="false" />
206 + <change afterPath="$PROJECT_DIR$/../종목별시세/kt/data_3846_20210419.xlsx" afterDir="false" />
207 + <change afterPath="$PROJECT_DIR$/../종목별시세/lg디스플레이/data_3955_20210419.xlsx" afterDir="false" />
208 + <change afterPath="$PROJECT_DIR$/../종목별시세/lg디스플레이/data_4205_20210419.xlsx" afterDir="false" />
209 + <change afterPath="$PROJECT_DIR$/../종목별시세/lg디스플레이/data_4221_20210419.xlsx" afterDir="false" />
210 + <change afterPath="$PROJECT_DIR$/../종목별시세/lg디스플레이/data_4237_20210419.xlsx" afterDir="false" />
211 + <change afterPath="$PROJECT_DIR$/../종목별시세/lg디스플레이/data_4255_20210419.xlsx" afterDir="false" />
212 + <change afterPath="$PROJECT_DIR$/../종목별시세/lg디스플레이/data_4315_20210419.xlsx" afterDir="false" />
213 + <change afterPath="$PROJECT_DIR$/../종목별시세/s-oil/data_5307_20210419.xlsx" afterDir="false" />
214 + <change afterPath="$PROJECT_DIR$/../종목별시세/s-oil/data_5319_20210419.xlsx" afterDir="false" />
215 + <change afterPath="$PROJECT_DIR$/../종목별시세/s-oil/data_5343_20210419.xlsx" afterDir="false" />
216 + <change afterPath="$PROJECT_DIR$/../종목별시세/s-oil/data_5406_20210419.xlsx" afterDir="false" />
217 + <change afterPath="$PROJECT_DIR$/../종목별시세/s-oil/data_5420_20210419.xlsx" afterDir="false" />
218 + <change afterPath="$PROJECT_DIR$/../종목별시세/s-oil/data_5440_20210419.xlsx" afterDir="false" />
219 + <change afterPath="$PROJECT_DIR$/../종목별시세/sk바이오팜/data_4346_20210419.xlsx" afterDir="false" />
220 + <change afterPath="$PROJECT_DIR$/../종목별시세/sk바이오팜/data_4402_20210419.xlsx" afterDir="false" />
221 + <change afterPath="$PROJECT_DIR$/../종목별시세/sk바이오팜/data_5047_20210419.xlsx" afterDir="false" />
222 + <change afterPath="$PROJECT_DIR$/../종목별시세/sk바이오팜/data_5141_20210419.xlsx" afterDir="false" />
223 + <change afterPath="$PROJECT_DIR$/../종목별시세/sk바이오팜/data_5231_20210419.xlsx" afterDir="false" />
224 + <change afterPath="$PROJECT_DIR$/../종목별시세/sk바이오팜/data_5246_20210419.xlsx" afterDir="false" />
225 + <change afterPath="$PROJECT_DIR$/../종목별시세/고려아연/data_5614_20210419.xlsx" afterDir="false" />
226 + <change afterPath="$PROJECT_DIR$/../종목별시세/고려아연/data_5624_20210419.xlsx" afterDir="false" />
227 + <change afterPath="$PROJECT_DIR$/../종목별시세/고려아연/data_5637_20210419.xlsx" afterDir="false" />
228 + <change afterPath="$PROJECT_DIR$/../종목별시세/고려아연/data_5649_20210419.xlsx" afterDir="false" />
229 + <change afterPath="$PROJECT_DIR$/../종목별시세/고려아연/data_5705_20210419.xlsx" afterDir="false" />
230 + <change afterPath="$PROJECT_DIR$/../종목별시세/고려아연/data_5716_20210419.xlsx" afterDir="false" />
231 + <change afterPath="$PROJECT_DIR$/../종목별시세/금호석유/data_0008_20210419.xlsx" afterDir="false" />
232 + <change afterPath="$PROJECT_DIR$/../종목별시세/금호석유/data_5741_20210419.xlsx" afterDir="false" />
233 + <change afterPath="$PROJECT_DIR$/../종목별시세/금호석유/data_5753_20210419.xlsx" afterDir="false" />
234 + <change afterPath="$PROJECT_DIR$/../종목별시세/금호석유/data_5807_20210419.xlsx" afterDir="false" />
235 + <change afterPath="$PROJECT_DIR$/../종목별시세/금호석유/data_5845_20210419.xlsx" afterDir="false" />
236 + <change afterPath="$PROJECT_DIR$/../종목별시세/금호석유/data_5958_20210419.xlsx" afterDir="false" />
237 + <change afterPath="$PROJECT_DIR$/../종목별시세/기업은행/data_0030_20210419.xlsx" afterDir="false" />
238 + <change afterPath="$PROJECT_DIR$/../종목별시세/기업은행/data_0040_20210419.xlsx" afterDir="false" />
239 + <change afterPath="$PROJECT_DIR$/../종목별시세/기업은행/data_0049_20210419.xlsx" afterDir="false" />
240 + <change afterPath="$PROJECT_DIR$/../종목별시세/기업은행/data_0106_20210419.xlsx" afterDir="false" />
241 + <change afterPath="$PROJECT_DIR$/../종목별시세/기업은행/data_0115_20210419.xlsx" afterDir="false" />
242 + <change afterPath="$PROJECT_DIR$/../종목별시세/기업은행/data_0138_20210419.xlsx" afterDir="false" />
243 + <change afterPath="$PROJECT_DIR$/../종목별시세/대한항공/data_1126_20210419.xlsx" afterDir="false" />
244 + <change afterPath="$PROJECT_DIR$/../종목별시세/대한항공/data_1136_20210419.xlsx" afterDir="false" />
245 + <change afterPath="$PROJECT_DIR$/../종목별시세/대한항공/data_1146_20210419.xlsx" afterDir="false" />
246 + <change afterPath="$PROJECT_DIR$/../종목별시세/대한항공/data_1209_20210419.xlsx" afterDir="false" />
247 + <change afterPath="$PROJECT_DIR$/../종목별시세/대한항공/data_1219_20210419.xlsx" afterDir="false" />
248 + <change afterPath="$PROJECT_DIR$/../종목별시세/대한항공/data_1230_20210419.xlsx" afterDir="false" />
249 + <change afterPath="$PROJECT_DIR$/../종목별시세/롯데케미칼/data_1250_20210419.xlsx" afterDir="false" />
250 + <change afterPath="$PROJECT_DIR$/../종목별시세/롯데케미칼/data_1306_20210419.xlsx" afterDir="false" />
251 + <change afterPath="$PROJECT_DIR$/../종목별시세/롯데케미칼/data_1317_20210419.xlsx" afterDir="false" />
252 + <change afterPath="$PROJECT_DIR$/../종목별시세/롯데케미칼/data_1327_20210419.xlsx" afterDir="false" />
253 + <change afterPath="$PROJECT_DIR$/../종목별시세/롯데케미칼/data_1356_20210419.xlsx" afterDir="false" />
254 + <change afterPath="$PROJECT_DIR$/../종목별시세/롯데케미칼/data_1405_20210419.xlsx" afterDir="false" />
255 + <change afterPath="$PROJECT_DIR$/../종목별시세/미래에셋증권/data_1430_20210419.xlsx" afterDir="false" />
256 + <change afterPath="$PROJECT_DIR$/../종목별시세/미래에셋증권/data_1439_20210419.xlsx" afterDir="false" />
257 + <change afterPath="$PROJECT_DIR$/../종목별시세/미래에셋증권/data_1448_20210419.xlsx" afterDir="false" />
258 + <change afterPath="$PROJECT_DIR$/../종목별시세/미래에셋증권/data_1457_20210419.xlsx" afterDir="false" />
259 + <change afterPath="$PROJECT_DIR$/../종목별시세/미래에셋증권/data_1507_20210419.xlsx" afterDir="false" />
260 + <change afterPath="$PROJECT_DIR$/../종목별시세/미래에셋증권/data_1515_20210419.xlsx" afterDir="false" />
261 + <change afterPath="$PROJECT_DIR$/../종목별시세/삼성SDS/data_1805_20210419.xlsx" afterDir="false" />
262 + <change afterPath="$PROJECT_DIR$/../종목별시세/삼성SDS/data_1815_20210419.xlsx" afterDir="false" />
263 + <change afterPath="$PROJECT_DIR$/../종목별시세/삼성SDS/data_1928_20210419.xlsx" afterDir="false" />
264 + <change afterPath="$PROJECT_DIR$/../종목별시세/삼성SDS/data_2225_20210419.xlsx" afterDir="false" />
265 + <change afterPath="$PROJECT_DIR$/../종목별시세/삼성SDS/data_2234_20210419.xlsx" afterDir="false" />
266 + <change afterPath="$PROJECT_DIR$/../종목별시세/삼성SDS/data_2243_20210419.xlsx" afterDir="false" />
267 + <change afterPath="$PROJECT_DIR$/../종목별시세/삼성생명/data_2306_20210419.xlsx" afterDir="false" />
268 + <change afterPath="$PROJECT_DIR$/../종목별시세/삼성생명/data_2318_20210419.xlsx" afterDir="false" />
269 + <change afterPath="$PROJECT_DIR$/../종목별시세/삼성생명/data_2327_20210419.xlsx" afterDir="false" />
270 + <change afterPath="$PROJECT_DIR$/../종목별시세/삼성생명/data_2336_20210419.xlsx" afterDir="false" />
271 + <change afterPath="$PROJECT_DIR$/../종목별시세/삼성생명/data_2345_20210419.xlsx" afterDir="false" />
272 + <change afterPath="$PROJECT_DIR$/../종목별시세/삼성생명/data_2356_20210419.xlsx" afterDir="false" />
273 + <change afterPath="$PROJECT_DIR$/../종목별시세/삼성전기/data_2422_20210419.xlsx" afterDir="false" />
274 + <change afterPath="$PROJECT_DIR$/../종목별시세/삼성전기/data_2431_20210419.xlsx" afterDir="false" />
275 + <change afterPath="$PROJECT_DIR$/../종목별시세/삼성전기/data_2439_20210419.xlsx" afterDir="false" />
276 + <change afterPath="$PROJECT_DIR$/../종목별시세/삼성전기/data_2449_20210419.xlsx" afterDir="false" />
277 + <change afterPath="$PROJECT_DIR$/../종목별시세/삼성전기/data_2459_20210419.xlsx" afterDir="false" />
278 + <change afterPath="$PROJECT_DIR$/../종목별시세/삼성전기/data_2509_20210419.xlsx" afterDir="false" />
279 + <change afterPath="$PROJECT_DIR$/../종목별시세/삼성화재/data_2541_20210419.xlsx" afterDir="false" />
280 + <change afterPath="$PROJECT_DIR$/../종목별시세/삼성화재/data_2550_20210419.xlsx" afterDir="false" />
281 + <change afterPath="$PROJECT_DIR$/../종목별시세/삼성화재/data_2853_20210419.xlsx" afterDir="false" />
282 + <change afterPath="$PROJECT_DIR$/../종목별시세/삼성화재/data_2908_20210419.xlsx" afterDir="false" />
283 + <change afterPath="$PROJECT_DIR$/../종목별시세/삼성화재/data_3029_20210419.xlsx" afterDir="false" />
284 + <change afterPath="$PROJECT_DIR$/../종목별시세/삼성화재/data_3039_20210419.xlsx" afterDir="false" />
285 + <change afterPath="$PROJECT_DIR$/../종목별시세/아모레퍼시픽/data_3154_20210419.xlsx" afterDir="false" />
286 + <change afterPath="$PROJECT_DIR$/../종목별시세/아모레퍼시픽/data_3204_20210419.xlsx" afterDir="false" />
287 + <change afterPath="$PROJECT_DIR$/../종목별시세/아모레퍼시픽/data_3220_20210419.xlsx" afterDir="false" />
288 + <change afterPath="$PROJECT_DIR$/../종목별시세/아모레퍼시픽/data_3230_20210419.xlsx" afterDir="false" />
289 + <change afterPath="$PROJECT_DIR$/../종목별시세/아모레퍼시픽/data_3240_20210419.xlsx" afterDir="false" />
290 + <change afterPath="$PROJECT_DIR$/../종목별시세/아모레퍼시픽/data_3249_20210419.xlsx" afterDir="false" />
291 + <change afterPath="$PROJECT_DIR$/../종목별시세/우리금융지주/data_3328_20210419.xlsx" afterDir="false" />
292 + <change afterPath="$PROJECT_DIR$/../종목별시세/우리금융지주/data_3907_20210419.xlsx" afterDir="false" />
293 + <change afterPath="$PROJECT_DIR$/../종목별시세/우리금융지주/data_3916_20210419.xlsx" afterDir="false" />
294 + <change afterPath="$PROJECT_DIR$/../종목별시세/우리금융지주/data_3924_20210419.xlsx" afterDir="false" />
295 + <change afterPath="$PROJECT_DIR$/../종목별시세/우리금융지주/data_3931_20210419.xlsx" afterDir="false" />
296 + <change afterPath="$PROJECT_DIR$/../종목별시세/우리금융지주/data_3942_20210419.xlsx" afterDir="false" />
297 + <change afterPath="$PROJECT_DIR$/../종목별시세/포스코케미칼/data_4004_20210419.xlsx" afterDir="false" />
298 + <change afterPath="$PROJECT_DIR$/../종목별시세/포스코케미칼/data_4014_20210419.xlsx" afterDir="false" />
299 + <change afterPath="$PROJECT_DIR$/../종목별시세/포스코케미칼/data_4023_20210419.xlsx" afterDir="false" />
300 + <change afterPath="$PROJECT_DIR$/../종목별시세/포스코케미칼/data_4031_20210419.xlsx" afterDir="false" />
301 + <change afterPath="$PROJECT_DIR$/../종목별시세/포스코케미칼/data_4040_20210419.xlsx" afterDir="false" />
302 + <change afterPath="$PROJECT_DIR$/../종목별시세/포스코케미칼/data_4049_20210419.xlsx" afterDir="false" />
303 + <change afterPath="$PROJECT_DIR$/../종목별시세/하나금융지주/data_4106_20210419.xlsx" afterDir="false" />
304 + <change afterPath="$PROJECT_DIR$/../종목별시세/하나금융지주/data_4117_20210419.xlsx" afterDir="false" />
305 + <change afterPath="$PROJECT_DIR$/../종목별시세/하나금융지주/data_4127_20210419.xlsx" afterDir="false" />
306 + <change afterPath="$PROJECT_DIR$/../종목별시세/하나금융지주/data_4137_20210419.xlsx" afterDir="false" />
307 + <change afterPath="$PROJECT_DIR$/../종목별시세/하나금융지주/data_4145_20210419.xlsx" afterDir="false" />
308 + <change afterPath="$PROJECT_DIR$/../종목별시세/하나금융지주/data_4153_20210419.xlsx" afterDir="false" />
309 + <change afterPath="$PROJECT_DIR$/../종목별시세/하이브/data_4212_20210419.xlsx" afterDir="false" />
310 + <change afterPath="$PROJECT_DIR$/../종목별시세/하이브/data_4227_20210419.xlsx" afterDir="false" />
311 + <change afterPath="$PROJECT_DIR$/../종목별시세/하이브/data_4257_20210419.xlsx" afterDir="false" />
312 + <change afterPath="$PROJECT_DIR$/../종목별시세/하이브/data_4311_20210419.xlsx" afterDir="false" />
313 + <change afterPath="$PROJECT_DIR$/../종목별시세/하이브/data_4321_20210419.xlsx" afterDir="false" />
314 + <change afterPath="$PROJECT_DIR$/../종목별시세/하이브/data_4331_20210419.xlsx" afterDir="false" />
315 + <change afterPath="$PROJECT_DIR$/../종목별시세/한국전력/data_4350_20210419.xlsx" afterDir="false" />
316 + <change afterPath="$PROJECT_DIR$/../종목별시세/한국전력/data_4400_20210419.xlsx" afterDir="false" />
317 + <change afterPath="$PROJECT_DIR$/../종목별시세/한국전력/data_4408_20210419.xlsx" afterDir="false" />
318 + <change afterPath="$PROJECT_DIR$/../종목별시세/한국전력/data_4417_20210419.xlsx" afterDir="false" />
319 + <change afterPath="$PROJECT_DIR$/../종목별시세/한국전력/data_4425_20210419.xlsx" afterDir="false" />
320 + <change afterPath="$PROJECT_DIR$/../종목별시세/한국전력/data_4434_20210419.xlsx" afterDir="false" />
321 + <change afterPath="$PROJECT_DIR$/../종목별시세/한국조선해양/data_4458_20210419.xlsx" afterDir="false" />
322 + <change afterPath="$PROJECT_DIR$/../종목별시세/한국조선해양/data_4507_20210419.xlsx" afterDir="false" />
323 + <change afterPath="$PROJECT_DIR$/../종목별시세/한국조선해양/data_4516_20210419.xlsx" afterDir="false" />
324 + <change afterPath="$PROJECT_DIR$/../종목별시세/한국조선해양/data_4523_20210419.xlsx" afterDir="false" />
325 + <change afterPath="$PROJECT_DIR$/../종목별시세/한국조선해양/data_4532_20210419.xlsx" afterDir="false" />
326 + <change afterPath="$PROJECT_DIR$/../종목별시세/한국조선해양/data_4555_20210419.xlsx" afterDir="false" />
327 + <change afterPath="$PROJECT_DIR$/../종목별시세/한온시스템/data_4614_20210419.xlsx" afterDir="false" />
328 + <change afterPath="$PROJECT_DIR$/../종목별시세/한온시스템/data_4623_20210419.xlsx" afterDir="false" />
329 + <change afterPath="$PROJECT_DIR$/../종목별시세/한온시스템/data_4639_20210419.xlsx" afterDir="false" />
330 + <change afterPath="$PROJECT_DIR$/../종목별시세/한온시스템/data_4649_20210419.xlsx" afterDir="false" />
331 + <change afterPath="$PROJECT_DIR$/../종목별시세/한온시스템/data_4658_20210419.xlsx" afterDir="false" />
332 + <change afterPath="$PROJECT_DIR$/../종목별시세/한온시스템/data_4708_20210419.xlsx" afterDir="false" />
333 + <change afterPath="$PROJECT_DIR$/../종목별시세/한화솔루션/data_5515_20210419.xlsx" afterDir="false" />
334 + <change afterPath="$PROJECT_DIR$/../종목별시세/한화솔루션/data_5524_20210419.xlsx" afterDir="false" />
335 + <change afterPath="$PROJECT_DIR$/../종목별시세/한화솔루션/data_5534_20210419.xlsx" afterDir="false" />
336 + <change afterPath="$PROJECT_DIR$/../종목별시세/한화솔루션/data_5543_20210419.xlsx" afterDir="false" />
337 + <change afterPath="$PROJECT_DIR$/../종목별시세/한화솔루션/data_5550_20210419.xlsx" afterDir="false" />
338 + <change afterPath="$PROJECT_DIR$/../종목별시세/한화솔루션/data_5600_20210419.xlsx" afterDir="false" />
339 + <change afterPath="$PROJECT_DIR$/../종목별시세/현대글로비스/data_5631_20210419.xlsx" afterDir="false" />
340 + <change afterPath="$PROJECT_DIR$/../종목별시세/현대글로비스/data_5639_20210419.xlsx" afterDir="false" />
341 + <change afterPath="$PROJECT_DIR$/../종목별시세/현대글로비스/data_5647_20210419.xlsx" afterDir="false" />
342 + <change afterPath="$PROJECT_DIR$/../종목별시세/현대글로비스/data_5658_20210419.xlsx" afterDir="false" />
343 + <change afterPath="$PROJECT_DIR$/../종목별시세/현대글로비스/data_5708_20210419.xlsx" afterDir="false" />
344 + <change afterPath="$PROJECT_DIR$/../종목별시세/현대글로비스/data_5717_20210419.xlsx" afterDir="false" />
345 + <change afterPath="$PROJECT_DIR$/../종목별시세/현대제철/data_5734_20210419.xlsx" afterDir="false" />
346 + <change afterPath="$PROJECT_DIR$/../종목별시세/현대제철/data_5742_20210419.xlsx" afterDir="false" />
347 + <change afterPath="$PROJECT_DIR$/../종목별시세/현대제철/data_5756_20210419.xlsx" afterDir="false" />
348 + <change afterPath="$PROJECT_DIR$/../종목별시세/현대제철/data_5804_20210419.xlsx" afterDir="false" />
349 + <change afterPath="$PROJECT_DIR$/../종목별시세/현대제철/data_5814_20210419.xlsx" afterDir="false" />
350 + <change afterPath="$PROJECT_DIR$/../종목별시세/현대제철/data_5824_20210419.xlsx" afterDir="false" />
351 + <change afterPath="$PROJECT_DIR$/../중간보고서.pdf" afterDir="false" />
352 + <change afterPath="$PROJECT_DIR$/../코스피10월뉴스키워드.xlsx" afterDir="false" />
353 + <change afterPath="$PROJECT_DIR$/../코스피11월뉴스키워드.xlsx" afterDir="false" />
354 + <change afterPath="$PROJECT_DIR$/../코스피12월뉴스키워드.xlsx" afterDir="false" />
355 + <change beforePath="$PROJECT_DIR$/../hmm1월.xlsx" beforeDir="false" />
356 + <change beforePath="$PROJECT_DIR$/../hmm1월_가중치추출.xlsx" beforeDir="false" />
357 + <change beforePath="$PROJECT_DIR$/../hmm1월_명사추출.xlsx" beforeDir="false" />
358 + <change beforePath="$PROJECT_DIR$/../hmm2월_명사추출.xlsx" beforeDir="false" />
359 + <change beforePath="$PROJECT_DIR$/../hmm2월_명사추출_숫자제외.xlsx" beforeDir="false" />
360 + <change beforePath="$PROJECT_DIR$/../knp.py" beforeDir="false" afterPath="$PROJECT_DIR$/../knp.py" afterDir="false" />
361 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/hmm/hmm10월.xlsx" beforeDir="false" />
362 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/hmm/hmm11월.xlsx" beforeDir="false" />
363 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/hmm/hmm12월.xlsx" beforeDir="false" />
364 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/hmm/hmm1월.xlsx" beforeDir="false" />
365 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/hmm/hmm2월.xlsx" beforeDir="false" />
366 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/hmm/hmm3월.xlsx" beforeDir="false" />
367 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/kt&amp;g(보류)/2021-4-15 16시 49분 6초 merging.xlsx" beforeDir="false" />
368 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/kt&amp;g(보류)/2021-4-15 17시 5분 46초 merging.xlsx" beforeDir="false" />
369 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/금호석유/2021-4-16 10시 32분 58초 merging.xlsx" beforeDir="false" />
370 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/금호석유/2021-4-16 10시 39분 27초 merging.xlsx" beforeDir="false" />
371 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/금호석유/2021-4-16 10시 48분 36초 merging.xlsx" beforeDir="false" />
372 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/금호석유/2021-4-16 10시 56분 54초 merging.xlsx" beforeDir="false" />
373 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/금호석유/2021-4-16 10시 7분 43초 merging.xlsx" beforeDir="false" />
374 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/금호석유/2021-4-16 11시 3분 9초 merging.xlsx" beforeDir="false" />
375 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/금호석유/2021-4-16 11시 9분 40초 merging.xlsx" beforeDir="false" />
376 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/금호석유/2021-4-16 9시 45분 49초 merging.xlsx" beforeDir="false" />
377 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/금호석유/2021-4-16 9시 53분 0초 merging.xlsx" beforeDir="false" />
378 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/금호석유/2021-4-16 9시 58분 44초 merging.xlsx" beforeDir="false" />
379 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/금호석유/금호석유10월.xlsx" beforeDir="false" />
380 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/금호석유/금호석유11월.xlsx" beforeDir="false" />
381 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/금호석유/금호석유12월.xlsx" beforeDir="false" />
382 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/금호석유/금호석유1월.xlsx" beforeDir="false" />
383 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/금호석유/금호석유2월.xlsx" beforeDir="false" />
384 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/금호석유/금호석유3월.xlsx" beforeDir="false" />
385 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/대한항공/2021-4-14 15시 32분 35초 merging.xlsx" beforeDir="false" />
386 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/대한항공/2021-4-14 15시 40분 14초 merging.xlsx" beforeDir="false" />
387 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/대한항공/2021-4-14 15시 47분 35초 merging.xlsx" beforeDir="false" />
388 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/대한항공/2021-4-14 16시 13분 52초 merging.xlsx" beforeDir="false" />
389 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/대한항공/2021-4-14 16시 21분 37초 merging.xlsx" beforeDir="false" />
390 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/대한항공/2021-4-14 16시 32분 13초 merging.xlsx" beforeDir="false" />
391 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/대한항공/대한항공10월.xlsx" beforeDir="false" />
392 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/대한항공/대한항공11월.xlsx" beforeDir="false" />
393 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/대한항공/대한항공12월.xlsx" beforeDir="false" />
394 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/대한항공/대한항공1월.xlsx" beforeDir="false" />
395 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/대한항공/대한항공2월.xlsx" beforeDir="false" />
396 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/대한항공/대한항공3월.xlsx" beforeDir="false" />
397 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/롯데케미칼/롯데케미칼10월.xlsx" beforeDir="false" />
398 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/롯데케미칼/롯데케미칼11월.xlsx" beforeDir="false" />
399 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/롯데케미칼/롯데케미칼12월.xlsx" beforeDir="false" />
400 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/롯데케미칼/롯데케미칼1월.xlsx" beforeDir="false" />
401 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/롯데케미칼/롯데케미칼2월.xlsx" beforeDir="false" />
402 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/롯데케미칼/롯데케미칼3월.xlsx" beforeDir="false" />
403 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/빅히트/2021-4-14 17시 31분 28초 merging.xlsx" beforeDir="false" />
404 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/빅히트/2021-4-14 17시 49분 31초 merging.xlsx" beforeDir="false" />
405 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/빅히트/2021-4-14 17시 57분 40초 merging.xlsx" beforeDir="false" />
406 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/빅히트/2021-4-14 18시 0분 54초 merging.xlsx" beforeDir="false" />
407 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/빅히트/2021-4-14 18시 32분 49초 merging.xlsx" beforeDir="false" />
408 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/빅히트/2021-4-14 18시 48분 0초 merging.xlsx" beforeDir="false" />
409 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/빅히트/2021-4-14 18시 6분 26초 merging.xlsx" beforeDir="false" />
410 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/빅히트/2021-4-14 19시 19분 23초 merging.xlsx" beforeDir="false" />
411 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/빅히트/2021-4-14 19시 25분 56초 merging.xlsx" beforeDir="false" />
412 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/빅히트/2021-4-14 19시 3분 23초 merging.xlsx" beforeDir="false" />
413 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/빅히트/하이브10월.xlsx" beforeDir="false" />
414 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/빅히트/하이브11월.xlsx" beforeDir="false" />
415 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/빅히트/하이브12월.xlsx" beforeDir="false" />
416 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/빅히트/하이브1월.xlsx" beforeDir="false" />
417 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/빅히트/하이브2월.xlsx" beforeDir="false" />
418 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/빅히트/하이브3월.xlsx" beforeDir="false" />
419 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/신한지주/2021-4-16 18시 34분 49초 merging.xlsx" beforeDir="false" />
420 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/신한지주/2021-4-16 18시 50분 30초 merging.xlsx" beforeDir="false" />
421 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/신한지주/2021-4-16 18시 57분 35초 merging.xlsx" beforeDir="false" />
422 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/신한지주/2021-4-16 19시 12분 52초 merging.xlsx" beforeDir="false" />
423 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/신한지주/2021-4-16 19시 22분 8초 merging.xlsx" beforeDir="false" />
424 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/신한지주/2021-4-16 19시 30분 6초 merging.xlsx" beforeDir="false" />
425 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/신한지주/2021-4-16 19시 4분 15초 merging.xlsx" beforeDir="false" />
426 + <change beforePath="$PROJECT_DIR$/../뉴스크롤링/신한지주/신한지주3월.xlsx" beforeDir="false" />
427 + </list>
428 + <option name="SHOW_DIALOG" value="false" />
429 + <option name="HIGHLIGHT_CONFLICTS" value="true" />
430 + <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
431 + <option name="LAST_RESOLUTION" value="IGNORE" />
432 + </component>
433 + <component name="Git.Settings">
434 + <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/KnuSentiLex" />
435 + </component>
436 + <component name="ProjectId" id="1sKE1vqX6hUM7q0Ohx8nPpqQpTo" />
437 + <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
438 + <component name="ProjectViewState">
439 + <option name="hideEmptyMiddlePackages" value="true" />
440 + <option name="showLibraryContents" value="true" />
441 + </component>
442 + <component name="PropertiesComponent">
443 + <property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
444 + <property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
445 + <property name="WebServerToolWindowFactoryState" value="false" />
446 + <property name="last_opened_file_path" value="$PROJECT_DIR$" />
447 + <property name="node.js.detected.package.eslint" value="true" />
448 + <property name="node.js.detected.package.tslint" value="true" />
449 + <property name="node.js.path.for.package.eslint" value="project" />
450 + <property name="node.js.path.for.package.tslint" value="project" />
451 + <property name="node.js.selected.package.eslint" value="(autodetect)" />
452 + <property name="node.js.selected.package.tslint" value="(autodetect)" />
453 + </component>
454 + <component name="RunManager">
455 + <configuration name="knusl" type="PythonConfigurationType" factoryName="Python" temporary="true" nameIsGenerated="true">
456 + <module name="knu" />
457 + <option name="INTERPRETER_OPTIONS" value="" />
458 + <option name="PARENT_ENVS" value="true" />
459 + <envs>
460 + <env name="PYTHONUNBUFFERED" value="1" />
461 + </envs>
462 + <option name="SDK_HOME" value="" />
463 + <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/KnuSentiLex" />
464 + <option name="IS_MODULE_SDK" value="true" />
465 + <option name="ADD_CONTENT_ROOTS" value="true" />
466 + <option name="ADD_SOURCE_ROOTS" value="true" />
467 + <EXTENSION ID="PythonCoverageRunConfigurationExtension" runner="coverage.py" />
468 + <option name="SCRIPT_NAME" value="$PROJECT_DIR$/KnuSentiLex/knusl.py" />
469 + <option name="PARAMETERS" value="" />
470 + <option name="SHOW_COMMAND_LINE" value="false" />
471 + <option name="EMULATE_TERMINAL" value="false" />
472 + <option name="MODULE_MODE" value="false" />
473 + <option name="REDIRECT_INPUT" value="false" />
474 + <option name="INPUT_FILE" value="" />
475 + <method v="2" />
476 + </configuration>
477 + <recent_temporary>
478 + <list>
479 + <item itemvalue="Python.knusl" />
480 + </list>
481 + </recent_temporary>
482 + </component>
483 + <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
484 + <component name="TaskManager">
485 + <task active="true" id="Default" summary="Default task">
486 + <changelist id="c0303638-0fd2-416a-ba15-34825add524a" name="Default Changelist" comment="" />
487 + <created>1620612669345</created>
488 + <option name="number" value="Default" />
489 + <option name="presentableId" value="Default" />
490 + <updated>1620612669345</updated>
491 + <workItem from="1620612670534" duration="1478000" />
492 + </task>
493 + <servers />
494 + </component>
495 + <component name="TypeScriptGeneratedFilesManager">
496 + <option name="version" value="3" />
497 + </component>
498 + <component name="com.intellij.coverage.CoverageDataManagerImpl">
499 + <SUITE FILE_PATH="coverage/knu$knusl.coverage" NAME="knusl Coverage Results" MODIFIED="1620612704306" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="true" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/KnuSentiLex" />
500 + </component>
501 +</project>
...\ No newline at end of file ...\ No newline at end of file
1 +import warnings
2 +
3 +warnings.simplefilter(("ignore"))
4 +import openpyxl
5 +import pandas as pd
6 +
7 +#######Gephi에 사용할 edge파일 만들기 전에 필요한 자료 만드는 과정
8 +####6개월치 키워드 합친 키워드 파일 넣기
9 +
10 +Stockfilename = input("키워드파일이름입력:")
11 +fileStock = "C:/Users/yangj/PycharmProjects/pythonProject1/샘플/" + Stockfilename + ".xlsx"
12 +Stockfile = openpyxl.load_workbook(fileStock) # 파일이름입력
13 +stock_ws = Stockfile.active
14 +Stock_data = [] # list 타입
15 +date=[]
16 +i = 0
17 +for row in stock_ws.rows:
18 + Stock_data.append([])
19 + date.append(row[1].value)
20 + for cell in row:
21 + if cell.value != None:
22 + Stock_data[i].append(cell.value)
23 + i += 1
24 +del Stock_data[0] #첫번째 의미없는 열 삭제
25 +del date[0]
26 +for i in range(len(Stock_data)):
27 + del Stock_data[i][0] #각 열의 첫번째 행 삭제
28 +for i in range(len(Stock_data)):
29 + del Stock_data[i][0] #각 열의 날짜 행 삭제
30 +
31 +
32 +Tdata=[]
33 +
34 +for x in range(len(Stock_data)):
35 + Tdata.append([])
36 + for y in range(len(Stock_data[x])):
37 + if str.isalnum(Stock_data[x][y]) == True:
38 + Tdata[x].append(Stock_data[x][y])
39 +
40 +result = { '날짜':date, '단어':Tdata }
41 +
42 +df = pd.DataFrame(result)
43 +#print(df)
44 +list_df=df.values.tolist() #dataframe list로 변경
45 +print(list_df)
46 +#print(list_df[0][0]) 날짜 2021.01.01.
47 +
48 +new_date = [] # 날짜 중복 삭제
49 +for v in date:
50 + if v not in new_date:
51 + new_date.append(v)
52 +#print(new_date)
53 +
54 +Setlist =[]# 날짜별 키워드 넣기
55 +for v in range(len(new_date)):
56 + Setlist.append([])
57 + Setlist[v].append(new_date[v])
58 + for i in range(len(list_df)):
59 + for j in range(len(list_df[i][1])):
60 + if new_date[v] == list_df[i][0] :
61 + Setlist[v].append(list_df[i][1][j])
62 +print(Setlist)
63 +df_ver= pd.DataFrame(Setlist)
64 +#df_ver.to_excel(Stockfilename+' 날짜뉴스모으고특수삭제.xlsx',sheet_name='sheet1')
65 +SourceTarget=[]
66 +for i in range(len(list_df)):
67 + SourceTarget.append([])
68 + for j in range(len(list_df[i][1])-1):
69 + SourceTarget.append([list_df[i][0],list_df[i][1][j],list_df[i][1][j+1],1])
70 +print(SourceTarget)
71 +SourceTarget = [v for v in SourceTarget if v]
72 +df_SourTar = pd.DataFrame(SourceTarget)
73 +df_SourTar.to_excel(Stockfilename+'Edge3.xlsx',sheet_name='sheet1')
...\ No newline at end of file ...\ No newline at end of file
1 +# KNU 한국어 감성사전
2 +# 작성자 : 온병원, 박상민, 나철원
3 +# 소속 : 군산대학교 소프트웨어융합공학과 Data Intelligence Lab
4 +# 홈페이지 : dilab.kunsan.ac.kr
5 +# 작성일 : 2018.05.14
6 +# 뜻풀이 데이터 출처 : https://github.com/mrchypark/stdkor
7 +# 신조어 데이터 출처 : https://ko.wikipedia.org/wiki/%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD%EC%9D%98_%EC%9D%B8%ED%84%B0%EB%84%B7_%EC%8B%A0%EC%A1%B0%EC%96%B4_%EB%AA%A9%EB%A1%9D
8 +# 이모티콘 데이터 출처: https://ko.wikipedia.org/wiki/%EC%9D%B4%EB%AA%A8%ED%8B%B0%EC%BD%98
9 +# SentiWordNet_3.0.0_20130122 데이터 출처 : http://sentiwordnet.isti.cnr.it/
10 +# SenticNet-5.0 데이터 출처 : http://sentic.net/
11 +# 감정단어사전0603 데이터 출처 : http://datascience.khu.ac.kr/board/bbs/board.php?bo_table=05_01&wr_id=91
12 +# 김은영, “국어 감정동사 연구”, 2004.02, 학위논문(박사) - 전남대학교 국어국문학과 대학원
13 +
14 +#-*-coding:utf-8-*-
15 +import collections
16 +import json
17 +
18 +import warnings
19 +warnings.simplefilter(("ignore"))
20 +import openpyxl
21 +import pandas as pd
22 +import re
23 +from datetime import datetime
24 +
25 +############종목 감성 판단 ex)hmm뉴스키워드.xlsx 파일 넣는 과정
26 +class KnuSL():
27 +
28 + def data_list(wordname):
29 + with open('KnuSentiLex/data/SentiWord_info.json', encoding='utf-8-sig', mode='r') as f:
30 + data = json.load(f)
31 + result = [0,0]
32 +
33 + for i in range(0, len(data)):
34 + if data[i]['word'] == wordname:
35 + result.pop()
36 + result.pop()
37 + result.append(data[i]['word_root'])
38 + result.append(int(data[i]['polarity']))
39 +
40 + r_word = result[0] #어근
41 + s_word = result[1] #극성
42 +
43 + return s_word
44 +
45 +if __name__ == "__main__":
46 +
47 + ksl = KnuSL
48 +
49 + print("\nKNU 한국어 감성사전입니다~ :)")
50 + print("사전에 단어가 없는 경우 결과가 None으로 나타납니다!!!")
51 + print("종료하시려면 #을 입력해주세요!!!")
52 + print("-2:매우 부정, -1:부정, 0:중립 or Unkwon, 1:긍정, 2:매우 긍정")
53 + print("\n")
54 +#########
55 +Newsfilefolder = input("종목폴더입력: ")
56 +Newsfilename=input("파일이름입력:")
57 +Newsfilepos = "C:/Users/yangj/PycharmProjects/pythonProject1/뉴스키워드/"+Newsfilefolder+"/" + Newsfilename + ".xlsx"
58 +Newsfile = openpyxl.load_workbook(Newsfilepos)#파일이름입력
59 +ws=Newsfile.active
60 +data=[]
61 +date=[]
62 +i=0
63 +for row in ws.rows:
64 + data.append([])
65 + date.append(row[1].value)
66 + for cell in row:
67 + if cell.value != None:
68 + data[i].append(cell.value)
69 + i += 1
70 +del data[0] #첫번째 의미없는 열 삭제
71 +del date[0]
72 +for i in range(len(data)):
73 + del data[i][0] #각 열의 첫번째 행 삭제
74 +for i in range(len(data)):
75 + del data[i][0] #각 열의 날짜 행 삭제
76 +
77 +KNUdata=[]
78 +Tdata=[]
79 +
80 +for x in range(len(data)):
81 + KNUdata.append([])
82 + Tdata.append([])
83 + for y in range(len(data[x])):
84 + KNUdata[x].append(ksl.data_list(data[x][y]))
85 + Tdata[x].append([data[x][y], KNUdata[x][y]])
86 +
87 +result = { '날짜':date, '단어, 극성':Tdata }
88 +
89 +df = pd.DataFrame(result)
90 +#print(df)
91 +list_df=df.values.tolist() #dataframe list로 변경
92 +#print(list_df)
93 +#print(list_df[0][0]) 날짜 2021.01.01.
94 +
95 +new_date = [] # 날짜 중복 삭제
96 +for v in date:
97 + if v not in new_date:
98 + new_date.append(v)
99 +#print(new_date)
100 +
101 +Setlist =[]# 날짜별 키워드 넣기
102 +for v in range(len(new_date)):
103 + Setlist.append([])
104 + Setlist[v].append(new_date[v])
105 + for i in range(len(list_df)):
106 + for j in range(len(list_df[i][1])):
107 + if new_date[v] == list_df[i][0]:
108 + Setlist[v].append(list_df[i][1][j])
109 +print(Setlist)
110 +print(Setlist[0][0]) #2021.01.01
111 +print(type(Setlist[0][0]))
112 +print(Setlist[0][0].split('-'))
113 +print(Setlist[0][1][1]) #극성 0
114 +print(type(Setlist[0][1][1])) #극성 모든 타입 int
115 +
116 +#print(list_df[0][1][0]) 키워드와 극성 ['HMM…"체질개선해', 'X']
117 +#print(list_df[0][1][0][1]) 극성 x
118 +#print(list_df[0][0].split('.')[:3]) ['2021', '01', '01']
119 +#df.to_excel(Newsfilename+' KNU.xlsx',sheet_name='sheet1')
120 +
121 +Stockfilefolder = input("종목시세폴더입력: ")
122 +Stockfilename=input("시세파일이름입력:")
123 +fileStock = "C:/Users/yangj/PycharmProjects/pythonProject1/종목별시세/"+Stockfilefolder+"/" + Stockfilename + ".xlsx"
124 +Stockfile = openpyxl.load_workbook(fileStock)#파일이름입력
125 +stock_ws=Stockfile.active
126 +Stock_data=[] #list 타입
127 +i=0
128 +for row in stock_ws.rows:
129 + Stock_data.append([])
130 + for cell in row:
131 + if cell.value != None:
132 + Stock_data[i].append(cell.value)
133 + i += 1
134 +del Stock_data[0]
135 +for i in range(len(Stock_data)):
136 + del Stock_data[i][2] # 대비 삭제
137 +for i in range(len(Stock_data)):
138 + del Stock_data[i][7] #거래대금 삭제
139 +for i in range(len(Stock_data)):
140 + del Stock_data[i][7] #시가 총액 삭제
141 +for i in range(len(Stock_data)):
142 + del Stock_data[i][7] #상장주식 수 삭제 / 결과:'일자', '종가', '등락률', '시가', '고가', '저가', '거래량'
143 +#print(Stock_data)
144 +
145 +def Calpercentage(a,b): #시초가 대비 고점/저점 비율
146 + return abs(a-b)/a*100
147 +####아래로 수정 필요 (미완성)####
148 +
149 +i=0
150 +for k in range(len(Setlist)):
151 + if( Stock_data[i][0].split('/') == Setlist[k][0].split('-')): # 날짜 비교 날짜가 같다면
152 + if Calpercentage(Stock_data[i][3],Stock_data[i][4]) > 2 : #당일 시가 대비 고가가 2퍼 높을때
153 + for j in range(1,len(Setlist[k])):
154 + if Setlist[k][j][1] == 0:
155 + Setlist[k][j][1] = 1
156 + else:
157 + Setlist[0][j][1] += 1
158 + elif Calpercentage(Stock_data[i][3],Stock_data[i][5]) < -2 : #당일 시가 대비 저가가 2퍼 낮을 때
159 + for j in range(1,len(Setlist[k])):
160 + if Setlist[k][j][1] == 0:
161 + Setlist[k][j][1] = -1
162 + else:
163 + Setlist[0][j][1] -= 1
164 + else:
165 + if Stock_data[i+1][2] > 0: # 다음날 주가 등락률이 양수면
166 + for j in range(1,len(Setlist[k])): #어제뉴스는 호재 취급
167 + if Setlist[k][j][1] == 0:
168 + Setlist[k][j][1] = 1
169 + else:
170 + Setlist[k][j][1] += 1
171 + elif Stock_data[i+1][2] < 0:
172 + for j in range(1,len(Setlist[k])): # 음수면 어제 뉴스는 악재 취급
173 + if Setlist[k][j][1] == 0:
174 + Setlist[k][j][1] = -1
175 + else:
176 + Setlist[k][j][1] -= 1
177 + i+=1
178 + else:
179 + if Calpercentage(Stock_data[i][3], Stock_data[i][4]) > 2: # 당일 시가 대비 고가가 2퍼 높을때
180 + for j in range(1, len(Setlist[k])):
181 + if Setlist[k][j][1] == 0:
182 + Setlist[k][j][1] = 1
183 + else:
184 + Setlist[k][j][1] += 1
185 + elif Calpercentage(Stock_data[i][3], Stock_data[i][5]) < -2: # 당일 시가 대비 저가가 2퍼 낮을 때
186 + for j in range(1, len(Setlist[k])):
187 + if Setlist[k][j][1] == 0:
188 + Setlist[k][j][1] = -1
189 + else:
190 + Setlist[k][j][1] -= 1
191 + else:
192 + if Stock_data[i + 1][2] > 0: # 다음날 주가 등락률이 양수면
193 + for j in range(1, len(Setlist[k])): # 어제뉴스는 호재 취급
194 + if Setlist[k][j][1] == 0:
195 + Setlist[k][j][1] = 1
196 + else:
197 + Setlist[k][j][1] += 1
198 + elif Stock_data[i + 1][2] < 0:
199 + for j in range(1, len(Setlist[k])): # 음수면 어제 뉴스는 악재 취급
200 + if Setlist[k][j][1] == 0:
201 + Setlist[k][j][1] = -1
202 + else:
203 + Setlist[k][j][1] -= 1
204 + i+=1 #<이거 삭제서 hmm한번 더 돌려보기
205 +
206 +print(Setlist)
207 +
208 +#df_Setlist = pd.DataFrame(Setlist)
209 +#df_Setlist.to_excel(Stockfilename+' KNU_New.xlsx',sheet_name='sheet1')
210 +
211 +Setlist_w = []
212 +for i in range(len(Setlist)):
213 + Setlist_w.append([])
214 + for j in range(1, len(Setlist[i])):
215 + Setlist_w[i].append(Setlist[i][j][0]) # 극성 제외 단어만 추출
216 +
217 +counter = {}
218 +for i in range(len(Setlist_w)):
219 + counter[i] = collections.Counter(Setlist_w[i]) # 누적치
220 +
221 +for i in range(len(Setlist_w)):
222 + Setlist_w[i] = list(zip(counter[i].keys(), counter[i].values())) # 튜플 리스트화 [(값, 값)]
223 +
224 +Plist = []
225 +for i in range(len(Setlist_w)):
226 + Plist.append([])
227 + for j in range(len(Setlist_w[i])):
228 + Plist[i].append(list(Setlist_w[i][j])) # 튜플 -> 리스트화 [[값, 값]]
229 +
230 +for i in range(len(Plist)):
231 + for j in range(len(Plist[i])):
232 + Plist[i][j][1] = 0 # 극성 0으로 초기화
233 +
234 +for i in range(len(Setlist)):
235 + for j in range(1, len(Setlist[i])):
236 + for h in range(len(Plist[i])):
237 + if Setlist[i][j][0] == Plist[i][h][0]:
238 + Plist[i][h][1] += Setlist[i][j][1] #누적치
239 +vert_p=[] #수직 중복 삭제
240 +for i in range(len(Plist)):
241 + for j in range(len(Plist[i])):
242 + vert_p.append(Plist[i][j]) #단어만 넣기
243 +#print(vert_p)
244 +vert_p.sort(key=lambda x:x[0]) #단어 기준으로 정렬
245 +for i in range(len(vert_p)-2): #단어 비교해서 같으면 누적 다르면 값 바꾸기
246 + for j in range(i+1,len(vert_p)):
247 + if vert_p[i][0] == vert_p[j][0]:
248 + vert_p[i][1]+=vert_p[j][1]
249 + vert_p[j]=['0',0]
250 +print(vert_p)
251 +vert_p=[i for i in vert_p if not '0' in i] #'0'들어간 열 제거
252 +df_ver= pd.DataFrame(vert_p)
253 +df_ver.to_excel(Stockfilename+' KNU_New_Vdic2.xlsx',sheet_name='sheet1')
254 +
255 +####키워드파일 월별로 돌려서 그 나온 결과 파일들을 합쳐서 Merge_dictionay.py에 넣어서 사전 만들기 ####
256 +
257 +
1 +# KNU 한국어 감성사전
2 +# 작성자 : 온병원, 박상민, 나철원
3 +# 소속 : 군산대학교 소프트웨어융합공학과 Data Intelligence Lab
4 +# 홈페이지 : dilab.kunsan.ac.kr
5 +# 작성일 : 2018.05.14
6 +# 뜻풀이 데이터 출처 : https://github.com/mrchypark/stdkor
7 +# 신조어 데이터 출처 : https://ko.wikipedia.org/wiki/%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD%EC%9D%98_%EC%9D%B8%ED%84%B0%EB%84%B7_%EC%8B%A0%EC%A1%B0%EC%96%B4_%EB%AA%A9%EB%A1%9D
8 +# 이모티콘 데이터 출처: https://ko.wikipedia.org/wiki/%EC%9D%B4%EB%AA%A8%ED%8B%B0%EC%BD%98
9 +# SentiWordNet_3.0.0_20130122 데이터 출처 : http://sentiwordnet.isti.cnr.it/
10 +# SenticNet-5.0 데이터 출처 : http://sentic.net/
11 +# 감정단어사전0603 데이터 출처 : http://datascience.khu.ac.kr/board/bbs/board.php?bo_table=05_01&wr_id=91
12 +# 김은영, “국어 감정동사 연구”, 2004.02, 학위논문(박사) - 전남대학교 국어국문학과 대학원
13 +
14 +#-*-coding:utf-8-*-
15 +import collections
16 +import json
17 +
18 +import warnings
19 +warnings.simplefilter(("ignore"))
20 +import openpyxl
21 +import pandas as pd
22 +import re
23 +from datetime import datetime
24 +
25 +class KnuSL():
26 +
27 + def data_list(wordname):
28 + with open('KnuSentiLex/data/SentiWord_info.json', encoding='utf-8-sig', mode='r') as f:
29 + data = json.load(f)
30 + result = [0,0]
31 +
32 + for i in range(0, len(data)):
33 + if data[i]['word'] == wordname:
34 + result.pop()
35 + result.pop()
36 + result.append(data[i]['word_root'])
37 + result.append(int(data[i]['polarity']))
38 +
39 + r_word = result[0] #어근
40 + s_word = result[1] #극성
41 +
42 + return s_word
43 +
44 +if __name__ == "__main__":
45 +
46 + ksl = KnuSL
47 +
48 + print("\nKNU 한국어 감성사전입니다~ :)")
49 + print("사전에 단어가 없는 경우 결과가 None으로 나타납니다!!!")
50 + print("종료하시려면 #을 입력해주세요!!!")
51 + print("-2:매우 부정, -1:부정, 0:중립 or Unkwon, 1:긍정, 2:매우 긍정")
52 + print("\n")
53 +#########
54 +Newsfilefolder = input("종목폴더입력: ")
55 +Newsfilename=input("파일이름입력:")
56 +Newsfilepos = "C:/Users/yangj/PycharmProjects/pythonProject1/뉴스키워드/"+Newsfilefolder+"/" + Newsfilename + ".xlsx"
57 +Newsfile = openpyxl.load_workbook(Newsfilepos)#파일이름입력
58 +ws=Newsfile.active
59 +data=[]
60 +date=[]
61 +i=0
62 +for row in ws.rows:
63 + data.append([])
64 + date.append(row[1].value)
65 + for cell in row:
66 + if cell.value != None:
67 + data[i].append(cell.value)
68 + i += 1
69 +del data[0] #첫번째 의미없는 열 삭제
70 +del date[0]
71 +for i in range(len(data)):
72 + del data[i][0] #각 열의 첫번째 행 삭제
73 +for i in range(len(data)):
74 + del data[i][0] #각 열의 날짜 행 삭제
75 +
76 +KNUdata=[]
77 +Tdata=[]
78 +
79 +for x in range(len(data)):
80 + KNUdata.append([])
81 + Tdata.append([])
82 + for y in range(len(data[x])):
83 + KNUdata[x].append(ksl.data_list(data[x][y]))
84 + Tdata[x].append([data[x][y], KNUdata[x][y]])
85 +
86 +result = { '날짜':date, '단어, 극성':Tdata }
87 +
88 +df = pd.DataFrame(result)
89 +#print(df)
90 +list_df=df.values.tolist() #dataframe list로 변경
91 +#print(list_df)
92 +#print(list_df[0][0]) 날짜 2021.01.01.
93 +
94 +new_date = [] # 날짜 중복 삭제
95 +for v in date:
96 + if v not in new_date:
97 + new_date.append(v)
98 +#print(new_date)
99 +
100 +Setlist =[]# 날짜별 키워드 넣기
101 +for v in range(len(new_date)):
102 + Setlist.append([])
103 + Setlist[v].append(new_date[v])
104 + for i in range(len(list_df)):
105 + for j in range(len(list_df[i][1])):
106 + if new_date[v] == list_df[i][0]:
107 + Setlist[v].append(list_df[i][1][j])
108 +#print(Setlist)
109 +#print(Setlist[0][0]) #2021.01.01
110 +#print(Setlist[0][1][1]) #극성 0
111 +#print(type(Setlist[0][1][1])) #극성 모든 타입 int
112 +
113 +#print(list_df[0][1][0]) 키워드와 극성 ['HMM…"체질개선해', 'X']
114 +#print(list_df[0][1][0][1]) 극성 x
115 +#print(list_df[0][0].split('.')[:3]) ['2021', '01', '01']
116 +#df.to_excel(Newsfilename+' KNU.xlsx',sheet_name='sheet1')
117 +
118 +Stockfilefolder = input("종목시세폴더입력: ")
119 +Stockfilename=input("시세파일이름입력:")
120 +fileStock = "C:/Users/yangj/PycharmProjects/pythonProject1/종목별시세/"+Stockfilefolder+"/" + Stockfilename + ".xlsx"
121 +Stockfile = openpyxl.load_workbook(fileStock)#파일이름입력
122 +stock_ws=Stockfile.active
123 +Stock_data=[] #list 타입
124 +i=0
125 +for row in stock_ws.rows:
126 + Stock_data.append([])
127 + for cell in row:
128 + if cell.value != None:
129 + Stock_data[i].append(cell.value)
130 + i += 1
131 +del Stock_data[0]
132 +for i in range(len(Stock_data)):
133 + del Stock_data[i][2] # 대비 삭제
134 +for i in range(len(Stock_data)):
135 + del Stock_data[i][7] #거래대금 삭제
136 +for i in range(len(Stock_data)):
137 + del Stock_data[i][7] #시가 총액 삭제
138 +for i in range(len(Stock_data)):
139 + del Stock_data[i][7] #상장주식 수 삭제 / 결과:'일자', '종가', '등락률', '시가', '고가', '저가', '거래량'
140 +#print(Stock_data)
141 +
142 +def Calpercentage(a,b): #시초가 대비 고점/저점 비율
143 + return abs(a-b)/a*100
144 +####아래로 수정 필요 (미완성)####
145 +
146 +i=0
147 +for k in range(len(Setlist)):
148 + if( Stock_data[i][0].split('/') == Setlist[k][0].split('.')[:3]): # 날짜 비교 날짜가 같다면
149 + if Calpercentage(Stock_data[i][3],Stock_data[i][4]) > 2 : #당일 시가 대비 고가가 2퍼 높을때
150 + for j in range(1,len(Setlist[k])):
151 + if Setlist[k][j][1] == 0:
152 + Setlist[k][j][1] = 1
153 + else:
154 + Setlist[0][j][1] += 1
155 + elif Calpercentage(Stock_data[i][3],Stock_data[i][5]) < -2 : #당일 시가 대비 저가가 2퍼 낮을 때
156 + for j in range(1,len(Setlist[k])):
157 + if Setlist[k][j][1] == 0:
158 + Setlist[k][j][1] = -1
159 + else:
160 + Setlist[0][j][1] -= 1
161 + else:
162 + if Stock_data[i+1][2] > 0: # 다음날 주가 등락률이 양수면
163 + for j in range(1,len(Setlist[k])): #어제뉴스는 호재 취급
164 + if Setlist[k][j][1] == 0:
165 + Setlist[k][j][1] = 1
166 + else:
167 + Setlist[k][j][1] += 1
168 + elif Stock_data[i+1][2] < 0:
169 + for j in range(1,len(Setlist[k])): # 음수면 어제 뉴스는 악재 취급
170 + if Setlist[k][j][1] == 0:
171 + Setlist[k][j][1] = -1
172 + else:
173 + Setlist[k][j][1] -= 1
174 + i+=1
175 + else:
176 + if Calpercentage(Stock_data[i][3], Stock_data[i][4]) > 2: # 당일 시가 대비 고가가 2퍼 높을때
177 + for j in range(1, len(Setlist[k])):
178 + if Setlist[k][j][1] == 0:
179 + Setlist[k][j][1] = 1
180 + else:
181 + Setlist[k][j][1] += 1
182 + elif Calpercentage(Stock_data[i][3], Stock_data[i][5]) < -2: # 당일 시가 대비 저가가 2퍼 낮을 때
183 + for j in range(1, len(Setlist[k])):
184 + if Setlist[k][j][1] == 0:
185 + Setlist[k][j][1] = -1
186 + else:
187 + Setlist[k][j][1] -= 1
188 + else:
189 + if Stock_data[i + 1][2] > 0: # 다음날 주가 등락률이 양수면
190 + for j in range(1, len(Setlist[k])): # 어제뉴스는 호재 취급
191 + if Setlist[k][j][1] == 0:
192 + Setlist[k][j][1] = 1
193 + else:
194 + Setlist[k][j][1] += 1
195 + elif Stock_data[i + 1][2] < 0:
196 + for j in range(1, len(Setlist[k])): # 음수면 어제 뉴스는 악재 취급
197 + if Setlist[k][j][1] == 0:
198 + Setlist[k][j][1] = -1
199 + else:
200 + Setlist[k][j][1] -= 1
201 + i+=1
202 +
203 +print(Setlist)
204 +'''
205 +Stock_dic=[]
206 +
207 +for i in range(len(Setlist)):
208 + Stock_dic.append([])
209 + j = 2
210 + for k in range(1,len(Setlist[i])-1):
211 + if Setlist[i][k][0]== Setlist[i][j][0]:
212 + Setlist[i][k][1]+=Setlist[i][j][1]
213 + Stock_dic.append(Setlist[i][k])
214 + j+=1
215 + else:
216 + Stock_dic.append(Setlist[i][k])
217 + j+=1
218 +print(Stock_dic)
219 +'''
220 +
221 +#df_Setlist = pd.DataFrame(Setlist)
222 +#df_Setlist.to_excel(Stockfilename+' KNU_New.xlsx',sheet_name='sheet1')
223 +
224 +Setlist_w = []
225 +for i in range(len(Setlist)):
226 + Setlist_w.append([])
227 + for j in range(1, len(Setlist[i])):
228 + Setlist_w[i].append(Setlist[i][j][0]) # 극성 제외 단어만 추출
229 +
230 +counter = {}
231 +for i in range(len(Setlist_w)):
232 + counter[i] = collections.Counter(Setlist_w[i]) # 누적치
233 +
234 +for i in range(len(Setlist_w)):
235 + Setlist_w[i] = list(zip(counter[i].keys(), counter[i].values())) # 튜플 리스트화 [(값, 값)]
236 +
237 +Plist = []
238 +for i in range(len(Setlist_w)):
239 + Plist.append([])
240 + for j in range(len(Setlist_w[i])):
241 + Plist[i].append(list(Setlist_w[i][j])) # 튜플 -> 리스트화 [[값, 값]]
242 +
243 +for i in range(len(Plist)):
244 + for j in range(len(Plist[i])):
245 + Plist[i][j][1] = 0 # 극성 0으로 초기화
246 +
247 +for i in range(len(Setlist)):
248 + for j in range(1, len(Setlist[i])):
249 + for h in range(len(Plist[i])):
250 + if Setlist[i][j][0] == Plist[i][h][0]:
251 + Plist[i][h][1] += Setlist[i][j][1] #누적치
252 +vert_p=[] #수직 중복 삭제
253 +for i in range(len(Plist)):
254 + for j in range(len(Plist[i])):
255 + vert_p.append(Plist[i][j]) #단어만 넣기
256 +#print(vert_p)
257 +vert_p.sort(key=lambda x:x[0]) #단어 기준으로 정렬
258 +for i in range(len(vert_p)-2): #단어 비교해서 같으면 누적 다르면 값 바꾸기
259 + for j in range(i+1,len(vert_p)):
260 + if vert_p[i][0] == vert_p[j][0]:
261 + vert_p[i][1]+=vert_p[j][1]
262 + vert_p[j]=['0',0]
263 +print(vert_p)
264 +vert_p=[i for i in vert_p if not '0' in i] #'0'들어간 열 제거
265 +df_ver= pd.DataFrame(vert_p)
266 +df_ver.to_excel(Stockfilename+' KNU_New_vdic2.xlsx',sheet_name='sheet1')
267 +
268 +#p_result = {'날짜': new_date, '단어, 극성': Plist}
269 +#print(p_result)
270 +#df_p_result = pd.DataFrame(p_result)
271 +#df_p_result.to_excel(Stockfilename+' KNU_New_dic.xlsx',sheet_name='sheet1')
272 +'''
273 +for i in range(len(Stock_data)-1):
274 + for k in range(len(Setlist)):
275 + if (Stock_data[i][0].split('/') == Setlist[k][0].split('.')[:3]): # 날짜 비교
276 + if Calpercentage(Stock_data[i][3], Stock_data[i][4]) > 2 : #당일 시가 대비 고가가 2퍼 높을때
277 + for j in range(1, len(Setlist[k])):
278 + if Setlist[k][j][1] == 0:
279 + Setlist[k][j][1] = 1
280 + else:
281 + Setlist[k][j][1] += 1
282 + elif Calpercentage(Stock_data[i][3], Stock_data[i][5]) < -2 : #당일 시가 대비 저가가 2퍼 낮을 때
283 + for j in range(1, len(Setlist[k])):
284 + if Setlist[k][j][1] == 0:
285 + Setlist[k][j][1] = -1
286 + else:
287 + Setlist[k][j][1] -= 1
288 + else:
289 + if Stock_data[i+1][2] > 0: # 다음날 주가 등락률이 양수면
290 + for j in range(1, len(Setlist[k])): #어제뉴스는 호재 취급
291 + if Calpercentage(Stock_data[i+1][3], Stock_data[i+1][5]) < -2 :
292 + for j in range(1, len(Setlist[k])):
293 + if Setlist[k][j][1] == 0:
294 + Setlist[k][j][1] = -1
295 + else:
296 + Setlist[k][j][1] -= 1
297 + else:
298 + if Setlist[k][j][1] == 0:
299 + Setlist[k][j][1] = 1
300 + else:
301 + Setlist[k][j][1] += 1
302 + elif Stock_data[i+1][2] < 0:
303 + if Calpercentage(Stock_data[i+1][3], Stock_data[i+1][4]) > 2 :
304 + for j in range(1, len(Setlist[k])):
305 + if Setlist[k][j][1] == 0:
306 + Setlist[k][j][1] = 1
307 + else:
308 + Setlist[k][j][1] += 1
309 + else:
310 + for j in range(1, len(Setlist[k])): # 음수면 어제 뉴스는 악재 취급
311 + if Setlist[k][j][1] == 0:
312 + Setlist[k][j][1] = -1
313 + else:
314 + Setlist[k][j][1] -= -1
315 + else:
316 +
317 +
318 +print(Setlist)
319 +
320 +'''
1 +# -*-coding:utf-8-*-
2 +import collections
3 +import json
4 +
5 +import warnings
6 +
7 +warnings.simplefilter(("ignore"))
8 +import openpyxl
9 +import pandas as pd
10 +import re
11 +from datetime import datetime
12 +
13 +########코스피 감성 판단
14 +class KnuSL():
15 +
16 + def data_list(wordname):
17 + with open('KnuSentiLex/data/SentiWord_info.json', encoding='utf-8-sig', mode='r') as f:
18 + data = json.load(f)
19 + result = [0, 0]
20 +
21 + for i in range(0, len(data)):
22 + if data[i]['word'] == wordname:
23 + result.pop()
24 + result.pop()
25 + result.append(data[i]['word_root'])
26 + result.append(int(data[i]['polarity']))
27 +
28 + r_word = result[0] # 어근
29 + s_word = result[1] # 극성
30 +
31 + return s_word
32 +
33 +
34 +if __name__ == "__main__":
35 + ksl = KnuSL
36 +
37 + print("\nKNU 한국어 감성사전입니다~ :)")
38 + print("사전에 단어가 없는 경우 결과가 None으로 나타납니다!!!")
39 + print("종료하시려면 #을 입력해주세요!!!")
40 + print("-2:매우 부정, -1:부정, 0:중립 or Unkwon, 1:긍정, 2:매우 긍정")
41 + print("\n")
42 +#########
43 +Newsfilefolder = input("종목폴더입력: ")
44 +Newsfilename = input("파일이름입력:")
45 +Newsfilepos = "C:/Users/yangj/PycharmProjects/pythonProject1/뉴스키워드/" + Newsfilefolder + "/" + Newsfilename + ".xlsx"
46 +Newsfile = openpyxl.load_workbook(Newsfilepos) # 파일이름입력
47 +ws = Newsfile.active
48 +data = []
49 +date = []
50 +i = 0
51 +for row in ws.rows:
52 + data.append([])
53 + date.append(row[1].value)
54 + for cell in row:
55 + if cell.value != None:
56 + data[i].append(cell.value)
57 + i += 1
58 +del data[0] # 첫번째 의미없는 열 삭제
59 +del date[0]
60 +for i in range(len(data)):
61 + del data[i][0] # 각 열의 첫번째 행 삭제
62 +for i in range(len(data)):
63 + del data[i][0] # 각 열의 날짜 행 삭제
64 +
65 +KNUdata = []
66 +Tdata = []
67 +
68 +for x in range(len(data)):
69 + KNUdata.append([])
70 + Tdata.append([])
71 + for y in range(len(data[x])):
72 + KNUdata[x].append(ksl.data_list(data[x][y]))
73 + Tdata[x].append([data[x][y], KNUdata[x][y]])
74 +
75 +result = {'날짜': date, '단어, 극성': Tdata}
76 +
77 +df = pd.DataFrame(result)
78 +
79 +list_df = df.values.tolist() # dataframe list로 변경
80 +new_date = [] # 날짜 중복 삭제
81 +for v in date:
82 + if v not in new_date:
83 + new_date.append(v)
84 +# print(new_date)
85 +
86 +Setlist = [] # 날짜별 키워드 넣기
87 +for v in range(len(new_date)):
88 + Setlist.append([])
89 + Setlist[v].append(new_date[v])
90 + for i in range(len(list_df)):
91 + for j in range(len(list_df[i][1])):
92 + if new_date[v] == list_df[i][0]:
93 + Setlist[v].append(list_df[i][1][j])
94 +
95 +Stockfilefolder = input("종목시세폴더입력: ")
96 +Stockfilename = input("시세파일이름입력:")
97 +fileStock = "C:/Users/yangj/PycharmProjects/pythonProject1/종목별시세/" + Stockfilefolder + "/" + Stockfilename + ".xlsx"
98 +Stockfile = openpyxl.load_workbook(fileStock) # 파일이름입력
99 +stock_ws = Stockfile.active
100 +Stock_data = [] # list 타입
101 +i = 0
102 +for row in stock_ws.rows:
103 + Stock_data.append([])
104 + for cell in row:
105 + if cell.value != None:
106 + Stock_data[i].append(cell.value)
107 + i += 1
108 +del Stock_data[0]
109 +for i in range(len(Stock_data)):
110 + del Stock_data[i][2] # 대비 삭제
111 +for i in range(len(Stock_data)):
112 + del Stock_data[i][7] # 거래대금 삭제
113 +for i in range(len(Stock_data)):
114 + del Stock_data[i][7] # 시가 총액 삭제
115 +
116 +
117 +i = 0
118 +for k in range(len(Setlist)):
119 + if (Stock_data[i][0].split('/') == Setlist[k][0].split('.')[:3]): # 날짜 비교 날짜가 같다면
120 + if Stock_data[i][2] > 0: # 코스피 등락이 양수
121 + for j in range(1, len(Setlist[k])):
122 + if Setlist[k][j][1] == 0:
123 + Setlist[k][j][1] = 1
124 + else:
125 + Setlist[k][j][1] += 1
126 + elif Stock_data[i][2] < 0:
127 + for j in range(1, len(Setlist[k])): # 음수면 어제 뉴스는 악재 취급
128 + if Setlist[k][j][1] == 0:
129 + Setlist[k][j][1] = -1
130 + else:
131 + Setlist[k][j][1] -= 1
132 + i += 1
133 + else:
134 + if Stock_data[i+1][2] > 0: # 다음날 주가 등락률이 양수면
135 + for j in range(1, len(Setlist[k])): # 어제뉴스는 호재 취급
136 + if Setlist[k][j][1] == 0:
137 + Setlist[k][j][1] = 1
138 + else:
139 + Setlist[k][j][1] += 1
140 + elif Stock_data[i+1][2] < 0:
141 + for j in range(1, len(Setlist[k])): # 음수면 어제 뉴스는 악재 취급
142 + if Setlist[k][j][1] == 0:
143 + Setlist[k][j][1] = -1
144 + else:
145 + Setlist[k][j][1] -= 1
146 +
147 +Setlist_w = []
148 +for i in range(len(Setlist)):
149 + Setlist_w.append([])
150 + for j in range(1, len(Setlist[i])):
151 + Setlist_w[i].append(Setlist[i][j][0]) # 극성 제외 단어만 추출
152 +
153 +counter = {}
154 +for i in range(len(Setlist_w)):
155 + counter[i] = collections.Counter(Setlist_w[i]) # 누적치
156 +
157 +for i in range(len(Setlist_w)):
158 + Setlist_w[i] = list(zip(counter[i].keys(), counter[i].values())) # 튜플 리스트화 [(값, 값)]
159 +
160 +Plist = []
161 +for i in range(len(Setlist_w)):
162 + Plist.append([])
163 + for j in range(len(Setlist_w[i])):
164 + Plist[i].append(list(Setlist_w[i][j])) # 튜플 -> 리스트화 [[값, 값]]
165 +
166 +for i in range(len(Plist)):
167 + for j in range(len(Plist[i])):
168 + Plist[i][j][1] = 0 # 극성 0으로 초기화
169 +
170 +for i in range(len(Setlist)):
171 + for j in range(1, len(Setlist[i])):
172 + for h in range(len(Plist[i])):
173 + if Setlist[i][j][0] == Plist[i][h][0]:
174 + Plist[i][h][1] += Setlist[i][j][1] # 누적치
175 +vert_p = [] # 수직 중복 삭제
176 +for i in range(len(Plist)):
177 + for j in range(len(Plist[i])):
178 + vert_p.append(Plist[i][j]) # 단어만 넣기
179 +# print(vert_p)
180 +vert_p.sort(key=lambda x: x[0]) # 단어 기준으로 정렬
181 +for i in range(len(vert_p) - 2): # 단어 비교해서 같으면 누적 다르면 값 바꾸기
182 + for j in range(i + 1, len(vert_p)):
183 + if vert_p[i][0] == vert_p[j][0]:
184 + vert_p[i][1] += vert_p[j][1]
185 + vert_p[j] = ['0', 0]
186 +
187 +vert_p = [i for i in vert_p if not '0' in i] # '0'들어간 열 제거
188 +df_ver = pd.DataFrame(vert_p)
189 +df_ver.to_excel(Stockfilename + ' KNU_New_vdic2.xlsx', sheet_name='sheet1')
1 +# This file was automatically generated by SWIG (http://www.swig.org).
2 +# Version 3.0.0
3 +#
4 +# Do not make changes to this file unless you know what you are doing--modify
5 +# the SWIG interface file instead.
6 +
7 +
8 +
9 +
10 +
11 +from sys import version_info
12 +if version_info >= (2,6,0):
13 + def swig_import_helper():
14 + from os.path import dirname
15 + import imp
16 + fp = None
17 + try:
18 + fp, pathname, description = imp.find_module('_MeCab', [dirname(__file__)])
19 + except ImportError:
20 + import _MeCab
21 + return _MeCab
22 + if fp is not None:
23 + try:
24 + _mod = imp.load_module('_MeCab', fp, pathname, description)
25 + finally:
26 + fp.close()
27 + return _mod
28 + _MeCab = swig_import_helper()
29 + del swig_import_helper
30 +else:
31 + import _MeCab
32 +del version_info
33 +try:
34 + _swig_property = property
35 +except NameError:
36 + pass # Python < 2.2 doesn't have 'property'.
37 +def _swig_setattr_nondynamic(self,class_type,name,value,static=1):
38 + if (name == "thisown"): return self.this.own(value)
39 + if (name == "this"):
40 + if type(value).__name__ == 'SwigPyObject':
41 + self.__dict__[name] = value
42 + return
43 + method = class_type.__swig_setmethods__.get(name,None)
44 + if method: return method(self,value)
45 + if (not static):
46 + self.__dict__[name] = value
47 + else:
48 + raise AttributeError("You cannot add attributes to %s" % self)
49 +
50 +def _swig_setattr(self,class_type,name,value):
51 + return _swig_setattr_nondynamic(self,class_type,name,value,0)
52 +
53 +def _swig_getattr(self,class_type,name):
54 + if (name == "thisown"): return self.this.own()
55 + method = class_type.__swig_getmethods__.get(name,None)
56 + if method: return method(self)
57 + raise AttributeError(name)
58 +
59 +def _swig_repr(self):
60 + try: strthis = "proxy of " + self.this.__repr__()
61 + except: strthis = ""
62 + return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)
63 +
64 +try:
65 + _object = object
66 + _newclass = 1
67 +except AttributeError:
68 + class _object : pass
69 + _newclass = 0
70 +
71 +
72 +class DictionaryInfo(_object):
73 + __swig_setmethods__ = {}
74 + __setattr__ = lambda self, name, value: _swig_setattr(self, DictionaryInfo, name, value)
75 + __swig_getmethods__ = {}
76 + __getattr__ = lambda self, name: _swig_getattr(self, DictionaryInfo, name)
77 + __repr__ = _swig_repr
78 + __swig_getmethods__["filename"] = _MeCab.DictionaryInfo_filename_get
79 + if _newclass:filename = _swig_property(_MeCab.DictionaryInfo_filename_get)
80 + __swig_getmethods__["charset"] = _MeCab.DictionaryInfo_charset_get
81 + if _newclass:charset = _swig_property(_MeCab.DictionaryInfo_charset_get)
82 + __swig_getmethods__["size"] = _MeCab.DictionaryInfo_size_get
83 + if _newclass:size = _swig_property(_MeCab.DictionaryInfo_size_get)
84 + __swig_getmethods__["type"] = _MeCab.DictionaryInfo_type_get
85 + if _newclass:type = _swig_property(_MeCab.DictionaryInfo_type_get)
86 + __swig_getmethods__["lsize"] = _MeCab.DictionaryInfo_lsize_get
87 + if _newclass:lsize = _swig_property(_MeCab.DictionaryInfo_lsize_get)
88 + __swig_getmethods__["rsize"] = _MeCab.DictionaryInfo_rsize_get
89 + if _newclass:rsize = _swig_property(_MeCab.DictionaryInfo_rsize_get)
90 + __swig_getmethods__["version"] = _MeCab.DictionaryInfo_version_get
91 + if _newclass:version = _swig_property(_MeCab.DictionaryInfo_version_get)
92 + __swig_getmethods__["next"] = _MeCab.DictionaryInfo_next_get
93 + if _newclass:next = _swig_property(_MeCab.DictionaryInfo_next_get)
94 + def __init__(self):
95 + this = _MeCab.new_DictionaryInfo()
96 + try: self.this.append(this)
97 + except: self.this = this
98 + __swig_destroy__ = _MeCab.delete_DictionaryInfo
99 + __del__ = lambda self : None;
100 +DictionaryInfo_swigregister = _MeCab.DictionaryInfo_swigregister
101 +DictionaryInfo_swigregister(DictionaryInfo)
102 +
103 +class Path(_object):
104 + __swig_setmethods__ = {}
105 + __setattr__ = lambda self, name, value: _swig_setattr(self, Path, name, value)
106 + __swig_getmethods__ = {}
107 + __getattr__ = lambda self, name: _swig_getattr(self, Path, name)
108 + def __init__(self, *args, **kwargs): raise AttributeError("No constructor defined")
109 + __repr__ = _swig_repr
110 + __swig_getmethods__["rnode"] = _MeCab.Path_rnode_get
111 + if _newclass:rnode = _swig_property(_MeCab.Path_rnode_get)
112 + __swig_getmethods__["rnext"] = _MeCab.Path_rnext_get
113 + if _newclass:rnext = _swig_property(_MeCab.Path_rnext_get)
114 + __swig_getmethods__["lnode"] = _MeCab.Path_lnode_get
115 + if _newclass:lnode = _swig_property(_MeCab.Path_lnode_get)
116 + __swig_getmethods__["lnext"] = _MeCab.Path_lnext_get
117 + if _newclass:lnext = _swig_property(_MeCab.Path_lnext_get)
118 + __swig_getmethods__["cost"] = _MeCab.Path_cost_get
119 + if _newclass:cost = _swig_property(_MeCab.Path_cost_get)
120 + __swig_setmethods__["prob"] = _MeCab.Path_prob_set
121 + __swig_getmethods__["prob"] = _MeCab.Path_prob_get
122 + if _newclass:prob = _swig_property(_MeCab.Path_prob_get, _MeCab.Path_prob_set)
123 +Path_swigregister = _MeCab.Path_swigregister
124 +Path_swigregister(Path)
125 +
126 +class Node(_object):
127 + __swig_setmethods__ = {}
128 + __setattr__ = lambda self, name, value: _swig_setattr(self, Node, name, value)
129 + __swig_getmethods__ = {}
130 + __getattr__ = lambda self, name: _swig_getattr(self, Node, name)
131 + def __init__(self, *args, **kwargs): raise AttributeError("No constructor defined")
132 + __repr__ = _swig_repr
133 + __swig_getmethods__["prev"] = _MeCab.Node_prev_get
134 + if _newclass:prev = _swig_property(_MeCab.Node_prev_get)
135 + __swig_getmethods__["next"] = _MeCab.Node_next_get
136 + if _newclass:next = _swig_property(_MeCab.Node_next_get)
137 + __swig_getmethods__["enext"] = _MeCab.Node_enext_get
138 + if _newclass:enext = _swig_property(_MeCab.Node_enext_get)
139 + __swig_getmethods__["bnext"] = _MeCab.Node_bnext_get
140 + if _newclass:bnext = _swig_property(_MeCab.Node_bnext_get)
141 + __swig_getmethods__["rpath"] = _MeCab.Node_rpath_get
142 + if _newclass:rpath = _swig_property(_MeCab.Node_rpath_get)
143 + __swig_getmethods__["lpath"] = _MeCab.Node_lpath_get
144 + if _newclass:lpath = _swig_property(_MeCab.Node_lpath_get)
145 + __swig_getmethods__["feature"] = _MeCab.Node_feature_get
146 + if _newclass:feature = _swig_property(_MeCab.Node_feature_get)
147 + __swig_getmethods__["id"] = _MeCab.Node_id_get
148 + if _newclass:id = _swig_property(_MeCab.Node_id_get)
149 + __swig_getmethods__["length"] = _MeCab.Node_length_get
150 + if _newclass:length = _swig_property(_MeCab.Node_length_get)
151 + __swig_getmethods__["rlength"] = _MeCab.Node_rlength_get
152 + if _newclass:rlength = _swig_property(_MeCab.Node_rlength_get)
153 + __swig_getmethods__["rcAttr"] = _MeCab.Node_rcAttr_get
154 + if _newclass:rcAttr = _swig_property(_MeCab.Node_rcAttr_get)
155 + __swig_getmethods__["lcAttr"] = _MeCab.Node_lcAttr_get
156 + if _newclass:lcAttr = _swig_property(_MeCab.Node_lcAttr_get)
157 + __swig_getmethods__["posid"] = _MeCab.Node_posid_get
158 + if _newclass:posid = _swig_property(_MeCab.Node_posid_get)
159 + __swig_getmethods__["char_type"] = _MeCab.Node_char_type_get
160 + if _newclass:char_type = _swig_property(_MeCab.Node_char_type_get)
161 + __swig_getmethods__["stat"] = _MeCab.Node_stat_get
162 + if _newclass:stat = _swig_property(_MeCab.Node_stat_get)
163 + __swig_getmethods__["isbest"] = _MeCab.Node_isbest_get
164 + if _newclass:isbest = _swig_property(_MeCab.Node_isbest_get)
165 + __swig_getmethods__["alpha"] = _MeCab.Node_alpha_get
166 + if _newclass:alpha = _swig_property(_MeCab.Node_alpha_get)
167 + __swig_getmethods__["beta"] = _MeCab.Node_beta_get
168 + if _newclass:beta = _swig_property(_MeCab.Node_beta_get)
169 + __swig_setmethods__["prob"] = _MeCab.Node_prob_set
170 + __swig_getmethods__["prob"] = _MeCab.Node_prob_get
171 + if _newclass:prob = _swig_property(_MeCab.Node_prob_get, _MeCab.Node_prob_set)
172 + __swig_getmethods__["wcost"] = _MeCab.Node_wcost_get
173 + if _newclass:wcost = _swig_property(_MeCab.Node_wcost_get)
174 + __swig_getmethods__["cost"] = _MeCab.Node_cost_get
175 + if _newclass:cost = _swig_property(_MeCab.Node_cost_get)
176 + __swig_getmethods__["surface"] = _MeCab.Node_surface_get
177 + if _newclass:surface = _swig_property(_MeCab.Node_surface_get)
178 +Node_swigregister = _MeCab.Node_swigregister
179 +Node_swigregister(Node)
180 +
181 +MECAB_NOR_NODE = _MeCab.MECAB_NOR_NODE
182 +MECAB_UNK_NODE = _MeCab.MECAB_UNK_NODE
183 +MECAB_BOS_NODE = _MeCab.MECAB_BOS_NODE
184 +MECAB_EOS_NODE = _MeCab.MECAB_EOS_NODE
185 +MECAB_EON_NODE = _MeCab.MECAB_EON_NODE
186 +MECAB_SYS_DIC = _MeCab.MECAB_SYS_DIC
187 +MECAB_USR_DIC = _MeCab.MECAB_USR_DIC
188 +MECAB_UNK_DIC = _MeCab.MECAB_UNK_DIC
189 +MECAB_ONE_BEST = _MeCab.MECAB_ONE_BEST
190 +MECAB_NBEST = _MeCab.MECAB_NBEST
191 +MECAB_PARTIAL = _MeCab.MECAB_PARTIAL
192 +MECAB_MARGINAL_PROB = _MeCab.MECAB_MARGINAL_PROB
193 +MECAB_ALTERNATIVE = _MeCab.MECAB_ALTERNATIVE
194 +MECAB_ALL_MORPHS = _MeCab.MECAB_ALL_MORPHS
195 +MECAB_ALLOCATE_SENTENCE = _MeCab.MECAB_ALLOCATE_SENTENCE
196 +MECAB_ANY_BOUNDARY = _MeCab.MECAB_ANY_BOUNDARY
197 +MECAB_TOKEN_BOUNDARY = _MeCab.MECAB_TOKEN_BOUNDARY
198 +MECAB_INSIDE_TOKEN = _MeCab.MECAB_INSIDE_TOKEN
199 +class Lattice(_object):
200 + __swig_setmethods__ = {}
201 + __setattr__ = lambda self, name, value: _swig_setattr(self, Lattice, name, value)
202 + __swig_getmethods__ = {}
203 + __getattr__ = lambda self, name: _swig_getattr(self, Lattice, name)
204 + __repr__ = _swig_repr
205 + def clear(self): return _MeCab.Lattice_clear(self)
206 + def is_available(self): return _MeCab.Lattice_is_available(self)
207 + def bos_node(self): return _MeCab.Lattice_bos_node(self)
208 + def eos_node(self): return _MeCab.Lattice_eos_node(self)
209 + def end_nodes(self, *args): return _MeCab.Lattice_end_nodes(self, *args)
210 + def begin_nodes(self, *args): return _MeCab.Lattice_begin_nodes(self, *args)
211 + def sentence(self): return _MeCab.Lattice_sentence(self)
212 + def size(self): return _MeCab.Lattice_size(self)
213 + def set_Z(self, *args): return _MeCab.Lattice_set_Z(self, *args)
214 + def Z(self): return _MeCab.Lattice_Z(self)
215 + def set_theta(self, *args): return _MeCab.Lattice_set_theta(self, *args)
216 + def theta(self): return _MeCab.Lattice_theta(self)
217 + def next(self): return _MeCab.Lattice_next(self)
218 + def request_type(self): return _MeCab.Lattice_request_type(self)
219 + def has_request_type(self, *args): return _MeCab.Lattice_has_request_type(self, *args)
220 + def set_request_type(self, *args): return _MeCab.Lattice_set_request_type(self, *args)
221 + def add_request_type(self, *args): return _MeCab.Lattice_add_request_type(self, *args)
222 + def remove_request_type(self, *args): return _MeCab.Lattice_remove_request_type(self, *args)
223 + def newNode(self): return _MeCab.Lattice_newNode(self)
224 + def toString(self, *args): return _MeCab.Lattice_toString(self, *args)
225 + def enumNBestAsString(self, *args): return _MeCab.Lattice_enumNBestAsString(self, *args)
226 + def has_constraint(self): return _MeCab.Lattice_has_constraint(self)
227 + def boundary_constraint(self, *args): return _MeCab.Lattice_boundary_constraint(self, *args)
228 + def feature_constraint(self, *args): return _MeCab.Lattice_feature_constraint(self, *args)
229 + def set_boundary_constraint(self, *args): return _MeCab.Lattice_set_boundary_constraint(self, *args)
230 + def set_feature_constraint(self, *args): return _MeCab.Lattice_set_feature_constraint(self, *args)
231 + def set_result(self, *args): return _MeCab.Lattice_set_result(self, *args)
232 + def what(self): return _MeCab.Lattice_what(self)
233 + def set_what(self, *args): return _MeCab.Lattice_set_what(self, *args)
234 + __swig_destroy__ = _MeCab.delete_Lattice
235 + __del__ = lambda self : None;
236 + def __init__(self):
237 + this = _MeCab.new_Lattice()
238 + try: self.this.append(this)
239 + except: self.this = this
240 + def set_sentence(self, *args): return _MeCab.Lattice_set_sentence(self, *args)
241 +Lattice_swigregister = _MeCab.Lattice_swigregister
242 +Lattice_swigregister(Lattice)
243 +
244 +class Model(_object):
245 + __swig_setmethods__ = {}
246 + __setattr__ = lambda self, name, value: _swig_setattr(self, Model, name, value)
247 + __swig_getmethods__ = {}
248 + __getattr__ = lambda self, name: _swig_getattr(self, Model, name)
249 + __repr__ = _swig_repr
250 + def dictionary_info(self): return _MeCab.Model_dictionary_info(self)
251 + def transition_cost(self, *args): return _MeCab.Model_transition_cost(self, *args)
252 + def lookup(self, *args): return _MeCab.Model_lookup(self, *args)
253 + def createTagger(self): return _MeCab.Model_createTagger(self)
254 + def createLattice(self): return _MeCab.Model_createLattice(self)
255 + def swap(self, *args): return _MeCab.Model_swap(self, *args)
256 + __swig_getmethods__["version"] = lambda x: _MeCab.Model_version
257 + if _newclass:version = staticmethod(_MeCab.Model_version)
258 + __swig_destroy__ = _MeCab.delete_Model
259 + __del__ = lambda self : None;
260 + __swig_getmethods__["create"] = lambda x: _MeCab.Model_create
261 + if _newclass:create = staticmethod(_MeCab.Model_create)
262 + def __init__(self, *args):
263 + this = _MeCab.new_Model(*args)
264 + try: self.this.append(this)
265 + except: self.this = this
266 +Model_swigregister = _MeCab.Model_swigregister
267 +Model_swigregister(Model)
268 +
269 +def Model_version():
270 + return _MeCab.Model_version()
271 +Model_version = _MeCab.Model_version
272 +
273 +def Model_create(*args):
274 + return _MeCab.Model_create(*args)
275 +Model_create = _MeCab.Model_create
276 +
277 +class Tagger(_object):
278 + __swig_setmethods__ = {}
279 + __setattr__ = lambda self, name, value: _swig_setattr(self, Tagger, name, value)
280 + __swig_getmethods__ = {}
281 + __getattr__ = lambda self, name: _swig_getattr(self, Tagger, name)
282 + __repr__ = _swig_repr
283 + def parse(self, *args): return _MeCab.Tagger_parse(self, *args)
284 + def parseToNode(self, *args): return _MeCab.Tagger_parseToNode(self, *args)
285 + def parseNBest(self, *args): return _MeCab.Tagger_parseNBest(self, *args)
286 + def parseNBestInit(self, *args): return _MeCab.Tagger_parseNBestInit(self, *args)
287 + def nextNode(self): return _MeCab.Tagger_nextNode(self)
288 + def next(self): return _MeCab.Tagger_next(self)
289 + def formatNode(self, *args): return _MeCab.Tagger_formatNode(self, *args)
290 + def set_request_type(self, *args): return _MeCab.Tagger_set_request_type(self, *args)
291 + def request_type(self): return _MeCab.Tagger_request_type(self)
292 + def partial(self): return _MeCab.Tagger_partial(self)
293 + def set_partial(self, *args): return _MeCab.Tagger_set_partial(self, *args)
294 + def lattice_level(self): return _MeCab.Tagger_lattice_level(self)
295 + def set_lattice_level(self, *args): return _MeCab.Tagger_set_lattice_level(self, *args)
296 + def all_morphs(self): return _MeCab.Tagger_all_morphs(self)
297 + def set_all_morphs(self, *args): return _MeCab.Tagger_set_all_morphs(self, *args)
298 + def set_theta(self, *args): return _MeCab.Tagger_set_theta(self, *args)
299 + def theta(self): return _MeCab.Tagger_theta(self)
300 + def dictionary_info(self): return _MeCab.Tagger_dictionary_info(self)
301 + def what(self): return _MeCab.Tagger_what(self)
302 + __swig_destroy__ = _MeCab.delete_Tagger
303 + __del__ = lambda self : None;
304 + __swig_getmethods__["create"] = lambda x: _MeCab.Tagger_create
305 + if _newclass:create = staticmethod(_MeCab.Tagger_create)
306 + __swig_getmethods__["version"] = lambda x: _MeCab.Tagger_version
307 + if _newclass:version = staticmethod(_MeCab.Tagger_version)
308 + def __init__(self, *args):
309 + this = _MeCab.new_Tagger(*args)
310 + try: self.this.append(this)
311 + except: self.this = this
312 + def parseToString(self, *args): return _MeCab.Tagger_parseToString(self, *args)
313 +Tagger_swigregister = _MeCab.Tagger_swigregister
314 +Tagger_swigregister(Tagger)
315 +
316 +def Tagger_create(*args):
317 + return _MeCab.Tagger_create(*args)
318 +Tagger_create = _MeCab.Tagger_create
319 +
320 +def Tagger_version():
321 + return _MeCab.Tagger_version()
322 +Tagger_version = _MeCab.Tagger_version
323 +
324 +VERSION = _MeCab.VERSION
325 +# This file is compatible with both classic and new-style classes.
326 +
327 +
No preview for this file type
1 +Metadata-Version: 2.1
2 +Name: mecab-python
3 +Version: 0.996-ko-0.9.2-msvc
4 +Summary: UNKNOWN
5 +Home-page: UNKNOWN
6 +Author: UNKNOWN
7 +Author-email: UNKNOWN
8 +License: UNKNOWN
9 +Platform: UNKNOWN
10 +
11 +UNKNOWN
12 +
13 +
1 +MeCab.py,sha256=cuvFTwJk_Z38aY54gIKoBtR46p6tPXOVSKkpoA1PcY4,15733
2 +_MeCab.cp37-win_amd64.pyd,sha256=u-WVy7oAK9dySDKhPh_DNHIWW4x6yHSwu6hjMKqdz5E,116736
3 +__pycache__/MeCab.cpython-37.pyc,,
4 +libmecab.dll,sha256=lRhwboyrXWEXXnDn8soNA05id3UvWfPpP7bvTXj5iH4,1908736
5 +mecab_python-0.996_ko_0.9.2_msvc.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
6 +mecab_python-0.996_ko_0.9.2_msvc.dist-info/METADATA,sha256=Qw4D_1k4TCzF1Ul5k47s6hOnafUJSLyiiGhqffEnszs,190
7 +mecab_python-0.996_ko_0.9.2_msvc.dist-info/RECORD,,
8 +mecab_python-0.996_ko_0.9.2_msvc.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9 +mecab_python-0.996_ko_0.9.2_msvc.dist-info/WHEEL,sha256=jmFYSwR2oi5DgMGgmnuB-EJxqLMkUojGGdmJ0wz35aI,106
10 +mecab_python-0.996_ko_0.9.2_msvc.dist-info/direct_url.json,sha256=8Wv8YjFpjisUlH--mXnzxpj5B8uexD6AtZjonw2yk5k,142
11 +mecab_python-0.996_ko_0.9.2_msvc.dist-info/top_level.txt,sha256=E6HHbCcV114TjQmzLJGG5aSu2Sb0tjGGxkjler1jxrQ,13
1 +Wheel-Version: 1.0
2 +Generator: bdist_wheel (0.31.1)
3 +Root-Is-Purelib: false
4 +Tag: cp37-cp37m-win_amd64
5 +
1 +{"archive_info": {}, "url": "file:///C:/Users/yangj/PycharmProjects/pythonProject1/mecab_python-0.996_ko_0.9.2_msvc-cp37-cp37m-win_amd64.whl"}
...\ No newline at end of file ...\ No newline at end of file
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type