saurus2
Saurus2
saurus2
전체 방문자
오늘
어제
  • 분류 전체보기
    • 개발
      • AJAX
    • ML Ops
    • Profile
    • 음식점
    • 배낭여행
    • 컴퓨터공학
      • 알고리즘 공부
      • C++
      • Sever 스터디
      • Java spring
      • 알고리즘 _ 문제해결
      • 딥러닝
      • Java 정리
      • Python
      • LeetCode 1000
      • Machine Learning Study
      • Sign language Detection Pro..
      • LeetCode Solutions
    • 비콘
    • 데일리 리포트
    • 유학일기
      • 영어 공부
      • Daily
    • AI Master Degree
      • Data Mining
      • AI and Data engineering
      • Math Foundations for Decisi..
      • Natural Language Processing

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • BFS
  • 취업준비
  • 딥러닝
  • 알고리즘문제해결
  • DFS
  • 개발자 취업준비
  • 취준
  • two pointer
  • Python
  • 온라인저지
  • 알고리즘
  • 파이썬
  • 개발자
  • c++
  • 리트코드
  • 문제해결능력
  • 딕셔너리
  • 백준
  • LeetCode
  • 릿코드

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
saurus2

Saurus2

AI Master Degree/Natural Language Processing

Text normalization 이란? 텍스트 정규화란?

2022. 10. 6. 14:38

Text normalization 이란?

테스트를 처리할때 텍스트를 편리한 표준 형식으로 변환하는 것을 포함한다. 

Text normalization 과정

  1. 텍스트 전체를 문장으로 분할
  2. 문장들을 단어들로 분할(Tokenization)
  3. 단어 형식을 표준화

단어 Tokenization 알고리즘

  • Regular Expression-based 접근 방식(정규식 기반)
    • 정규식을 사용하여 토큰화를 진행하면 토큰화 속도가 매우 빠르다.
  • Penn Treebank 토큰화(펜트 트리뱅크)
    • 하이픈으로 연결된 단어를 하나의 토큰으로 유지
    • 구두점을 별도의 토큰으로 유지 
    • Linguistic Data Consortium 에서 배포하는 많은 기본 데이터 세트를 토큰화에 사용
  • 하위 단어 토큰화 e.g. Byte-Pair Encoding(BPE)
    • 하위 단어를 생성하는 토큰화 접근법이며 인코더의 토큰 학습자 부분은 특정한 말뭉치에 대한 하위 단어를 계산한다. 토큰 분할자는 해당 어휘를 사용하여 텍스트를 토큰으로 변환한다. 
    • BPE Step 과정
      • 데이터 집합의 개별 문자들로 구성된 어휘 (토큰) 로 시작한다. 
      • 데이터 집합에서 가장 인접한 두개의 심볼들을 (e.g. E & R) 선택하고 병합된 문자를 새 심볼로 추가한다. (e.g. ER)
      • 위의 과정을 k 단계 반복 수행하며, k 는 실행되는 계산량을 제어하는 데 사용한다.
      • 알 수 없는 단어들을 토큰으로 나타낼 수 있으나 최악의 경우 문자 수준의 토큰으로 표시될 수 있다.
      • 만약 k 가 충분히 크다면, 원본 테스트의 모든 단어들을 표현할 수 있다.

Normalizing word formats 단어 형식 표준화

  • 모든 문자를 소문자로 매핑하기
  • 모든 문자가 소문자화 되기 때문에, 어휘 (단어 즉, 토큰) 의 크기는 줄어든다.
  • 예외: Sentiment Analysis (감정 분석) 과 같은 일부 응용 프로그램에서는 바람직하지 않다.

Stemming 이란?

  • Stemming 은 Inflected (굴절) 된 단어들을 동일한 단어 stem (줄기) 나 root (어근, 형태학적 어근은 아니다) 로 변환하는 것을 말한다. 

Porter Stemmer 란?

  • Porter Stemmer 는 nltk 에서도 구현되어 있는 유명한 알고리즘이다.
  • 예시
    • 'apple' 을 'appl' 로, 'eating' 을 'eat' 로 stem 한다.
    • 'universal', 'university', 'universe' 를 'univers' 로 stem 할 수 있지만 이는 Overstemming 이라고 볼 수 있다.
    • 'alumnus' 를 'alumnu', 'alumni' 를 'alumni', 'alumna' 혹은 'alumnae' 를 'alumna' 로 stem 할 수 있지만 Understemming 이라고 볼 수 있다.

Stemming 의 문제

  • 위에서 설명한 것과 같이 Overstemming 과 Understemming 이 있다.
  • 실제 단어들에서 유래된 단어들이 아니라 잘리거나 조잡하게 단축된 단어이기 때문에 텍스트를 읽기 어렵게 만든다. 만일 이러한 상황이 발생되면 Modeling 을 할때 Modeling 의 일부로 텍스트를 검토해야할 수도 있다. 

