이번 글에서는 Azure AI Language가 무엇인지, 그리고 이 서비스가 텍스트를 어떻게 이해하고 분석하는지 살펴보겠습니다.
이전 글에서 Document Intelligence가 문서 안의 글자와 구조를 읽어내는 서비스였다면,
Azure AI Language는 그다음 단계에 가깝습니다. 문서나 문장 안에 들어 있는 사람 이름, 장소, 핵심 표현, 감정, 질문 의도 같은 의미를 분석합니다.
쉽게 말하면 Document Intelligence가 “문서에서 글자를 꺼내는 역할”에 가깝다면, Azure AI Language는 “꺼낸 글자가 무슨 뜻인지 해석하는 역할”에 가깝습니다.
목차
1. Azure AI Language란?
Azure AI Language는 텍스트를 이해하고 분석하기 위한 Azure의 자연어 처리 서비스입니다.
여기서 자연어 처리는 영어, 한국어, 일본어처럼 사람이 평소에 사용하는 언어를 컴퓨터가 처리할 수 있게 만드는 기술을 말합니다. 영어로는 NLP, Natural Language Processing이라고 부릅니다.
우리가 텍스트를 읽을 때는 단어만 보는 것이 아닙니다.
문장 안에서 누가 등장하는지, 어떤 장소가 나오는지, 글쓴이의 감정이 긍정적인지 부정적인지, 핵심 주제가 무엇인지 자연스럽게 파악합니다. 하지만 컴퓨터에게 텍스트는 기본적으로 문자열입니다.
즉, 의미를 바로 이해하는 것이 아니라 글자들의 나열로 보는 것에 가깝습니다.
Azure AI Language는 이 문자열을 분석해서 애플리케이션이 사용할 수 있는 데이터로 바꿔줍니다. 예를 들어 고객 리뷰가 들어오면 다음과 같은 정보를 뽑을 수 있습니다.
- 리뷰의 감정이 긍정인지 부정인지
- 리뷰에서 자주 언급되는 핵심 표현이 무엇인지
- 문장 안에 사람 이름, 장소, 조직명이 있는지
- 전화번호나 이메일 같은 개인정보가 포함되어 있는지
- 사용자의 질문에 답변할 수 있는지
핵심 개념
Azure AI Language는 텍스트를 단순한 글자 묶음으로 보지 않고, 사람 이름, 장소, 감정, 핵심 문구, 질문 의도처럼 의미 있는 정보로 분석해주는 NLP 서비스입니다.
Azure AI Language는 주로 세 가지 방식으로 사용할 수 있습니다.
| 사용 방식 | 설명 | 언제 쓰면 좋은가 |
|---|---|---|
| Language Studio | 웹 화면에서 텍스트를 입력하고 결과를 확인하는 도구 | 처음 기능을 테스트하거나 실습할 때 |
| REST API | HTTP 요청으로 기능을 호출하는 방식 | 웹 서비스나 백엔드 서버에 연결할 때 |
| Client Library | Python, C#, JavaScript 등의 코드에서 쉽게 쓰도록 만든 라이브러리 | 프로그램 안에서 안정적으로 기능을 사용할 때 |
2. NLP 서비스가 필요한 이유
실무에서 다루는 데이터는 숫자처럼 깔끔하게 정리된 것만 있는 것이 아닙니다.
오히려 고객 리뷰, 상담 기록, 이메일, 설문 응답, 문의 게시글처럼 형태가 제각각인 텍스트가 훨씬 많습니다.
-> 이런 데이터를 비정형 텍스트라고 부릅니다.
비정형 텍스트는 사람이 읽으면 이해할 수 있지만, 프로그램이 바로 분석하기에는 어렵습니다. 예를 들어 다음과 같은 고객 리뷰를 생각해보겠습니다.
배송은 빨랐는데 포장이 조금 아쉬웠어요.
그래도 제품 품질은 좋고, 고객센터 응대도 친절했습니다.
사람은 이 문장을 읽고 대충 이렇게 판단할 수 있습니다.
- 배송은 긍정적이다.
- 포장은 부정적이다.
- 제품 품질은 긍정적이다.
- 고객센터 응대도 긍정적이다.
하지만 컴퓨터가 이걸 활용하려면 문장을 데이터로 바꿔야 합니다. 예를 들어 감정 점수, 핵심 키워드, 언급된 서비스 항목처럼 구조화된 값이 필요합니다.
여기서 비정형 텍스트를 구조화한다는 말이 나옵니다. 말은 어렵지만 의미는 단순합니다. 자유롭게 쓰인 문장을 분석해서 표나 JSON처럼 프로그램이 다루기 쉬운 형태로 바꾼다는 뜻입니다.
| 원본 텍스트 | 분석 결과 | 활용 예시 |
|---|---|---|
| 배송은 빨랐는데 포장이 아쉬웠어요. | 배송: 긍정, 포장: 부정 | 물류는 유지하고 포장 개선 과제로 분류 |
| 김민수님이 서울 지점에 방문했습니다. | 사람: 김민수, 장소: 서울 지점 | 방문 기록 자동 정리 |
| 환불은 어떻게 신청하나요? | 의도: 환불 문의 | FAQ 또는 챗봇 답변 연결 |
결국 NLP 서비스가 필요한 이유는 단순합니다. 사람이 일일이 읽어야 했던 텍스트를 기계가 먼저 분류하고 정리해주면, 기업은 더 빠르게 고객 반응을 파악하고 업무를 자동화할 수 있습니다.
3. 정보 추출 기능
Azure AI Language의 첫 번째 큰 기능은 정보 추출입니다. 정보 추출은 긴 문장 속에서 의미 있는 조각을 찾아내는 기능입니다.
예를 들어 고객 문의, 뉴스 기사, 계약서, 상담 기록 안에는 중요한 정보가 섞여 있습니다. 사람 이름, 회사명, 이메일, 전화번호, 날짜, 장소, 핵심 주제 같은 것들입니다. 정보 추출 기능은 이런 값을 자동으로 찾아줍니다.
NER, PII, Key Phrase는 어떻게 다를까?
처음 보면 NER, PII, Key Phrase Extraction이 비슷해 보일 수 있습니다. 모두 텍스트에서 무언가를 뽑아내기 때문입니다.
하지만 목적이 조금씩 다릅니다.
| 기능 | 무엇을 찾는가 | 예시 |
|---|---|---|
| NER | 사람, 장소, 조직, 날짜 같은 이름 있는 개체 | Microsoft, 서울, 2026년 6월 |
| PII | 개인을 식별할 수 있는 민감 정보 | 전화번호, 이메일, 주소, 주민번호 유형 정보 |
| Key Phrase Extraction | 문장의 핵심 주제나 주요 표현 | 배송 지연, 고객 응대, 제품 품질 |
| Entity Linking | 텍스트 속 개체를 외부 지식 정보와 연결 | Apple이 과일인지 회사인지 구분해 관련 정보 연결 |
예를 들어 다음 문장을 보겠습니다.
김민수님은 6월 15일 서울 강남점에서 노트북을 구매했고,
문의는 minsookim@example.com으로 남겼습니다.
이 문장에서 Azure AI Language는 다음과 같은 정보를 추출할 수 있습니다.
- NER: 김민수, 6월 15일, 서울 강남점
- PII: minsookim@example.com
- Key Phrase: 노트북 구매, 문의
실무에서는 이런 기능을 고객 상담 자동 분류, 개인정보 마스킹, 문서 검색, VOC 분석 등에 활용할 수 있습니다.
다만 NER, PII, 정확도 평가는 다음 글에서 더 자세히 다룰 예정이므로 여기서는 전체 그림만 잡고 넘어가겠습니다.
4. 텍스트 분류 기능
두 번째 기능은 텍스트 분류입니다. 텍스트 분류는 문장을 읽고 미리 정한 범주 중 하나로 나누는 작업입니다.
대표적인 예가 감정 분석입니다.
감정 분석은 문장이 긍정적인지, 부정적인지, 중립적인지 판단합니다.
예를 들어 “제품은 좋지만 배송이 너무 늦었어요”라는 문장은 긍정과 부정이 함께 들어 있는 문장입니다. 제품에 대해서는 긍정적이지만, 배송에 대해서는 부정적입니다.
텍스트 분류는 감정 분석보다 더 넓은 개념입니다. 감정 분석이 “기분이 어떤가?”를 보는 기능이라면, 텍스트 분류는 “이 글은 어떤 종류인가?”를 판단하는 기능입니다.
| 구분 | 판단 기준 | 예시 |
|---|---|---|
| 감정 분석 | 문장의 긍정, 부정, 중립 여부 | “배송이 빨라서 좋았어요” → 긍정 |
| 언어 감지 | 텍스트가 어떤 언어인지 | 한국어, 영어, 일본어 등 |
| 사용자 지정 텍스트 분류 | 사용자가 정의한 업무 카테고리 | 환불 문의, 배송 문의, 제품 불량, 일반 상담 |
예를 들어 쇼핑몰 고객센터라면 문의글을 다음처럼 자동 분류할 수 있습니다.
“주문한 상품이 아직 도착하지 않았어요.”
→ 분류 결과: 배송 문의
“결제했는데 주문 내역이 보이지 않아요.”
→ 분류 결과: 결제 문의
“상품을 반품하고 싶습니다.”
→ 분류 결과: 환불/반품 문의
이렇게 분류가 되면 사람이 모든 문의를 처음부터 읽지 않아도 됩니다. 문의가 들어오자마자 담당 부서로 보내거나, 자주 묻는 질문을 자동으로 추천할 수 있습니다.
5. 질문 답변과 대화형 언어 이해
Azure AI Language에는 질문에 답하거나, 사용자의 발화 의도를 이해하는 기능도 포함됩니다. 여기서 중요한 기능이 Question Answering과 Conversational Language Understanding, 줄여서 CLU입니다.
먼저 질문 답변 기능은 사용자가 질문을 입력했을 때, 미리 준비된 문서나 FAQ에서 적절한 답변을 찾아주는 방식입니다. 예를 들어 회사의 환불 정책 문서가 있다면 사용자가 “환불은 며칠 안에 가능한가요?”라고 물었을 때 관련 내용을 찾아 답변할 수 있습니다.
반면 CLU는 사용자의 문장이 어떤 의도를 가지고 있는지 파악하는 기능에 가깝습니다. 예를 들어 “내 주문 어디쯤 왔어?”라는 문장은 표현은 자연스럽지만, 의도는 배송 조회입니다.
| 기능 | 핵심 역할 | 예시 |
|---|---|---|
| Question Answering | 문서나 FAQ에서 답변을 찾아줌 | “환불 기간은?” → 환불 정책 문서에서 답변 검색 |
| Custom Question Answering | 내 업무 데이터에 맞는 질의응답 구성 | 사내 매뉴얼, 제품 설명서, 고객센터 FAQ |
| CLU | 사용자의 의도와 필요한 정보를 파악 | “내 택배 어디야?” → 배송 조회 의도 |
이 글에서는 CLU의 개념만 간단히 연결하고 넘어가겠습니다. CLU 프로젝트 생성, 발화 예시 등록, Intent와 Entity 설정, 배포 과정은 별도 실습 글에서 다루는 편이 더 자연스럽습니다.
6. 텍스트 요약
텍스트 요약은 긴 문서나 대화 기록을 짧게 정리하는 기능입니다.
회의록, 상담 기록, 뉴스 기사, 보고서처럼 길이가 긴 텍스트를 다룰 때 특히 유용합니다.
예를 들어 상담원이 고객과 20분 동안 통화한 기록이 있다고 생각해보겠습니다. 관리자가 모든 통화 기록을 처음부터 끝까지 읽기는 어렵습니다. 이때 요약 기능을 사용하면 핵심 이슈, 고객 요청, 처리 결과를 빠르게 확인할 수 있습니다.
요약은 크게 두 가지 관점으로 생각할 수 있습니다.
- 문서 요약: 긴 문서에서 핵심 내용을 짧게 정리
- 대화 요약: 상담이나 회의처럼 여러 사람이 주고받은 내용을 정리
실무에서는 다음과 같은 방식으로 활용할 수 있습니다.
| 대상 | 요약 결과 | 활용 방식 |
|---|---|---|
| 고객 상담 기록 | 고객 불만, 요청사항, 처리 결과 | 상담 품질 관리, 후속 조치 |
| 회의록 | 결정사항, 담당자, 다음 액션 | 프로젝트 관리 |
| 보고서 | 핵심 내용과 주요 수치 | 빠른 의사결정 지원 |
다만 요약 결과는 항상 사람이 한 번 확인하는 것이 좋습니다. 요약은 긴 내용을 줄이는 과정이기 때문에, 세부 맥락이나 중요한 예외 조건이 빠질 수 있습니다.
7. 번역 기능
Azure AI Language 범위에서 함께 다뤄지는 기능 중 하나가 번역입니다.
Azure의 번역 기능은 텍스트나 문서를 여러 언어로 변환하는 데 사용됩니다.
자료에서는 100개 이상의 언어를 지원하는 번역 기능을 소개합니다. 실무에서는 글로벌 서비스, 다국어 고객센터, 해외 문서 처리, 다국어 콘텐츠 제작에서 자주 활용됩니다.
예를 들어 한국어 고객 문의를 영어로 번역해 해외 담당자가 확인하거나, 영어 제품 설명서를 한국어로 변환해 내부 문서로 활용할 수 있습니다.
| 기능 | 설명 | 예시 |
|---|---|---|
| 텍스트 번역 | 짧은 문장이나 일반 텍스트를 번역 | 고객 문의 번역 |
| 문서 번역 | 문서 파일 단위로 번역 | 제품 설명서, 계약서 초안 번역 |
| 사용자 지정 번역 | 특정 도메인 용어에 맞춘 번역 모델 구성 | 의료, 법률, 제조 분야 전문 용어 번역 |
주의할 점
번역 결과는 문맥에 따라 달라질 수 있습니다. 특히 계약서, 의료 문서, 법률 문서처럼 의미가 민감한 문서는 자동 번역 결과를 그대로 확정본으로 쓰기보다 사람이 검토하는 과정이 필요합니다.
8. Language Studio
Language Studio는 Azure AI Language 기능을 웹 화면에서 실험해볼 수 있는 도구입니다.
코드를 작성하지 않아도 텍스트를 입력하고, NER, 감정 분석, 핵심 구 추출, 질문 답변 같은 기능을 테스트할 수 있습니다.
처음 Azure AI Language를 배울 때는 바로 REST API부터 시작하기보다 Language Studio에서 기능을 먼저 확인하는 것이 좋습니다. 결과가 어떤 형식으로 나오는지 직접 보는 것이 API를 이해하는 데 훨씬 도움이 되기 때문입니다.
Language Studio와 REST API의 차이는 다음처럼 이해하면 됩니다.
| 구분 | Language Studio | REST API |
|---|---|---|
| 사용 방식 | 웹 화면에서 클릭하고 입력 | 코드에서 HTTP 요청 전송 |
| 장점 | 결과를 빠르게 확인할 수 있음 | 실제 서비스에 연결하기 좋음 |
| 사용 시점 | 기능 이해, 테스트, 데모 | 앱 개발, 자동화, 백엔드 연동 |
| 필요 역량 | Azure Portal 사용 경험 | API, JSON, 인증 키에 대한 이해 |
간단한 REST API 호출 구조는 아래처럼 생각할 수 있습니다. 실제 실습 코드는 다음 글들에서 기능별로 다루는 것이 좋습니다.
import requests
endpoint = "https://YOUR-RESOURCE.cognitiveservices.azure.com"
api_key = "YOUR-API-KEY"
url = endpoint + "/language/:analyze-text?api-version=2023-04-01"
headers = {
"Ocp-Apim-Subscription-Key": api_key,
"Content-Type": "application/json"
}
body = {
"kind": "KeyPhraseExtraction",
"parameters": {
"modelVersion": "latest"
},
"analysisInput": {
"documents": [
{
"id": "1",
"language": "ko",
"text": "배송은 빨랐지만 포장이 조금 아쉬웠어요."
}
]
}
}
response = requests.post(url, headers=headers, json=body)
print(response.json())
위 코드는 핵심 구 추출 요청의 형태를 단순화한 예시입니다. 중요한 것은 Endpoint, API Key, 요청 Body, JSON 응답의 구조입니다.
9. 지역별 지원 여부와 실습 주의점
Azure AI 서비스를 사용할 때 의외로 자주 막히는 부분이 Region입니다. Region은 Azure 리소스를 어느 지역에 만들 것인지 정하는 값입니다. 예를 들어 East US, Korea Central, North Europe 같은 지역이 있습니다.
문제는 모든 기능이 모든 지역에서 동일하게 제공되지 않을 수 있다는 점입니다. 특히 미리보기 기능이나 일부 사용자 지정 기능은 특정 지역에서만 지원되는 경우가 있습니다.
실습 전 꼭 확인할 것
Azure AI Language는 기능별로 지원 지역과 지원 언어가 다를 수 있습니다. 실습이 갑자기 안 된다면 코드보다 먼저 리소스 Region과 한국어 지원 여부를 확인하는 것이 좋습니다.
특히 한국어로 실습할 때는 다음을 확인해야 합니다.
- 해당 기능이 한국어를 지원하는지
- 내가 만든 리소스 Region에서 그 기능을 사용할 수 있는지
- Language Studio에서 선택한 리소스가 올바른지
- API 버전이 현재 리소스와 호환되는지
예를 들어 NER은 한국어에서 잘 동작하는 항목이 있을 수 있지만, 일부 세부 기능이나 사용자 지정 기능은 영어 중심으로 지원되거나 지역 제한이 있을 수 있습니다. 따라서 실습 전 공식 문서의 Region 지원 표를 확인하는 습관이 중요합니다.
텍스트 분석 결과의 정확도도 함께 봐야 합니다. AI가 반환한 결과가 항상 정답은 아닙니다. 실무에서는 다음처럼 판단합니다.
| 확인 항목 | 의미 | 예시 |
|---|---|---|
| 맞게 찾았는가 | AI가 찾아야 할 정보를 제대로 찾았는지 | 사람 이름을 Person으로 인식 |
| 잘못 찾지는 않았는가 | 아닌 것을 맞다고 판단하지 않았는지 | 일반 숫자를 전화번호로 오인 |
| 놓친 정보는 없는가 | 찾아야 할 정보를 빠뜨리지 않았는지 | 이메일 주소를 인식하지 못함 |
정확도 평가 지표는 다음 글에서 NER, PII와 함께 더 자세히 다루겠습니다. 이번 글에서는 “AI 분석 결과도 검토가 필요하다”는 점만 기억하면 충분합니다.
10. 정리
Azure AI Language는 텍스트를 이해하고 분석하기 위한 Azure의 NLP 서비스입니다. 단순히 문장을 번역하거나 감정을 판단하는 것에 그치지 않고, 텍스트 안에서 사람, 장소, 조직, 핵심 표현, 개인정보, 질문 의도 등을 찾아낼 수 있습니다.
실무 관점에서 Azure AI Language가 중요한 이유는 비정형 텍스트를 구조화할 수 있기 때문입니다. 고객 리뷰, 상담 기록, 이메일, 설문 응답처럼 사람이 직접 읽어야 했던 데이터를 프로그램이 처리 가능한 형태로 바꿔 업무 자동화와 분석에 연결할 수 있습니다.
다만 기능별로 지원 언어와 지원 지역이 다를 수 있으므로, 한국어 실습을 할 때는 Region과 언어 지원 여부를 먼저 확인해야 합니다. 또한 AI 분석 결과는 확률적 판단이므로, 실제 업무에 적용할 때는 사람이 검토하고 평가하는 과정이 필요합니다.
11. 전체 흐름 한 번에 정리
| 흐름 | 설명 | 예시 |
|---|---|---|
| 1. 텍스트 입력 | 고객 리뷰, 상담 기록, 문서 텍스트를 입력 | “배송은 빨랐지만 포장이 아쉬웠어요.” |
| 2. NLP 분석 | Azure AI Language가 의미 있는 정보를 분석 | 감정 분석, 핵심 구 추출, NER |
| 3. 구조화된 결과 반환 | JSON 형태로 결과를 반환 | 감정: 부정, 핵심 구: 포장, 배송 |
| 4. 업무 활용 | 분석 결과를 분류, 검색, 자동화에 연결 | 불만 리뷰 자동 분류, 상담 라우팅 |
한 줄로 정리하면
Azure AI Language는 사람이 읽어야 이해할 수 있던 텍스트를 프로그램이 활용할 수 있는 의미 있는 데이터로 바꿔주는 서비스입니다.
12. 핵심 키워드 정리
| 키워드 | 의미 |
|---|---|
| Azure AI Language | 텍스트를 이해하고 분석하는 Azure의 NLP 서비스 |
| NLP | 사람의 언어를 컴퓨터가 처리하도록 만드는 자연어 처리 기술 |
| Language Studio | Azure AI Language 기능을 웹 화면에서 테스트하는 도구 |
| NER | 텍스트에서 사람, 장소, 조직, 날짜 같은 개체를 찾는 기능 |
| PII | 전화번호, 이메일처럼 개인을 식별할 수 있는 정보 |
| Key Phrase Extraction | 문장에서 핵심 표현이나 주요 주제를 추출하는 기능 |
| Entity Linking | 텍스트 속 개체를 외부 지식 정보와 연결하는 기능 |
| Sentiment Analysis | 문장의 긍정, 부정, 중립 감정을 분석하는 기능 |
| Text Classification | 텍스트를 미리 정한 카테고리로 분류하는 기능 |
| Question Answering | 문서나 FAQ에서 질문에 맞는 답변을 찾는 기능 |
| Summarization | 긴 문서나 대화 기록을 짧게 요약하는 기능 |
| Translator | 텍스트나 문서를 여러 언어로 번역하는 기능 |
13. 다음 글 예고
이번 글에서는 Azure AI Language의 전체 기능과 NLP 서비스가 필요한 이유를 살펴봤습니다. 다음 글에서는 NER와 PII를 중심으로 텍스트에서 개체와 개인정보를 추출하는 방법을 알아보겠습니다.