Ⅱ단원 · 2 / 5차시

텍스트 데이터를 벡터로 표현하기

집합의 한계를 넘어서기 위해 텍스트 데이터를 원-핫 벡터와 빈도수 벡터로 표현하는 방법을 배웁니다.

학습목표

  • 벡터의 성분과 차원을 구하고, 두 벡터가 같을 조건을 이용할 수 있다.
  • 전체집합을 기준으로 단어를 원-핫 벡터로 표현할 수 있다.
  • 텍스트 데이터에서 단어별 등장 횟수를 세어 빈도수 벡터로 표현할 수 있다.

시간 배분

단계활동
도입벡터의 성분과 차원 복습5분
활동1원-핫 벡터 만들기15분
활동2빈도수 벡터 만들기20분
정리단어 임베딩과 단어 구름10분
도입 · 5분

벡터의 성분과 차원 복습

하나 또는 여러 개의 데이터를 순서쌍의 형태로 표현한 것을 벡터라 하고 $\vec{a}, \vec{b}, \vec{c}, \cdots$와 같이 나타냅니다. 벡터 $\vec{a}=(a_1, a_2, \cdots, a_n)$의 각 수 $a_i$를 성분, $n$개의 성분으로 이루어진 벡터를 $n$차원 벡터라고 합니다.

확인하기문제
1벡터 $\vec{X}=(2,1,3,0,1)$의 첫째 성분, 넷째 성분, 차원첫째 성분 2, 넷째 성분 0, 5차원
2-⑴$\vec{a}=(x+2,3), \vec{b}=(5,y+1)$이 같을 때 $x,y$$x=3, y=2$
2-⑵$\vec{a}=(2x+y,7), \vec{b}=(0,x-3y)$가 같을 때 $x,y$$x=1, y=-2$
활동 1 · 15분

원-핫 벡터 만들기

원-핫 벡터는 전체집합의 원소 개수를 벡터의 차원으로 하되, 표현하려는 단어에 대응하는 성분에만 1을, 그 외에는 0을 부여하는 벡터입니다. 1차시에서 구한 전체집합 $U$의 단어를 클릭해 원-핫 벡터를 만들어 보세요.

U = {불편하다, 편의점, 따뜻하다, 이야기, 감동하다, 찾아가다, 일상, 소중하다}

전체집합 $U$의 각 단어가 한 줄 평 A, B, C에 속하면 1, 속하지 않으면 0으로 나타내면 각 한 줄 평을 다중-핫 벡터로 나타낼 수 있습니다.

한 줄 평 A, B, C의 벡터
활동 2 · 20분

빈도수 벡터 만들기

원-핫 벡터나 다중-핫 벡터는 단어의 포함 여부만 나타낼 뿐 등장 횟수는 알 수 없습니다. 단어별 등장 횟수를 성분으로 하는 벡터를 빈도수 벡터라고 합니다. 신라 장군 김유신에 대한 두 평가에서 빈도수 벡터를 만들어 봅시다.

평가 A(변호사 김부식): 신라는 삼국을 통일해 전란의 고통에서 삼국의 백성들을 해방시켰다.
평가 B(검사 신채호): 신라 통일은 당나라에 민족 터전을 잃게 만든, 삼국 통일이 아닌 삼한 통일이다.

단어별 빈도수 벡터 나타내기
통일삼국신라전란고통백성해방당나라민족터전잃다삼한
평가 A121111100000
평가 B311000011111
합계432111111111

$\vec{a}=(1,2,1,1,1,1,1,0,0,0,0,0)$, $\vec{b}=(3,1,1,0,0,0,0,1,1,1,1,1)$, $\vec{u}=\vec{a}+\vec{b}=(4,3,2,1,1,1,1,1,1,1,1,1)$

빈도수가 가장 높은 단어는 평가 A에서 삼국(2회), 평가 B에서 통일(3회)이므로 이 두 단어가 각 평가의 주제어임을 알 수 있습니다.

정리 · 10분

단어 임베딩과 단어 구름

원-핫 벡터나 빈도수 벡터는 단어의 의미를 하나의 차원에만 표현하기 때문에 (1) 단어 간의 의미를 알기 어렵고 (2) 긴 글에는 아주 큰 차원의 벡터가 필요하다는 문제가 있습니다. 단어 임베딩(word embedding)은 단어의 의미를 여러 차원에 분산하여 표현하는 방법으로, 비슷한 의미의 단어들을 서로 가까운 곳에 배치합니다. 가장 많이 사용되는 방법으로 워드투벡(Word2Vec)이 있습니다.

빈도수를 시각화하면 어떤 단어가 중요한지 한눈에 볼 수 있는데, 이를 단어 구름(word cloud)이라고 합니다. 사용 빈도가 높을수록 글자 크기가 커집니다. 아래에서 1차시 한 줄 평 A, B, C를 합친 텍스트의 단어 구름을 확인해 보세요.

단어 구름 (빈도수 기준)

차시 예고

오늘은 원-핫 벡터와 빈도수 벡터로 텍스트를 표현하는 방법을 배웠습니다. 다음 시간에는 빈도수만으로는 알기 어려운 단어의 상대적 중요도, TF-IDF를 계산해 봅니다.

← 1차시 — 텍스트 데이터를 집합으로 표현하기 3차시 — TF-IDF로 중요한 단어 찾기 →