Lemmatization 이란? 

  • Lemmatization 은 Stemming 보다 더 정교한 단어 형식 표준화 접근법이다. Lemma 로 알려진 단어의 기본 또는 사전 형태의 단어를 반환한다.
  • Lemma 들은 WordNet 과 같은 어휘 지식을 기반으로 구현된다.
  • 텍스트의 결과는 Stemming 와 다르게 읽을 수 있다.

단점

  • 일반적으로 Lemmatization 은 말하는 언어 (구어) 의 부분을 특정하게 지정해야 한다. 그렇지 않으면 데이터베이스에서 처리할 명사를 찾지 못했을때 변경하거나 Lemmatize 하지 못한다.
  • Lemmatization 은 알려지지 않은 단어를 다룰 수 없다. 예를 들어 Forter stemmer 는 iPhone 과 IPhone 을 모두 iphon 으로 변경하는 반면에 WordNet 은 두 단어 모두 그대로 둔다.

더 복잡한 형태학을 가진 언어들은 Stemming 과 Lemmatization 으로 부터 많은 이익을 얻는다.

Stemming 과 Lemmatization 의 정밀도 VS Recall 

  • Lemmatization 는 Stemming 보다 좋은 Precision 을 가지는 반면에, Stemming 은 Lemmatization 보다 낮은 Recall 을 가지고 있다. 

참고

  • Recall: Recall 은 알고리즘이 동일한 'root' 에 매핑될 수 있는 모든 단어를 얼마나 잘 검색할 수 있는지에 대한 척도
  • Precision: Precision 은 알고리즘이 단어의 의미를 얼마나 잘 보존하는지를 나타낸다. 
  • 즉 Lemmatization 은 단어의 의미를 더 잘 보존하며, Stemming 은 동일한 'root' 로부터 모든 단어를 더 잘 검색할 수 있다.
  • 또한 Lemmatization 과 Stemming 모두, Recall 을 늘리고 Precision 을 기존의 텍스트보다 상대적으로 낮추는 성향을 가지고 있다.

Sentence Segmentation 시 발생하는 문제

  • 문장의 끝과 약어를 명확하게 만드는 것이 어렵기 때문에 다음과 같은 접근 방법을 사용한다.
    • 단어들의 모든 부분들이 어떤 기간, 범위를 가지고 있는지 결정해야한다. 
    • 규칙, 사전 검색 dictionary lookup 혹은 머신러닝을 이용하여 결정한다.
    • 문장들의 끝의 범위가 얼마나 남았는지 가정한다.
  • 때로는 두가지 규칙이 존재할 수 있다는 것을 명심한다. 예를 들어 축약은 문장의 마지막이 될 수 있다. 그렇기 때문에 단어와 문장의 tokenizer 들은 조정이 필요하다.

Edit Distance Overview 란?

  • Edit Distance 는 두 문자열의 유사성 Similarity 를 정량화 하는 방법이다. 
    • 자동 수정: 철자가 잘못된 단어들을 자동으로 수정할때 수정할 대상을 파악하기 위해 사용
    • 상호 참조: 상호 참조를 위해 사용 e.g. San Jose State President 와 San Jose State University President 가 같은 대상으로 참조되어 있는지 확인할 때
  • Minimum Edit Distance (MED): 연산들에 대한 최소 횟수
    • e.g. 하나의 문자열을 다른 것으로 변환할때 삽입, 삭제, 대체의 연산수를 의미한다. 
  • Levenshtein Distance (LD): 각 연산이 같은 가중치 wight 를 가지고 있는 MED 알고리즘이다.
    • e.g. 각각의 비용이 1이고 intention 과 execution 은 5 를 가진다.
저작자표시 (새창열림)

'AI Master Degree > Natural Language Processing' 카테고리의 다른 글

Model Evaluation란? 모델 평가란?  (1) 2022.10.08
N-Gram language models 이란? 엔 그램 언어 모델들이란?  (2) 2022.10.07
Words 에 대해서?  (0) 2022.10.06
Regular Expressions 이란? 정규식이란?  (0) 2022.10.06
NLP 란? Natural Language Processing 자연어 처리란?  (1) 2022.10.05
    'AI Master Degree/Natural Language Processing' 카테고리의 다른 글
    • Model Evaluation란? 모델 평가란?
    • N-Gram language models 이란? 엔 그램 언어 모델들이란?
    • Words 에 대해서?
    • Regular Expressions 이란? 정규식이란?
    saurus2
    saurus2
    Simple is Best

    티스토리툴바