민팽로그

9월 29일 언어 지능 실습 본문

머신러닝&딥러닝

9월 29일 언어 지능 실습

민팽 2021. 9. 29. 18:33
실습 내용

- 한글 데이터를 토큰으로 분리하여 train 데이터셋 만들기

- 정수 인코딩: 토큰화된 train 데이터셋을 벡터로 변환

 

konlpy(코엔엘파이) 라이브러리 설치

 - 한국어 정보처리를 위한 파이썬 패키지

pip install konlpy

https://konlpy.org/ko/latest/

 

KoNLPy: 파이썬 한국어 NLP — KoNLPy 0.5.2 documentation

KoNLPy: 파이썬 한국어 NLP KoNLPy("코엔엘파이"라고 읽습니다)는 한국어 정보처리를 위한 파이썬 패키지입니다. 설치법은 이 곳을 참고해주세요. NLP를 처음 시작하시는 분들은 시작하기 에서 가볍게

konlpy.org

 

 

과제 코드
from konlpy.tag import Komoran
from collections import Counter

komoran = Komoran()

text = '안녕하세요 저는 민팽입니다. 자연어처리 이미지처리 딥러닝'

print(komoran.morphs(text)) 

#토큰 분리
with open('/content/ratings_train.txt', mode='r',encoding='UTF8') as data:
  all_line = data.readlines()
  train = []
  label = []
  #'id\tdocument\tlabel\n', '9976970\t아 더빙.. 진짜 짜증나네요 목소리\t0\n',
  for i in all_line :
    i = i.split('\t')
    # [id, document,label]
    token=komoran.morphs(i[1])
    train.append(token)
    label_num=i[2].rstrip('\n')
    label.append(label_num)
    
#불필요한 원소 삭제
del train[0]
del label[0]

#단어 빈도 수 세기
vocab = Counter()
for i in range(len(train)):
    for word in train[i]:
        vocab[word] = vocab[word]+1

#빈도 역순으로 정렬
vocab_sorted = sorted(vocab.items(), key=lambda x:x[1], reverse=True)
vocab_sorted

#빈도수에 따라 인덱스 부여(빈도수가 가장 높은 토큰의 인덱스가 0)
word_to_index = {}
i = -1
for (word, frequency) in vocab_sorted:
    i += 1
    word_to_index[word] = i

#train리스트 원소들을 정수화
for i in range(len(train)):
    j = 0
    for word in train[i]:
        train[i][j] = word_to_index[word]
        j += 1

print(train[0])


#print(train[0]) 결과: [24, 532, 0, 0, 55, 243, 29, 58, 764]

 

 

 

정수 인코딩 참고

https://omicro03.medium.com/%EC%9E%90%EC%97%B0%EC%96%B4%EC%B2%98%EB%A6%AC-nlp-6%EC%9D%BC%EC%B0%A8-%EB%8D%B0%EC%9D%B4%ED%84%B0%EC%9D%98-%EB%B6%84%EB%A6%AC-%EC%A0%95%EC%88%98%EC%9D%B8%EC%BD%94%EB%94%A9-332670c73388

 

자연어처리(NLP) 6일차 (데이터의 분리/정수인코딩)

19.06.08

omicro03.medium.com

 

'머신러닝&딥러닝' 카테고리의 다른 글

optimizer  (0) 2021.10.01
9월 30일 언어 지능 실습  (0) 2021.10.01
9월 28일 언어 지능 실습 정리  (0) 2021.09.28
Recurrent Neural Network(RNN)  (0) 2021.09.28
활성화 함수(Activation Function)  (0) 2021.09.28
Comments