일반적인 텍스트 처리 매개변수
watsonx.ai REST API를 사용하여 텍스트 처리 요청을 제출하면 텍스트 처리 작업에 대한 구성 세부 정보를 지정하는 페이로드가 포함됩니다.
여러 텍스트 처리 API를 사용하여 문서를 이해하고 RAG 솔루션에서 사용할 수 있는 더 간단한 텍스트 형식으로 변환할 수 있습니다. 텍스트 분류 API를 사용하여 문서가 특정 일반 문서 유형의 구조화된 데이터 형식과 일치하는지 확인할 수 있습니다. 분류 결과에 따라 텍스트 추출 요청을 사용자 지정하여 문서에서 텍스트 및 기타 구조화된 콘텐츠를 보다 효율적으로 추출할 수 있습니다.
텍스트 분류 및 추출 REST API 요청 모두에 공통적으로 적용되는 다음 설정을 선택합니다:
일반적인 REST API 매개변수 외에도 문서 이해 라이브러리에서 다양한 텍스트 처리 API 메서드에 특정한 매개변수를 설정할 수 있습니다. 자세한 내용은 다음 항목을 참조하십시오:
languages 매개변수를 사용하여 입력 문서의 언어 지정하기
문서가 영어 이외의 언어로 되어 있는 경우 API 요청의 languages 매개변수에 ISO 639 언어 코드로 해당 언어를 지정해야 합니다.
"parameters": {
"languages": [
"de"
]
}
문서에 여러 언어가 혼합되어 있는 경우 각 언어를 별도로 나열합니다. 지정하는 언어 코드는 문서에 기계로 인쇄된 텍스트가 포함되어 있는지 또는 손글씨가 포함되어 있는지에 따라 달라집니다. 문서에 특정 언어로 인쇄된 텍스트와 손으로 쓴 텍스트가 모두 있는 경우 언어 목록에서 두 가지 유형의 언어 코드를 모두 지정해야 합니다.
텍스트 처리 API의 언어 제한 사항
- 텍스트 분류
분류 API는 영어 문서에만 사용할 수 있습니다.
- 텍스트 추출
언어가 공통 스크립트를 공유하지 않는 경우 혼합 언어 문서에는 추출 API를 사용할 수 없습니다. 그러나 영어와 다른 언어가 혼합된 문서를 어떤 스크립트로든 사용할 수 있습니다. 예를 들어 영어와 프랑스어 텍스트가 혼합된 문서의 이미지에서 텍스트를 추출할 수 있는데, 두 언어가 모두 라틴어 기반이기 때문입니다. 그러나 일본어와 프랑스어 텍스트가 혼합된 문서의 이미지에서는 텍스트를 추출할 수 없습니다.
텍스트 추출 API는 영어 문서에서만 키-값 쌍 데이터를 추출하는 데 사용할 수 있습니다.
지원되는 필기 언어
다음 표는 필기체 텍스트 인식에서 지원되는 언어를 나열한 것입니다:
| 언어 | 소환의 열쇠 |
|---|---|
| 영어 | en_hw / eng_hw |
| 독일어 | 독일어 숙제 / 독일어 숙제 |
문서에 영어로 된 손글씨가 포함된 경우, s390x 에서 지원하는 언어 코드를 en_hw API 요청 본문에 사용하십시오.
지원되는 기계 인쇄 언어
다음 표는 인쇄 텍스트 인식을 위해 텍스트 추출 API가 지원하는 언어에 대한 세부 정보를 제공합니다:
| 언어 | ISO 639 언어 코드 | API 스크립트 코드 | 스크립트 |
|---|---|---|---|
| 아체인 | ‐ | latn |
라틴어 |
| 아프리칸스어 | af |
latn |
라틴어 |
| 알바니아어 | sq |
latn |
라틴어 |
| 아라우카니안/마푸체 | ‐ | latn |
라틴어 |
| 아와디어 | ‐ | deva |
데바나가리 |
| 아이마라 | ay |
latn |
라틴어 |
| 발리인 | ‐ | latn |
라틴어 |
| 바스크어 | eu |
latn |
라틴어 |
| 벨라루스어 | be |
cyrl |
키릴 |
| 벰바 | ‐ | latn |
라틴어 |
| 벵골어 | ‐ | beng |
벵골어 |
| 비콜 | ‐ | latn |
라틴어 |
| 비스라마 | bi |
latn |
라틴어 |
| 보즈푸리어 | ‐ | deva |
데바나가리 |
| 불가리아어 | bg |
cyrl |
키릴 |
| 카탈로니아어 | ca |
latn |
라틴어 |
| 세부아노어 | ‐ | latn |
라틴어 |
| 체첸 | ‐ | cyrl |
키릴 |
| 중국어 | zh_cn |
cjk |
한(간체) |
| 중국어(대만) | zh_tw |
cjk |
한(전통) |
| 초크토 | ‐ | latn |
라틴어 |
| 크리 | cr |
latn |
라틴어 |
| 다코타 | ‐ | latn |
라틴어 |
| 덴마크어 | da |
latn |
라틴어 |
| 도그리 | ‐ | deva |
데바나가리 |
| 네덜란드어 | nl |
latn |
라틴어 |
| 영어 | en |
latn |
라틴어 |
| 영국 영어 | en |
latn |
라틴어 |
| 에스토니아어 | et |
latn |
라틴어 |
| 피지인 | fj |
latn |
라틴어 |
| 필리핀어 | fil |
latn |
라틴어 |
| 핀란드어 | fi |
latn |
라틴어 |
| 프랑스어 | fr |
latn |
라틴어 |
| 프랑스어(캐나다) | fr |
latn |
라틴어 |
| 갈리시아어 | gl |
latn |
라틴어 |
| 가위 | ‐ | latn |
라틴어 |
| 독일어 | de |
latn |
라틴어 |
| 길버트어 | ‐ | latn |
라틴어 |
| 그리스어 | el |
el |
그리스어 |
| 아이티 크레올어 | ht |
latn |
라틴어 |
| 히브리어 | he |
he |
히브리어 |
| 힐리가이논어 | ‐ | latn |
라틴어 |
| 힌디어 | hi |
deva |
데바나가리 |
| 이반 | ‐ | latn |
라틴어 |
| 일로코 | ‐ | latn |
라틴어 |
| 인도네시아어 | id |
latn |
라틴어 |
| 아일랜드어 | ga |
latn |
라틴어 |
| 이탈리아어 | it |
it |
라틴어 |
| 일본어 | ja |
cjk |
일본어 |
| 자바어 | jv |
latn |
라틴어 |
| 카친 | ‐ | latn |
라틴어 |
| 그린란드어 | kl |
latn |
라틴어 |
| 카시 | ‐ | latn |
라틴어 |
| 킨야르완다어 | rw |
latn |
라틴어 |
| 콩고 | kg |
latn |
라틴어 |
| 콩카니어 | ‐ | deva |
데바나가리 |
| 한국어 | ko |
cjk |
한국어 |
| 코슬라어 | ‐ | latn |
라틴어 |
| 쿠아냐마 | kj |
latn |
라틴어 |
| 라틴어 | la |
latn |
라틴어 |
| 저지 독일어 | ‐ | latn |
라틴어 |
| 로지 | ‐ | latn |
라틴어 |
| 루오어 | ‐ | latn |
라틴어 |
| 마케도니아어 | mk |
cyrl |
키릴 |
| 마이틸리 | ‐ | deva |
데바나가리 |
| 마다가스카르어 | mg |
latn |
라틴어 |
| 맨스 | gv |
latn |
라틴어 |
| 마라티어 | mr |
deva |
데바나가리 |
| 중세 영어 | ‐ | latn |
라틴어 |
| 중세 고지 독일어 | ‐ | latn |
라틴어 |
| 미나앙카바우 | ‐ | latn |
라틴어 |
| 모호크 | ‐ | latn |
라틴어 |
| 몽골어 | mn |
cyrl |
키릴 |
| 응동가 | ng |
latn |
라틴어 |
| 네팔어 | ne |
deva |
데바나가리 |
| 북부 은데벨레어 | nd |
latn |
라틴어 |
| 노르웨이어 | no |
no |
라틴어 |
| 냥콜레 | ‐ | latn |
라틴어 |
| 오크어 | oc |
latn |
라틴어 |
| 오지브와 | oj |
latn |
라틴어 |
| 고대 영어 | ‐ | latn |
라틴어 |
| 고대 프랑스어 | ‐ | latn |
라틴어 |
| 고대 고지 독일어 | ‐ | latn |
라틴어 |
| 고대 노르드어 | ‐ | latn |
라틴어 |
| 고대 프로방스어 | ‐ | latn |
라틴어 |
| 팜팡가 | ‐ | latn |
라틴어 |
| 팡가시난 | ‐ | latn |
라틴어 |
| 파피아멘토 | ‐ | latn |
라틴어 |
| 폴란드어 | pl |
latn |
라틴어 |
| 포르투갈어 | pt |
pt |
라틴어 |
| 포르투갈어 (유럽) | pt |
pt |
라틴어 |
| 케추아어 | qu |
latn |
라틴어 |
| 로만슈어 | rm |
latn |
라틴어 |
| 룬디 | rn |
latn |
라틴어 |
| 러시아어 | ru |
cyrl |
키릴 |
| 상고 | sg |
latn |
라틴어 |
| 산스크리트어 | sa |
deva |
데바나가리 |
| 스코틀랜드인 | ‐ | latn |
라틴어 |
| 세르비아어 | sr |
cyrl |
키릴 |
| 쇼나어 | sn |
latn |
라틴어 |
| 스페인어 | es |
es |
라틴어 |
| 스페인어 (라틴 아메리카) | es |
es |
라틴어 |
| 순다어 | su |
latn |
라틴어 |
| 스와힐리어 | sw |
latn |
라틴어 |
| 스와티 | ss |
latn |
라틴어 |
| 스웨덴어 | sv |
sv |
라틴어 |
| 타밀어 | ta |
deva |
타밀어 |
| 텔루구어 | te |
deva |
텔루구어 |
| 태국어 | th |
th |
태국어 |
| 츄옹가 | ts |
latn |
라틴어 |
| 츠와나어 | tn |
latn |
라틴어 |
| 터키어 | tr |
tr |
라틴어 |
| 우크라이나어 | uk |
cyrl |
키릴 |
| 우즈벡어 | uz |
cyrl |
키릴 |
| 베트남어 | vi |
vi |
라틴어 |
| 코사어 | xh |
latn |
라틴어 |
| 줄루어 | zu |
latn |
라틴어 |
기계 인쇄된 텍스트와 손글씨가 모두 포함된 문서
문서에 기계 인쇄 텍스트와 필기 텍스트가 혼합되어 있는 경우, 기계 인쇄 언어 모델과 필기 언어 모델 모두에 해당하는 언어 코드를 지정하여 API를 호출해야 합니다.
| 언어 | 코드 |
|---|---|
| 영어 | languages_list = [ 'en', 'en_hw'] |
| 독일어 | languages_list = [ 'de', 'de_hw'] |
여러 언어로 된 문서
영어를 다른 언어와 함께 사용하는 경우를 제외하고는, 동일한 문자를 사용하지 않는 언어 간의 결합은 지원되지 않습니다.
languages_list문서에 라틴 문자나 CJK 문자를 사용하는 여러 언어로 된 텍스트가 포함된 경우,. eng예를 들어, 와 를 모두 fra 지정하면, 서비스는 내부적으로 해당 요청을 모델에 latn 매핑합니다.
지원되는 언어 표에 나열된 스크립트 기반 언어만 지원됩니다. 단일 요청에서 스크립트를 두 개 이상 지정할 수 없습니다.
허용되는 조합:
['fra', 'spa']– 같은 문자를 사용하는 두 언어['jpn', 'eng']– 라틴어계가 아닌 언어와 영어가 결합된 형태['jpn'](문서에 일본어와 영어가 모두 포함되어 있다면, 이를 명시하는 것으로 충분합니다.)['fra', 'spa', 'eng']['jpn', 'kor']– 같은 문자를 사용하는 두 언어['heb', 'eng']– 라틴어계가 아닌 언어와 영어가 결합된 형태['latn']– 단일 스크립트['cjk']– 단일 스크립트
지원되지 않는 조합:
['heb', 'fra']– 라틴어계가 아닌 언어와 영어 이외의 라틴어계 언어의 조합['cjk', 'fra']['jpn', 'fra', 'eng']– 비라틴어와 두 가지 라틴어 계열 언어의 조합['latn', 'cjk']– 두 가지 다른 스크립트
ocr_mode 매개변수를 사용하여 이미지에서 텍스트 추출하기
광학 문자 인식(OCR)을 사용하여 문서의 이미지에 있는 텍스트를 처리하는 방법을 지정할 수 있습니다. API 요청 본문에서 다음 파라미터를 지정합니다:
"parameters": {
"ocr_mode": "enabled"
}
다음 표는 API 요청에서 이미지를 처리하는 방법을 지정하는 데 사용할 수 있는 다양한 OCR 모드에 대한 자세한 내용을 제공합니다:
| OCR 모드 | 설명 |
|---|---|
disabled |
이미지 파일과 스캔한 문서는 처리되지 않습니다. 시각 자료와 텍스트가 모두 포함된 하이브리드 문서의 경우 텍스트만 추출됩니다. |
enabled |
OCR은 문서에서 텍스트를 추출할 수 없는 경우에만 실행됩니다. 문서에 포함된 이미지가 처리됩니다. |
forced |
문서의 각 페이지가 이미지로 변환되고 OCR로 처리됩니다. 텍스트 전용 파일을 포함한 모든 문서 유형은 처리되기 전에 이미지로 변환됩니다. |
semantic_config 매개 변수를 사용하여 키-값 쌍 처리 파이프라인 구성하기
송장, 양식, 계약서, 영수증과 같은 비정형 또는 반정형 문서에서 구조화된 정보를 식별하고 키-값 쌍으로 추출할 수 있습니다. 처리된 텍스트는 각 데이터 조각(값)이 고유 식별자(키)와 연결된 형식입니다. 키-값 쌍 데이터는 범용 기초 모델 또는 특정 문서 형식에 맞게 조정된 모델을 사용하여 처리됩니다.
키-값 쌍 데이터를 처리하려면 클러스터에 필요한 GPU와 파운데이션 모델이 설치되어 있는지 확인하십시오. 자세한 내용은 문서의 watsonx.aiIBMSoftware Hub 파운데이션 모델을 참조하십시오.
텍스트 분류 API를 사용하면 키-값 쌍 추출을 수행하지 않고도 문서가 일반적인 문서 유형에 대해 미리 정의된 여러 스키마 중 하나로 분류될 수 있는지 빠르게 확인할 수 있습니다. 문서가 미리 정의된 유형과 일치하지 않는 경우 텍스트 추출 API 요청을 실행하기 전에 새 문서 유형과 사용자 정의 스키마를 정의할 수 있습니다.
REST API 요청 본문에서 다양한 semantic_config 매개 변수를 사용하여 다음과 같은 키-값 쌍 처리 파이프라인 기능을 구성합니다:
또한 텍스트 추출 API 메서드에 특화된 필드를 semantic_config 매개변수에 설정합니다. 자세한 내용은 ‘키-값 쌍으로 데이터를 추출하는 방법 지정’을 참조하십시오.
지원 언어:
- 중국어
- 영어
- 프랑스어
- 독일어
- 이탈리아어
- 일본어
- 포르투갈어
- 스페인어
schemas 필드로 스키마 정의하기
레이아웃에 따라 문서는 크게 다음과 같은 유형으로 분류할 수 있습니다:
- 가변 레이아웃 문서
- 송장, 구매 주문서, 여권 등 구조가 여러 페이지에 걸쳐 있는 일관된 구조가 없는 문서.
- 고정 레이아웃 문서
- 각 페이지가 특정 레이아웃을 가진 세금 양식과 같이 각 페이지가 미리 정의된 형식을 따르는 구조화된 문서입니다.
사전 정의된 스키마
다음과 같이 지원되는 일반적인 문서 유형에 대해 미리 정의된 스키마로 파일에서 텍스트를 분류하거나 추출할 수 있습니다:
사용자 정의 스키마
문서에 고유한 구조화된 콘텐츠가 포함되어 있는 경우 특정 데이터와 고유 식별자를 정의하는 사용자 지정 스키마를 제공할 수 있습니다. 사용자 정의 스키마를 지정하면 텍스트 추출 프로세스에서 문서를 미리 정의된 스키마 중 하나로 분류하는 것을 자동으로 재정의하고 semantic_config 의 schemas 매개변수에 제공한 스키마만 사용합니다.
사용자 지정 스키마에서 매개변수를 정의하는 방법에 대한 자세한 내용은 키-값 쌍 추출을 위한 사용자 지정 스키마 만들기를 참조하세요.
다음 예는 REST API 요청 본문의 영수증에 대한 사용자 지정 스키마를 제공합니다:
"semantic_config": {
"schemas": [ {
"document_type": "Receipt",
"document_description": "A receipt issued for a purchase at ABC store.",
"fields": {
"receipt_number": {
"default": "",
"example": "R-20241027-ABC",
"description": "Unique identifier on the receipt."
},
"customer_name": {
"default": "",
"example": "John Smith",
"description": "Full name of the customer or payee."
},
"date_of_transaction": {
"default": "",
"example": "2023-01-01",
"description": "Date when the purchase or payment occurred."
},
"total_paid": {
"default": "",
"example": "8.64",
"description": "Final amount paid by the customer."
},
"payment_method": {
"default": "",
"example": "Credit Card",
"description": "How payment was made, such as cash, card, check, etc.)."
},
}
} ]
}
사전 정의 및 사용자 정의 스키마가 schemas_merge_strategy 필드와 상호 작용하는 방식 제어하기
생성한 사용자 정의 스키마가 텍스트 처리 API에서 지원하는 사전 정의된 스키마와 상호 작용하는 방식을 정의할 수 있습니다.
다음 표에서는 semantic_config 매개변수에서 schemas_merge_strategy 설정을 구성할 때 사전 정의 및 사용자 정의 스키마가 처리되는 다양한 방식에 대해 자세히 설명합니다:
| 스키마 전략 설정 | 설명 |
|---|---|
replace |
미리 정의된 모든 스키마를 삭제하고 사용자 지정 스키마만 사용합니다. |
merge |
사용자 정의 스키마는 스키마 정의에서 동일한 document_type 속성을 공유하는 모든 사전 정의된 스키마와 병합되어 재정의됩니다. |
기본적으로 지원되는 사전 정의된 스키마와 일치하는 문서 유형에 대한 사용자 정의 스키마를 만들면 두 스키마가 병합된 후 문서의 키-값 쌍 데이터를 처리하는 데 사용됩니다.