Text Analytics 이해

완료됨

Azure AI 언어 서비스의 텍스트 분석 기능을 살펴보기 전에 텍스트 분석 및 기타 NLP(자연어 처리) 작업을 수행하는 데 사용되는 몇 가지 일반 원칙과 일반적인 기술을 살펴보겠습니다.

컴퓨터로 텍스트를 분석하는 데 사용된 초기 기술 중 일부는 일종의 의미 체계 의미를 유추하기 위해 텍스트 본문(코퍼스)에 대한 통계적 분석을 포함합니다. 간단히 말해서, 지정된 문서에서 가장 일반적으로 사용되는 단어를 결정할 수 있다면 문서가 무엇에 관한 것인지에 대한 좋은 아이디어를 가져올 수 있는 경우가 많습니다.

토큰화

코퍼스를 분석하는 첫 번째 단계는 코퍼스를 토큰으로 나누는 것입니다. 간단히 설명하기 위해, 학습 텍스트의 각 불연속 단어를 토큰으로 생각할 수 있습니다(실제로는 부분 단어 또는 단어와 문장 부호의 조합에 대한 토큰을 생성할 수 있음).

예를 들어, 유명한 미국 대통령 음성에서 "we choose to go to the moon"라는 구를 생각해 보세요. 이 구는 숫자 식별자를 사용하여 다음 토큰으로 나눌 수 있습니다.

  1. we
  2. choose
  3. GO
  4. the
  5. moon

"to"(토큰 번호 3)가 코퍼스에서 두 번 사용되었습니다. "we choose to go to the moon"라는 구는 토큰 [1,2,3,4,3,5,6]으로 표현될 수 있습니다.

참고 항목

우리는 텍스트의 각 개별 단어에 대해 토큰이 식별되는 간단한 예를 사용했습니다. 그러나 해결하려는 NLP 문제의 특정 종류에 따라 토큰화에 적용될 수 있는 다음 개념을 고려합니다.

  • 텍스트 정규화: 토큰을 생성하기 전에 문장 부호를 제거하고 모든 단어를 소문자로 변경하여 텍스트를 정규화하도록 선택할 수 있습니다. 단어 빈도에만 의존하는 분석의 경우 이 방식은 전반적인 성능을 개선합니다. 그러나 일부 의미 체계 의미가 손실될 수 있습니다. 예를 들어, "Mr Banks has worked in many banks."라는 문장을 고려해 보세요. 분석을 통해 Mr Banks라는 인물과 그가 근무했던 banks를 구별할 수 있습니다. 마침표를 포함하면 해당 단어가 문장 끝에 나온다는 정보를 제공하므로 "banks."를 "banks"에 대한 별도의 토큰으로 간주할 수도 있습니다.
  • 불용어 제거. 중지 단어는 분석에서 제외해야 하는 단어입니다. 예를 들어 "the", "a" 또는 "it"은 텍스트를 더 쉽게 읽을 수 있지만 의미 체계적 의미는 거의 추가하지 않습니다. 이러한 단어를 제외함으로써 텍스트 분석 솔루션은 중요한 단어를 더 잘 식별할 수 있습니다.
  • n-gram은 "I have" 또는 "he walked"와 같이 여러 단어로 이루어진 구입니다. 한 단어 구는 unigram, 두 단어 구는 bi-gram, 3단어 구는 tri-gram, 이런 식으로 계속됩니다. 기계 학습 모델은 단어를 그룹으로 고려함으로써 텍스트를 더 잘 이해하게 됩니다.
  • 형태소 분석은 단어를 계산하기 전에 알고리즘을 적용하여 단어를 통합하여 "power", "powered" 및 "powerful"과 같이 어근이 동일한 단어가 동일한 토큰으로 해석되도록 하는 기술입니다.

빈도 분석

단어를 토큰화한 후 몇 가지 분석을 수행하여 각 토큰의 발생 횟수를 계산할 수 있습니다. 가장 일반적으로 사용되는 단어("a", "the" 등과 같은 불용 단어 제외)는 종종 텍스트 코퍼스의 주요 주제에 대한 단서를 제공할 수 있습니다. 예를 들어, 이전에 고려한 "go to the moon" 음성의 전체 텍스트에서 가장 일반적인 단어에는 ""new", "go", "space" 및 "moon"이 포함됩니다. 텍스트를 바이그램(단어 쌍)으로 토큰화한다면 음성에서 가장 일반적인 바이그램은 "moon"입니다. 이 정보를 통해 본문이 주로 우주 여행과 달에 가는 것에 관련되어 있다는 것을 쉽게 추측할 수 있습니다.

단순히 각 토큰의 발생 횟수를 세는 단순 빈도 분석은 단일 문서를 분석하는 효과적인 방법이 될 수 있지만, 동일한 코퍼스 내의 여러 문서를 구별해야 하는 경우 각 문서에서 가장 관련성이 높은 토큰을 결정하는 방법이 필요합니다. TF-IDF(용어 빈도 - 역 문서 빈도)는 전체 문서 컬렉션에서 보다 일반적인 빈도와 비교하여 한 문서에 단어 또는 용어가 나타나는 빈도를 기준으로 점수를 계산하는 일반적인 기술입니다. 이 기술을 사용하면 특정 문서에 자주 나타나는 단어에 대해 높은 수준의 관련성이 가정되지만, 다른 광범위한 문서에서는 상대적으로 드물게 나타납니다.

