[python] konlpy로 csv 파일에서 명사 추출하기

2020. 9. 17. 12:08DB

konlpy 설치 먼저 해야한다. 

konlpy-ko.readthedocs.io/ko/v0.4.3/install/

import csv
from collections import Counter
import pandas as pd

# 1. 트윗터 패키지 안에 konlpy 모듈호출
from konlpy.tag import Twitter
twitter = Twitter()

# 2.파일 읽기
DEST = "./processed_data/"
comp_list=["compatibility.csv","incompatibility.csv"]
noun_list = []
for filename in comp_list:
    f = open(DEST+filename,'r',encoding='utf-8')
    rdr = csv.reader(f)

    # 3. 변수 okja에 문장들 저장
    okja=[]
    food_names=[]
    for line in rdr:
        okja.append(line[2])
        food_names.append(line[0])
        food_names.append(line[1])
    # 4. 각 문장별로 형태소 구분하기
    sentences_tag = []
    for sentence in okja:
        morph = twitter.pos(sentence)
        sentences_tag.append(morph)
    #    print(morph)
    #    print('-'*30)

    # 5. 명사만 선별해 리스트에 담기
   
    for sentence1 in sentences_tag:
        for word, tag in sentence1:
            if tag in ['Noun']:
                noun_list.append(word)

    # 음식이름은 빼고 구하기 (set의 차집합)
    noun_list= list(set(noun_list)-set(food_names))
    
    # 6. 선별된 명사들 출력
    for word in noun_list:
        print(word)


# 컬럼명 달아주기
noun_list.insert(0,"DISEASE")

# 엑셀에 담기
dataframe = pd.DataFrame(noun_list)
dataframe.to_csv(DEST+'diseases.csv', header=False, index=False,encoding='utf-8-sig')

print(len(noun_list))
f.close() 

 

'DB' 카테고리의 다른 글

mysql distinct 가 안될때  (0) 2020.06.15