컴퓨터가 자연어를 이해시키는 방법 두 번째입니다.
이번에는 통계 기반 기법을 사용할 것입니다.
먼저 말뭉치(corpus)에 대해 알아봅시다.
말뭉치란?
간단히 말하면 대량의 텍스트 데이터입니다.
'나는 너를 진심으로 사랑한다'는 문장에서
나는, 너를, 진심으로, 사랑한다는 단어를 어떤 공간에 한 곳에 뭉쳐놓은 것이죠.
파이썬 코드로 살펴보겠습니다.
※ 하단의 재생 버튼▶을 눌러보시면 출력 화면을 볼 수 있습니다.
말뭉치를 위한 사전작업을 마쳤습니다. 이를 preprocess() 함수로 구현하면 아래와 같습니다.
def preprocess(text):
text = text.lower()
text = text.replace('.', ' .')
words = text.split(' ')
word_to_id = {}
id_to_word = {}
for word in words:
if word not in word_to_id:
new_id = len(word_to_id)
word_to_id[word] = new_id
id_to_word[new_id] = word
corpus = np.array([word_to_id[w] for w in words])
return corpus, word_to_id, id_to_word
※ 하단의 재생버튼▶을 눌러보시면 출력 화면을 볼 수 있습니다.
'머신러닝 > 자연어처리' 카테고리의 다른 글
트랜스포머, 자연어처리, pipeline, 감정분류, 개체명인식, 질문답변, 요약, 생성 (0) | 2024.08.22 |
---|---|
차원감소(dimensionality reduction), SVD (0) | 2022.07.29 |
점별 상호정보량 Pointwise Mutual information(PMI) (0) | 2022.07.29 |
코사인 유사도 cosine similarity (0) | 2022.07.29 |
자연어처리 NLP(Natural Language Processing)란? (0) | 2022.07.28 |