이를 통해 기사, 논문, 블로그 등 텍스트에서 다양한 정보들을 추출할 수 있습니다. 정보 뿐 아니라 감정 분석, 항목 분석, 항목 감정 분석, 콘텐츠 분류, 구문 분석 등 자연어 이해 기술을 활용해 마케팅에도 이용할 수 있다는 장점이 있습니다. 고객을 분석하거나 사용자들의 경험을 읽어 제품을 수정 및 보완할 수 있다는 거죠. 또한 다국어를 지원하기 때문에 언어의 차이도 신경쓰지 않아도 됩니다.
Natural Language 기능에는 다음과 같은 기능이 존재합니다.
그렇다면 Natural Language는 어떤 방식으로 요청 및 응답할까요?
기본적으로 Natural Language API는 REST API이며, JSON 형태로 요청 및 응답합니다.
document는 요청 데이터가 포함되어 있으며 type 문서 유형(HTML 또는 PLAIN_TEXT)
과 language (선택, 지정하지 않으면 자동으로 감지) 라는 하위필드로 구성됩니다. 참고로 지원되지 않는 언어는 JSON 응답에서 오류를 반환합니다.
content와 gcsContentUri는 분석할 텍스트이거나 GCS 내 텍스트 콘텐츠를 가리키는 URI입니다.
encodingType는 필수항목으로 텍스트에 대한 반환된 문자 오프셋을 계산하는 인코딩 스키마입니다. 반드시 전달된 텍스트의 인코딩과 일치해야 합니다. 이 매개변수가 설정되지 않은 경우 요청이 오류를 반환하는 대신 모든 오프셋이 -1로 설정됩니다.
그럼 감정 분석 요청이 어떤 방식으로 이뤄지는지도 확인해봅시다.
감정 분석은 텍스트 내에서 보이는 태도를 판단하는 기능입니다. 이는 숫자 score 및 magnitude 값으로 표현됩니다.
따라서 위 이미지의 score 응답값은 0.2로 문서가 살짝 긍정적임을 나타내고, magnitude 응답값은 3.6으로 문장의 길이에 대비해 상당히 감정적이라는 점을 나타냅니다.
그렇다면 이 감정 분석의 값을 어떻게 정확히 해석할 수 있을까요. 먼저 다음 차트를 봐주세요.
Natural Language API는 문서에서 긍정적 감정과 부정적 감정을 구분하기는 하지만, 구체적으로 어떠한 감정인지는 식별하지 않습니다.
예를 들어 ‘화가 난다’와 ‘슬프다’는 모두 부정적 감정으로 간주됩니다. 하지만 Natural Language API는 ‘화가 난’ 것으로 보이는 텍스트 또는 ‘슬퍼’ 보이는 텍스트를 분석할 때 텍스트의 감정의 부정적이라는 것만 표시할 뿐 ‘슬프다’거나 ‘화가 났다’라고 표시하지 않습니다.
따라서 중립적 점수(0.0 근처)의 문서는 감정적 콘텐츠가 많거나 복합적 감정이 포함되어 긍정적 값과 부정적 값이 서로를 상쇄시키는 문서일 수 있습니다. 이럴 경우 magnitude 값을 사용해 구분할 수 있습니다. 문서가 실제로 감정 중립적이라면 magnitude 값이 낮지만 복합적 감정이 포함되어 있는 문서는 이 값을 높게 측정합니다.
이런 형태로 Cloud Natural Language API를 이용해 텍스트를 항목 분석 응답, 항목 감정 분석, 구문 분석, 콘텐츠 분류 해볼 수 있습니다.
이처럼 구글 자연어 처리(Cloud Natural Language)는 따로 하나하나 텍스트를 읽어가며 분석하지 않아도 머신러닝을 통해 간단히 텍스트 분석을 수행할 수 있습니다. 게다가 커스텀 항목 추출을 사용하면 따로 분석을 하기 위해 시간이나 비용을 들이지 않고도 표준 언어 모델로는 식별할 수 없는 전문적인 항목 역시 분석이 가능합니다.
본격적으로 사용하기 전 기능이 궁금하시다면 이 페이지를 방문하셔서 데모를 한번 사용해보세요.
이런 형태로 분석해주는 걸 미리 확인할 수 있습니다. 물론 한국어도 가능합니다. 상당히 유용한 기능이겠죠.
하이프마크에서는 기업의 웹앱로그데이터의 클라우드 적재와 ETL 파이프라인 구성 그 외 클라우드 내 데이터분석 환경 구축 및 분석 시각화 서비스를 함께 제공하고 있습니다.
AWS, GCP등 클라우드 이전 매니지드서비스 및 웹앱로그데이터 태깅 적재 관련 문의사항이 있으시면 하이프마크에 문의 주세요
감사합니다.
참조 : https://cloud.google.com/natural-language
https://cloud.google.com/natural-language/docs/basics