텍스트 분류를 위한 기계 학습

또 다른 유용한 텍스트 분석 기술은 로지스틱 회귀와 같은 분류 알고리즘을 사용하여 알려진 분류 집합을 기반으로 텍스트를 분류하는 기계 학습 모델을 학습시키는 것입니다. 이 기술의 일반적인 적용은 감정 분석 또는 오피니언 마이닝을 수행하기 위해 텍스트를 긍정적 또는 부정적으로 분류하는 모델을 학습시키는 것입니다.

예를 들어, 이미 0(부정적) 또는 1(긍정적)로 레이블이 지정된 다음 레스토랑 리뷰를 고려합니다.

  • 음식과 서비스가 모두 훌륭함: 1
  • 정말 끔찍한 환경: 0
  • 음! 맛있는 음식과 즐거운 분위기: 1
  • 느린 서비스 및 수준 이하의 음식: 0

레이블이 지정된 리뷰가 충분하면 토큰화된 텍스트를 기능으로 사용하고 감정(0 또는 1)을 레이블로 사용하여 분류 모델을 학습시킬 수 있습니다. 모델은 토큰과 감정 간의 관계를 요약합니다. 예를 들어, "훌륭함", "맛있음" 또는 "재미"와 같은 단어에 대한 토큰이 포함된 리뷰는 1(긍정적)의 감정을 반환할 가능성이 높은 반면 "끔찍함", "느림", "표준 이하"와 같은 단어가 포함된 리뷰는 0(부정적)을 반환할 가능성이 높습니다.

의미 체계 언어 모델

NLP의 최신 기술이 발전함에 따라 토큰 간의 의미 체계 관계를 캡슐화하는 모델을 학습하는 기능으로 인해 강력한 언어 모델이 등장하게 되었습니다. 이러한 모델의 핵심은 언어 토큰을 포함이라고 하는 벡터(다중값 숫자 배열)로 인코딩하는 것입니다.

각 토큰이 특정 “위치”를 차지하도록 토큰 포함 벡터의 요소를 다차원 공간의 좌표로 생각하면 유용할 수 있습니다. 토큰이 특정 차원을 따라 서로 더 가까울수록 의미 체계적 관련성이 높아집니다. 즉, 관련 단어가 함께 더 가깝게 그룹화됩니다. 간단한 예제로, 토큰에 대한 포함이 다음과 같은 세 가지 요소가 있는 벡터로 구성한다고 가정합니다.

  • 4(“dog“): [10.3.2]
  • 5 ("bark"): [10,2,2]
  • 8(“cat“): [10,3,1]
  • 9(“meow“): [10,2,1]
  • 10(“skateboard“): [3,3,1]

다음과 같이 3차원 공간에서 이러한 벡터를 기반으로 토큰의 위치를 그릴 수 있습니다.

A diagram of tokens plotted on a three-dimensional space.

포함 공간에 있는 토큰의 위치에는 토큰이 서로 얼마나 가깝게 관련되는지에 대한 일부 정보가 포함됩니다. 예를 들어 “dog“의 토큰은 “cat“ 및 “bark“에 가깝습니다. “cat“ 및 “bark“의 토큰은 “meow“에 가깝습니다. “skateboard“의 토큰은 다른 토큰과 더 멀리 떨어져 있습니다.

업계에서 사용하는 언어 모델은 이러한 원칙을 기반으로 하지만 훨씬 더 복잡합니다. 예를 들어, 사용되는 벡터는 일반적으로 더 많은 차원을 갖습니다. 또한 주어진 하나의 토큰 집합에 대해 적절한 임베딩을 계산하는 데는 여러 가지 방법이 있습니다. 방법에 따라 자연어 처리 모델의 예측이 달라집니다.

다음 다이어그램은 대부분의 최신 자연어 처리 솔루션에 대한 일반화된 보기를 보여 줍니다. 원시 텍스트의 대규모 코퍼스는 토큰화되어 다양한 형식의 자연어 처리 작업을 지원할 수 있는 언어 모델을 학습하는 데 사용됩니다.

A diagram of the process to tokenize text and train a language model that supports natural language processing tasks.

언어 모델이 지원하는 일반적인 NLP 작업은 다음과 같습니다.

  • 핵심 용어 추출 또는 텍스트에서 명명된 엔터티 식별과 같은 텍스트 분석.
  • 텍스트를 긍정적 또는 부정적으로 분류하는 감정 분석 및 오피니언 마이닝.
  • 텍스트가 한 언어에서 다른 언어로 자동 번역되는 기계 번역.
  • 요약: 큰 텍스트 본문의 주요 요점을 요약합니다.
  • 언어 모델이 자연어 입력을 해석하고 적절한 응답을 반환할 수 있는 또는 디지털 도우미와 같은 대화형 AI 솔루션입니다.

이러한 기능과 그 이상은 다음에 살펴볼 Azure AI 언어 서비스의 모델에서 지원됩니다.