인공지능

[자연어처리 입문] - 언어 전처리 과정 (1) 토큰화

y_lime 2024. 11. 19. 14:11

텍스트 전처리 과정 (3단계)

  1. 토큰화 : 문장을 단어 기준으로 자르는 과정 → I / love / you / for / always / Do / n’t / be / afraid
  2. 정제 및 추출 : 중요한 단어만 냅두고 불필요한 단어들은 다 자르는 과정 → I was wondering if you can help me on this problem
  3. 인코딩 : 2단계에서 남겨진 단어들을 숫자로 바꾸는 과정 → [1,5], [1,3], [1,2,5], [1,0,0,0,0], [0,1,0,0,0]

 

언어의 형태소

문장 : 화분에 예쁜 꽃이 피었다

위 문장을 토큰화 진행 → 화분에 / 예쁜 / 꽃이 / 피었다.

BUT 화분"에" 가 아닌 "은","이"등등 될 수 있기 때문에 이와 같은 단어들은 조사나 어미도 토큰화에서 분리를 해줘야한다.

형태소 분석 : 화분 (명사) + (조사) + 예쁘 (어간) + (어미) + (명사) + (조사) + (어간) + (어미) + (어미)

  • 자립 형태소 : 명사, 수사, 부사, 감탄사
  • 의존 형태소 : 조사, 어미, 어간

언어 전처리

컴퓨터 및 컴퓨터 언어에서 자연어를 효과적으로 처리할 있도록전처리과정을 거친다.

 

언어 전처리 과정

1. 토큰화 (Tokenization)

1) 주어진 문장에서의미 부여 가능한 단위를 찾는다.

  • 띄어쓰기가 있으면 잘라주고 온점이 있으면 문장이 끝남을 알 수 있다.

1) Machine / learning / methods / including / ANN / have / been / applied / in / compound / activity / prediction / for / a long / time.

 

2) 토큰화가 어려운 예시

2) 어제 삼성 라이온즈가 기아 타이거즈를 5:3으로 꺾고 위닝 시리즈를 거두었습니다.

 구두점이나 특수문자를 전부 제거하는 작업만으로는 불가능하다.

 

3) 표준 토큰화: Treebank Tokenization  (예2의 해결방법)

3) Model-based reinforcement learning don’t need a value function for the policy.

TreebankWordTokenizer패키지 사용 (리스트 형태로 return을 해줌)

  • 하이픈(-)을 하나의 단어로 인식해준다.
  • n't(do not)을 다른 단어로 인식해준다.

4) 문장 토큰화: 문장 단위로 의미를 나누기

4) My professor is looking for a student who is fluent on the Python programming. Yet, he also wants a person also capable of dealing with Pytorch.

  • 문장이 매우 길 때 사용

5) 한국어 토큰화의 어려움

5) 컴퓨터의 로컬 IP 주소를 192.168.0.5 설정해 두었어. 혹시나 서버에서 접속이 필요하다면 기억해 두어야 . 일이 끝나면 저녁 먹으러 가자.

  • 이유 : "필요하다면"을 예로 들면, 아래와 같이 복잡하게 토큰화가 된다.
  • 단어마다 모두 처리를 해줘야하기 때문에 아직 한국어 토큰화는 어렵고 패키지도 별로 없는 상태이다.