텍스트 전처리
중요
Machine Learning Studio(클래식)에 대한 지원은 2024년 8월 31일에 종료됩니다. 해당 날짜까지 Azure Machine Learning으로 전환하는 것이 좋습니다.
2021년 12월 1일부터 새로운 Machine Learning Studio(클래식) 리소스를 만들 수 없습니다. 2024년 8월 31일까지는 기존 Machine Learning Studio(클래식) 리소스를 계속 사용할 수 있습니다.
- ML Studio(클래식)에서 Azure Machine Learning으로 기계 학습 프로젝트 이동에 대한 정보를 참조하세요.
- Azure Machine Learning에 대한 자세한 정보.
ML Studio(클래식) 설명서는 사용 중지되며 나중에 업데이트되지 않을 수 있습니다.
텍스트에 대한 정리 작업을 수행합니다.
범주: Text Analytics
모듈 개요
이 문서에서는 Machine Learning Studio(클래식)의 전처리 텍스트 모듈을 사용하여 텍스트를 정리하고 간소화하는 방법을 설명합니다. 텍스트를 전처리하면 텍스트에서 의미 있는 기능을 보다 쉽게 만들 수 있습니다.
예를 들어 전처리 텍스트 모듈은 텍스트에 대해 다음과 같은 일반적인 작업을 지원합니다.
- 중지 단어 제거
- 정규식을 사용하여 특정 대상 문자열 검색 및 바꾸기
- 여러 관련 단어를 단일 정규형으로 변환하는 표제어 추출
- 음성의 특정 부분에 대한 필터링
- 대/소문자 정규화
- 숫자, 특수 문자, 반복되는 문자 시퀀스(예: "aaaa") 등의 특정 클래스 문자 제거
- 이메일과 URL 식별 및 제거
사용할 정리 옵션을 선택하고 필요에 따라 중지 단어의 사용자 지정 목록을 지정할 수 있습니다.
이 모듈은 현재 영어, 스페인어, 프랑스어, 네덜란드어, 독일어 및 이탈리아어의 6개 언어를 지원합니다.
텍스트 전처리를 구성하는 방법
Studio(클래식)에서 실험에 전처리 텍스트 모듈을 추가합니다. 이 모듈은 Text Analytics에서 찾을 수 있습니다.
텍스트를 포함하는 열이 하나 이상 있는 데이터 세트를 연결합니다.
전처리할 텍스트가 모두 동일한 언어인 경우 언어 드롭다운 목록에서 언어를 선택합니다. 이 옵션을 사용하면 선택한 언어와 관련된 언어 규칙을 사용하여 텍스트가 전처리됩니다.
여러 언어를 포함할 수 있는 텍스트를 전처리하려면 열에 언어가 포함된 옵션을 선택합니다.
그런 다음 Culture-language 열 속성을 사용하여 각 행에서 사용되는 언어를 나타내는 데이터 세트의 열을 선택합니다. 열에는 표준 언어 식별자(예: "영어" 또는
en
.)가 포함되어야 합니다.이 식별자에 따라 모듈은 텍스트를 처리하기 위해 적절한 언어 리소스를 적용합니다.
데이터 세트에 이러한 식별자가 없는 경우 언어 검색 모듈을 사용하여 언어를 미리 분석하고 식별자를 생성합니다.
팁
지원되지 않는 언어가 포함된 경우 오류가 발생합니다. 자세한 내용은 기술 정보 섹션을 참조하세요.
음성의 일부로 제거: 음성 부분 분석을 적용하려면 이 옵션을 선택합니다. 그런 다음 음성 부분 태그를 사용하여 특정 단어 클래스를 제거할 수 있습니다.
- 명사 제거: 명사 제거하려면 이 옵션을 선택합니다.
- 형용사 제거: 형용사를 제거하려면 이 옵션을 선택합니다.
- 동사 제거: 동사를 제거하려면 이 옵션을 선택합니다.
사용되는 음성 부분 식별 방법에 대한 자세한 내용은 기술 노트 섹션을 참조하세요.
정리할 텍스트 열: 전처리할 열 또는 열을 선택합니다.
중지 단어 제거: 미리 정의된 중지 단어 목록을 텍스트 열에 적용하려면 이 옵션을 선택합니다. 다른 프로세스 전에 단어 제거 중지가 수행됩니다.
중지 단어 목록은 언어에 따라 달라지고 사용자 지정할 수 있습니다. 자세한 내용은 기술 정보 섹션을 참조하세요.
표제어 추출: 단어를 정규형으로 표시하려면 이 옵션을 선택합니다. 이 옵션은 다른 경우와 유사한 텍스트 토큰의 고유 발생 수를 줄이는 데 유용합니다.
lemmatization 프로세스는 언어에 따라 크게 달라집니다. 자세한 내용은 기술 정보 섹션을 참조하세요.
문장 검색: 분석을 수행할 때 모듈이 문장 경계 표시를 삽입하도록 하려면 이 옵션을 선택합니다.
이 모듈에서는 일련의 세 개 파이프 문자
|||
를 사용하여 문장 마침을 표시합니다.필요에 따라 정규식을 사용하여 사용자 지정 찾기 및 바꾸기 작업을 수행할 수 있습니다.
- 사용자 지정 정규식: 검색할 텍스트를 정의합니다.
- 사용자 지정 대체 문자열: 단일 대체 값을 정의합니다.
대/소문자를 소문자로 정규화: ASCII 대문자를 소문자 형식으로 변환하려면 이 옵션을 선택합니다.
문자가 정규화되지 않은 경우 대문자와 소문자의 동일한 단어는 두 개의 다른 단어로
am
간주됩니다. 예를 들어AM
.필요에 따라 처리된 출력 텍스트에서 다음 유형의 문자 또는 문자 시퀀스를 제거할 수 있습니다.
- 숫자 제거: 지정된 언어의 모든 숫자 문자를 제거하려면 이 옵션을 선택합니다.
숫자를 구성하는 식별은 도메인에 종속되고 언어에 따라 달라집니다. 숫자 문자가 알려진 단어의 정수 부분이면 숫자가 제거되지 않을 수 있습니다.
특수 문자 제거: 영숫자가 아닌 특수 문자를 파이프
|
문자로 바꾸려면 이 옵션을 사용합니다.특수 문자에 대한 자세한 내용은 기술 노트 섹션을 참조하세요.
중복 문자 제거: 문자를 반복하는 시퀀스를 제거하려면 이 옵션을 선택합니다. 예를 들어 "aaaaaaa"와 같은 시퀀스가 제거됩니다.
이메일 주소 제거:
<string>@<string>
형식의 시퀀스를 제거하려면 이 옵션을 선택합니다.URL 제거: 다음 URL 접두사가 포함된 시퀀스를 제거하려면 이 옵션을 선택합니다.
http
,https
ftp
www
축약 동사 확장:이 옵션은 축약 동사를 사용하는 언어에만 적용됩니다. 현재는 영어만 지원됩니다.
예를 들어 이 옵션을 선택하면 "wouldn't stay there" 를 "would not stay there" 로 바꿀 수 있습니다.
백슬래시로 슬래시 정규화:
\\
의 모든 인스턴스를/
에 매핑하려면 이 옵션을 선택합니다.특수 문자의 토큰 분할:
&
,-
등과 같은 문자에서 단어를 분할하려면 이 옵션을 선택합니다.예를 들어 문자열
MS-WORD
은 두 개의 토큰으로 구분됩니다WORD
.MS
예
Azure AI 갤러리의 다음 예제에서는 전처리 텍스트 모듈의 사용을 보여 줍니다.
기술 정보
이 섹션에서는 기본 텍스트 전처리 기술과 사용자 지정 텍스트 리소스를 지정하는 방법에 대한 자세한 정보를 제공합니다.
지원되는 언어
현재 Machine Learning 다음 언어로 텍스트 전처리를 지원합니다.
- 네덜란드어
- 영어
- 프랑스어
- 독일어
- 이탈리아어
- 스페인어
추가 언어가 계획되어 있습니다. 공지사항은 Microsoft Machine Learning 블로그를 참조하세요.
lemma(표제어) 찾기
Lemmatization은 여러 단어 토큰을 나타내는 단일 정식 형식을 식별하는 프로세스입니다.
Machine Learning Studio(클래식)에 포함된 자연어 처리 라이브러리는 다음과 같은 여러 언어 연산을 결합하여 구체화를 제공합니다.
문장 분리: 감정 분석 및 기타 텍스트 분석에 사용되는 무료 텍스트에서는 문장이 자주 실행되거나 문장 부호가 누락될 수 있습니다. 입력 텍스트는 트윗이나 조각에서 전체 단락 또는 문서에 이르기까지 임의의 긴 텍스트 청크를 구성할 수 있습니다.
Studio(클래식)에서 사용하는 자연어 도구는 기본 어휘 분석의 일부로 문장 분리를 수행합니다. 그러나 문장은 출력에서 구분되지 않습니다. 필요에 따라 다른 텍스트 처리 및 분석에 도움이 되도록 문장 경계를 표시하도록 지정할 수 있습니다.
토큰화: 단어의 경계를 결정하는 규칙은 언어에 따라 다르며 단어 사이에 공백을 사용하는 언어에서도 복잡할 수 있습니다.
일부 언어(예: 중국어 또는 일본어)는 단어 사이에 공백을 사용하지 않으며 단어를 분리하려면 형태학적 분석이 필요합니다.
따라서 이 모듈에서 사용되는 토큰화 메서드 및 규칙은 언어와 언어에 따라 다른 결과를 제공합니다. 이러한 토큰화 규칙은 지원되는 각 언어에 대해 Microsoft Research에서 제공하는 텍스트 분석 라이브러리에 의해 결정되며 사용자 지정할 수 없습니다.
음성 부분 식별: 모든 단어 시퀀스에서 각 단어에 대한 음성의 정확한 부분을 계산적으로 식별하기 어려울 수 있습니다. "시간이 화살표처럼 날아간다"와 같은 겉보기에 간단한 문장조차도 수십 개의 구문 분석(유명한 예)을 가질 수 있습니다. 음성의 일부는 다른 언어의 형태에 따라 매우 다릅니다.
Machine Learning 현재 문장 컨텍스트를 고려할 때 명확성 모델은 음성의 가장 가능성이 높은 단일 부분을 선택하는 데 사용됩니다. 음성 부분 정보는 기능으로 사용되는 단어를 필터링하고 핵심 구 추출에 도움이 되는 데 사용됩니다. 그러나 이 모듈의 출력에는 POS 태그가 명시적으로 포함되지 않으므로 POS 태그가 지정된 텍스트를 생성하는 데 사용할 수 없습니다.
사전 양식 생성: 단어에는 각각 다른 분석에서 나오는 여러 개의 lemma 또는 사전 양식이 있을 수 있습니다. 예를 들어 영어 단어 건물에는 두 가지 가능한 lemmas 가 있습니다 . 즉, 단어가 명사("고층 건물")인 경우 빌드하거나 단어가 동사인 경우 빌드 합니다("그들은 집을 짓고 있습니다"). Machine Learning 가장 가능성이 있는 단일 사전 양식만 생성됩니다.
샘플 lemmatization 출력
원본 | 대/소문자 변환을 사용하여 Lemmatized |
---|---|
그는 수영하고 있습니다. | 그는 내가 수영 |
그는 수영을 할 것입니다. | 그는 내가 수영을 위해 간다. |
수영은 근육을 구축하는 데 좋습니다 | 수영 빌드 근육에 대 한 좋은 |
그는 건물을 짓고 있다. | 그는 내가 빌드를 구축 |
우리는 모두 건물을 짓고 있습니다. | 우리는 모두 빌드 건물입니다. |
참고
사전 양식을 생성하는 데 사용되는 언어 모델은 다양한 범용 및 기술 텍스트에 대해 학습 및 테스트되었으며 자연어 API가 필요한 다른 많은 Microsoft 제품에서 사용됩니다. 그러나 자연어는 본질적으로 모호하며 모든 어휘에 대한 100% 정확도는 불가능합니다. 예를 들어 lemmatization은 음성의 다른 부분이나 문장을 구문 분석하는 방식으로 영향을 받을 수 있습니다.
추가 사전 처리를 수행하거나 특수 또는 도메인 종속 어휘를 사용하여 언어 분석을 수행해야 하는 경우 Python 및 R에서 사용할 수 있는 것과 같은 사용자 지정 가능한 NLP 도구를 사용하는 것이 좋습니다.
특수 문자
특수 문자는 음성의 다른 부분으로 식별할 수 없는 단일 문자로 정의되며, 콜론, 세미콜론 등 문장 부호를 포함할 수 있습니다.
중지 단어
중지 단어(또는 중지 단어)는 일반적으로 인덱스에서 제거되는 단어로, 언어적으로 의미가 있더라도 정보 검색에 대한 값이 거의 없습니다.
예를 들어, 많은 언어가 명확한 문서와 무기한 문서("건물"와 "건물")를 의미 체계로 구분하지만 기계 학습 및 정보 검색의 경우 정보가 관련이 없는 경우가 있습니다. 따라서 이러한 단어를 삭제하기로 결정할 수 있습니다.
Machine Learning 환경에는 지원되는 각 언어에 대한 가장 일반적인 중지 단어 목록이 포함됩니다.
Language | 중지 단어 수 | 예 |
---|---|---|
네덜란드어 | 49 | aan, af, al |
영어 | 312 | a, about, above |
프랑스어 | 154 | de, des, d', la |
독일어 | 602 | a, ab, aber |
이탈리아어 | 135 | a, adesso, ai |
스페인어 | 368 | ésa, ésta, éste |
편의를 위해 모든 현재 언어에 대한 기본 중지 단어가 포함된 압축된 파일을 Azure Storage에서 사용할 수 있습니다. Stopwords.zip.
중지 단어 목록을 수정하는 방법
많은 사용자가 자신의 중지 단어 목록을 만들거나 기본 목록에 포함된 용어를 변경하려고 합니다. Cortana Intelligence 갤러리의 다음 실험에서는 중지 단어 목록을 사용자 지정하는 방법을 보여 줍니다.
목록을 수정하거나 사용자 고유의 중지 단어 목록을 만드는 경우 다음 요구 사항을 준수합니다.
파일에는 단일 텍스트 열이 포함되어야 합니다. 추가 열이 있는 경우 다음과 같은 오류가 발생할 수 있습니다. "전처리 텍스트 오류 열 선택 패턴 "정리할 텍스트 열"은 입력 데이터 세트에서 선택한 열 1개만 제공해야 하지만 실제로는 2개의 열이 제공됩니다. (오류 0022 )"
이 경우 중지 단어 목록을 원래 가져온 파일에 있는 공백, 탭 또는 숨겨진 열을 찾습니다. 파일을 준비한 방법에 따라 텍스트에 포함된 탭이나 쉼표로 인해 여러 열이 만들어질 수도 있습니다.
이 오류가 발생하면 원본 파일을 검토하거나 데이터 세트 모듈에서 열 선택 모듈을 사용하여 전처리 텍스트 모듈에 전달할 단일 열을 선택합니다.
각 행에는 하나의 단어만 포함될 수 있습니다. 파일을 구문 분석하기 위해 단어는 공백을 삽입하여 결정됩니다.
중지 단어 목록은 비워 둘 수 없습니다.
작업 순서
이 모듈에서는 텍스트에 여러 작업을 적용할 수 있습니다. 그러나 이러한 작업이 적용되는 순서는 변경할 수 없습니다. 이는 예상된 결과에 영향을 줄 수 있습니다.
예를 들어 텍스트에 lemmatization을 적용하고 중지 단어 제거를 사용하는 경우 중지 단어 목록이 적용되기 전에 모든 단어가 lemma 양식으로 변환됩니다. 따라서 텍스트에 중지 단어 목록에 없는 단어가 포함되어 있지만 해당 lemma가 중지 단어 목록에 있으면 단어가 제거됩니다.
올바른 결과를 보장하려면 대상 용어를 미리 테스트해야 합니다.
지원되지 않는 언어
텍스트 열에 Machine Learning 지원되지 않는 언어가 포함된 경우 언어 종속 처리가 필요하지 않은 옵션만 사용하는 것이 좋습니다. 이렇게 하면 이상한 결과를 방지하는 데 도움이 될 수 있습니다.
또한 열에 언어가 포함된 옵션을 사용하는 경우 처리되는 텍스트에 지원되지 않는 언어가 포함되지 않도록 해야 합니다. 지원되지 않는 언어 또는 해당 식별자가 데이터 세트에 있는 경우 다음 런타임 오류가 생성됩니다.
"전처리 텍스트 오류(0039): 지원되는 언어를 지정하세요."
지원되지 않는 언어가 검색되어 전체 실험이 실패하지 않도록 하려면 데이터 분할 모듈을 사용하고 정규식을 지정하여 데이터 세트를 지원되는 언어와 지원되지 않는 언어로 나눕니다.
예를 들어 다음 정규식은 열 Sentence
에 대해 검색된 언어에 따라 데이터 세트를 분할합니다.
\"Sentence Language" Dutch|English|French|Italian|Spanish
언어 식별자가 포함된 열이 있거나 이러한 열을 생성한 경우 다음과 같은 정규식을 사용하여 식별자 열을 필터링할 수 있습니다.
\"Sentence Iso6391 Name" nl|en|fr|it|es
예상 입력
Name | 유형 | 설명 |
---|---|---|
데이터 세트 | 데이터 테이블 | 입력 데이터 |
단어 중지 | 데이터 테이블 | 제거할 중지 단어의 선택적 사용자 지정 목록 |
모듈 매개 변수
Name | Type | 범위 | Optional | 기본값 | 설명 |
---|---|---|---|---|---|
URL 제거 | 부울 | True False |
필수 | true | URL 제거 |
언어 | 언어 | 영어 스페인어 프랑스어 네덜란드어 독일어 이탈리아어 |
필수 | 영어 | 전처리할 언어 선택 |
정리할 텍스트 열 | 열 선택 | 필수 | StringFeature | 정리할 텍스트 열 선택 | |
사용자 지정 정규식 | String | Optional | 사용자 지정 정규식 지정 | ||
사용자 지정 대체 문자열 | String | Optional | 사용자 지정 정규식에 대한 사용자 지정 대체 문자열 지정 | ||
중지 단어 제거 | 부울 | 필수 | true | 중지 단어 제거 | |
lemma(표제어) 찾기 | 부울 | 필수 | true | lemmatization 사용 | |
음성의 일부로 제거 | True False 형식 | true false |
필수 | False | 특정 단어 클래스를 식별하고 제거하는 데 음성 부분 분석을 사용해야 하는지 여부를 나타냅니다. |
명사 제거 | 부울 | 음성 옵션의 일부로 필터링 옵션을 선택하면 적용됩니다. | true | 명사 제거 | |
형용사 제거 | 부울 | 음성 옵션의 일부로 필터링 옵션을 선택하면 적용됩니다. | true | 형용사 제거 | |
동사 제거 | 부울 | 음성 옵션의 일부로 필터링 옵션을 선택하면 적용됩니다. | true | 동사 제거 | |
문장 검색 | 부울 | 필수 | true | 문장 종결자 \"||| 추가하여 문장 검색 \" - n-gram 기능 추출기 모듈에서 사용할 수 있습니다. | |
대/소문자를 소문자로 정규화 | 부울 | 필수 | true | 대/소문자를 소문자로 정규화 | |
숫자 제거 | 부울 | 필수 | true | 숫자 제거 | |
특수 문자 제거 | 부울 | 필수 | true | 영숫자가 아닌 특수 문자를 제거하고 \"|\" 문자로 대체합니다. | |
중복 문자 제거 | 부울 | 필수 | true | 중복 문자 제거 | |
전자 메일 주소 제거 | 부울 | 필수 | true | 전자 메일 주소 제거 |
출력
Name | 유형 | 설명 |
---|---|---|
결과 데이터 집합 | 데이터 테이블 | 결과 데이터 집합 |
예외
예외 | 설명 |
---|---|
오류 0003 | 입력 중 하나 이상이 null이거나 비어 있으면 예외가 발생합니다. |
오류 0030 | 파일을 다운로드할 수 없으면 예외가 발생합니다. |
오류 0048 | 파일을 열 수 없으면 예외가 발생합니다. |
오류 0049 | 파일을 구문 분석할 수 없으면 예외가 발생합니다. |
Studio(클래식) 모듈과 관련된 오류 목록은 Machine Learning 오류 코드를 참조하세요.
API 예외 목록은 Machine Learning REST API 오류 코드를 참조하세요.