아래의 포스트에 C++로 직접 구현한 실습 자료를 올려 두었으니, 참고가 되시면 좋겠다.
자연어 처리 실습 - C++ 소스 코드 (Natural Language Processing Practice with C++)
아래 사이트에 '인공지능을 위한 수학' 교재 6장 예제(카테고리 판별기)를 실습한 C++ 소스 코드를 업로드하고 있다. Changes 21.03.12 - 스톱워드(stop-words) 제거 기능 추가 21.03.11 - 형태소 분석 결과를
swjman.tistory.com
교재링크(광고 아님): freelec.co.kr/book/인공지능을-위한-수학/
Bag-of-Words(BoW)
형태소 분석(morpheme analysis) 후 도출된 형태소들의 도출횟수를 벡터처럼 일렬로 나열하는 방법(model)을 말한다. 사실 수학적으로야 벡터지만, 컴퓨터의 관점에서는 그냥 배열이다. 좀 더 고수준의 자료구조라면 맵(b-tree) 정도로 표현하면 되겠다. 그런데... std::vector가 이런 연유로 엉뚱하게 명명이 된것일까 하는 의문이 들었다.
어쨌든 예를 들어 보면, 우선 아래와 같은 형태소 리스트가 도출되었다고 해보자.
$$ L = \{ 강아지, 멍멍이, 고양이, 강아지, 고양이, 씨몽키 \} $$
갯수를 세보면
강아지 | 멍멍이 | 고양이 | 씨몽키 |
2 | 1 | 2 | 1 |
이 개수를 벡터로 표현한 것이 bag-of-words(BoW)다.
$$ BoW = (2, 1, 2, 1) $$
'Book Study > 인공지능을 위한 수학' 카테고리의 다른 글
6장 자연어 처리(8절:문서 분류하기) - 응용편 - 인공지능을 위한 수학 (斷) (0) | 2021.03.28 |
---|---|
6장 자연어 처리(7절:단어 벡터에 가중치 주기) - 응용편 - 인공지능을 위한 수학 (0) | 2021.03.21 |
'인공지능을 위한 수학' 의 원서는? (0) | 2021.03.08 |
6장 자연어 처리(4~5절) - 응용편 - 인공지능을 위한 수학 (0) | 2021.03.06 |
6장 자연어 처리(3절:자연어 처리의 작동 원리) - 응용편 - 인공지능을 위한 수학 (0) | 2021.03.03 |