KNU_edit.py 2.83 KB
# KNU 한국어 감성사전
# 작성자 : 온병원, 박상민, 나철원
# 소속 : 군산대학교 소프트웨어융합공학과 Data Intelligence Lab
# 홈페이지 : dilab.kunsan.ac.kr
# 작성일 : 2018.05.14
# 뜻풀이 데이터 출처 : https://github.com/mrchypark/stdkor
# 신조어 데이터 출처 : 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
# 이모티콘 데이터 출처: https://ko.wikipedia.org/wiki/%EC%9D%B4%EB%AA%A8%ED%8B%B0%EC%BD%98
# SentiWordNet_3.0.0_20130122 데이터 출처 : http://sentiwordnet.isti.cnr.it/
# SenticNet-5.0 데이터 출처 : http://sentic.net/
# 감정단어사전0603 데이터 출처 : http://datascience.khu.ac.kr/board/bbs/board.php?bo_table=05_01&wr_id=91 
# 김은영, “국어 감정동사 연구”, 2004.02, 학위논문(박사) - 전남대학교 국어국문학과 대학원

#-*-coding:utf-8-*-

import json

import warnings
warnings.simplefilter(("ignore"))
import openpyxl
import pandas as pd

class KnuSL():
    
    def data_list(wordname):
        with open('KnuSentiLex/data/SentiWord_info.json', encoding='utf-8-sig', mode='r') as f:
            data = json.load(f)
            result = ['X','X']
            
        for i in range(0, len(data)):
            if data[i]['word'] == wordname:
                result.pop()
                result.pop()
                result.append(data[i]['word_root'])
                result.append(data[i]['polarity'])

        r_word = result[0] #어근
        s_word = result[1] #극성
        
        return s_word

if __name__ == "__main__":

    ksl = KnuSL
    
    print("\nKNU 한국어 감성사전입니다~ :)")
    print("사전에 단어가 없는 경우 결과가 None으로 나타납니다!!!")
    print("종료하시려면 #을 입력해주세요!!!")
    print("-2:매우 부정, -1:부정, 0:중립 or Unkwon, 1:긍정, 2:매우 긍정")
    print("\n")

filefolder = input("종목폴더입력: ")
filename=input("파일이름입력:")
filepos = "C:/Users/yangj/PycharmProjects/pythonProject1/뉴스키워드/"+filefolder+"/" + filename + ".xlsx"
kfile = openpyxl.load_workbook(filepos)#파일이름입력
ws=kfile.active
data=[]
i=0
for row in ws.rows:
    data.append([])
    for cell in row:
        if cell.value != None:
            data[i].append(cell.value)
    i += 1
print(type(data))
del data[0] #첫번째 의미없는 열 삭제
for i in range(len(data)):
    del data[i][0] #각 열의 첫번째 행 삭제
print(data)

KNUdata=[]
        
for x in range(len(data)):
    KNUdata.append([])
    for y in range(len(data[x])):
        KNUdata[x].append(ksl.data_list(data[x][y]))

df_list = pd.DataFrame(data)
df_knu = pd.DataFrame(KNUdata)
result = pd.concat([ df_list, df_knu], axis=1) #TfIf dataframe으로 변환
result.to_excel(filename+' KNU'+'.xlsx')