머신러닝&딥러닝
9월 29일 언어 지능 실습
민팽
2021. 9. 29. 18:33
실습 내용
- 한글 데이터를 토큰으로 분리하여 train 데이터셋 만들기
- 정수 인코딩: 토큰화된 train 데이터셋을 벡터로 변환
konlpy(코엔엘파이) 라이브러리 설치
- 한국어 정보처리를 위한 파이썬 패키지
pip install konlpy
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]
정수 인코딩 참고
자연어처리(NLP) 6일차 (데이터의 분리/정수인코딩)
19.06.08
omicro03.medium.com