텍스트 전처리

텍스트에서 정리 작업을 수행 합니다.

범주: Text Analytics

참고

적용 대상: Machine Learning Studio (클래식)

이 콘텐츠는 Studio (클래식)에만 해당 됩니다. Azure Machine Learning 디자이너에는 비슷한 끌어서 놓기 모듈이 추가 되었습니다. 이 문서에서는 두 가지 버전을 비교 하는방법에 대해 자세히 알아보세요.

모듈 개요

이 문서에서는 Azure Machine Learning Studio (클래식)에서 전처리 텍스트 모듈을 사용 하 여 텍스트를 정리 하 고 간소화 하는 방법을 설명 합니다. 텍스트를 전처리 하면 텍스트에서 의미 있는 기능을 보다 쉽게 만들 수 있습니다.

예를 들어 전처리 텍스트 모듈은 텍스트에 대해 다음과 같은 일반적인 작업을 지원 합니다.

  • 중지 단어 제거
  • 정규식을 사용 하 여 특정 대상 문자열 검색 및 바꾸기
  • 분류 정리-여러 개의 관련 단어를 단일 정규 형식으로 변환 합니다.
  • 음성의 특정 부분에 대 한 필터링
  • 대/소문자 정규화
  • 숫자, 특수 문자, 반복 되는 문자 시퀀스 (예: "aaaa") 등의 특정 문자 클래스 제거
  • 전자 메일 및 Url의 식별 및 제거

사용할 청소 옵션을 선택 하 고 필요에 따라 중지 단어의 사용자 지정 목록을 지정할 수 있습니다.

이 모듈은 현재 영어, 스페인어, 프랑스어, 네덜란드어, 독일어, 이탈리아어 등 6 개 언어를 지원 합니다.

텍스트 전처리를 구성 하는 방법

  1. 스튜디오 (클래식)의 실험에 전처리 텍스트 모듈을 추가 합니다. 이 모듈은 Text Analytics 에서 찾을 수 있습니다.

  2. 텍스트를 포함 하는 열이 하나 이상 있는 데이터 집합을 연결 합니다.

  3. 전처리 하는 텍스트가 모두 같은 언어로 되어 있으면 언어 드롭다운 목록에서 언어를 선택 합니다. 이 옵션을 사용 하면 선택한 언어와 관련 된 언어 규칙을 사용 하 여 텍스트가 전처리 됩니다.

  4. 여러 언어가 포함 될 수 있는 텍스트를 전처리 하려면 열에 언어 옵션 포함 을 선택 합니다.

    그런 다음 Culture 언어 열 속성을 사용 하 여 각 행에 사용 되는 언어를 나타내는 데이터 집합의 열을 선택 합니다. 열은 "영어" 또는와 같은 표준 언어 식별자를 포함 해야 합니다 en .

    이 식별자를 기반으로 하는 모듈은 텍스트를 처리 하는 데 적절 한 언어 리소스를 적용 합니다.

    데이터 집합에 이러한 식별자가 포함 되어 있지 않은 경우 언어 검색 모듈을 사용 하 여 언어를 미리 분석 하 고 식별자를 생성 합니다.

    지원 되지 않는 언어를 포함 하는 경우 오류가 발생 합니다. 자세한 내용은 기술 참고 사항 섹션을 참조 하세요.

  5. 음성 부분에서 제거: 음성 부분 분석을 적용 하려면이 옵션을 선택 합니다. 그러면 음성 부분 태그를 사용 하 여 특정 단어 클래스를 제거할 수 있습니다.

    • 명사 제거: 명사를 제거 하려면이 옵션을 선택 합니다.
    • 형용사 제거: 형용사를 제거 하려면이 옵션을 선택 합니다.
    • 동사 제거: 동사를 제거 하려면이 옵션을 선택 합니다.

    사용 된 음성 부분 식별 방법에 대 한 자세한 내용은 기술 참고 사항 섹션을 참조 하세요.

  6. 정리할 텍스트 열: 전처리 하려는 열을 선택 합니다.

  7. 중지 단어 제거: 미리 정의 된 중지 단어 목록을 텍스트 열에 적용 하려면이 옵션을 선택 합니다. 단어 제거 중지는 다른 프로세스 보다 먼저 수행 됩니다.

    중지 단어 목록은 언어에 따라 다르며 사용자 지정할 수 있습니다. 자세한 내용은 기술 참고 사항 섹션을 참조 하세요.

  8. 분류 정리: 정규 형식으로 단어를 표시 하려면이 옵션을 선택 합니다. 이 옵션은 다른 경우와 유사한 텍스트 토큰의 고유한 발생 수를 줄이는 데 유용 합니다.

    분류 정리 프로세스는 언어에 따라 달라 집니다. 자세한 내용은 기술 참고 사항 섹션을 참조 하세요.

  9. 문장 검색: 분석을 수행할 때 모듈에서 문장 경계 표시를 삽입 하도록 하려면이 옵션을 선택 합니다.

    이 모듈에서는 일련의 3 개의 파이프 문자를 사용 하 여 ||| 문장 종결자를 나타냅니다.

  10. 필요에 따라 정규식을 사용 하 여 사용자 지정 찾기 및 바꾸기 작업을 수행할 수 있습니다.

    • 사용자 지정 정규식: 검색 하는 텍스트를 정의 합니다.
    • 사용자 지정 대체 문자열: 단일 대체 값을 정의 합니다.
  11. 소문자 를 소문자로 정규화: ASCII 대문자를 소문자 형식으로 변환 하려면이 옵션을 선택 합니다.

    문자가 정규화 되지 않은 경우에는 대문자 및 소문자의 동일한 단어가 두 단어로 간주 됩니다. 예를 들어 AM 는와 같습니다 am .

  12. 필요에 따라 처리 된 출력 텍스트에서 다음과 같은 유형의 문자 또는 문자 시퀀스를 제거할 수 있습니다.

    • 숫자 제거: 지정 된 언어의 모든 숫자 문자를 제거 하려면이 옵션을 선택 합니다.

    숫자를 구성 하는 것은 도메인에 따라 다르며 언어에 따라 달라 집니다. 숫자 문자가 알려진 단어의 정수 부분이 면 숫자가 제거 되지 않을 수 있습니다.

    • 특수 문자 제거: 영숫자가 아닌 특수 문자를 파이프 문자로 바꾸려면이 옵션을 사용 | 합니다.

      특수 문자에 대 한 자세한 내용은 기술 참고 사항 섹션을 참조 하세요.

    • 중복 문자 제거: 문자를 반복 하는 모든 시퀀스를 제거 하려면이 옵션을 선택 합니다. 예를 들어 "aaaaa"와 같은 시퀀스는 제거 됩니다.

    • 전자 메일 주소 제거: 형식의 시퀀스를 제거 하려면이 옵션을 선택 <string>@<string> 합니다.

    • Url 제거: 다음 url 접두사가 포함 된 시퀀스를 제거 하려면이 옵션을 선택 합니다.

      • http, https
      • ftp
      • www
  13. Expand verb 축약:이 옵션은 verb 축약를 사용 하는 언어에만 적용 됩니다. 현재는 영어로만 되어 있습니다.

    예를 들어이 옵션을 선택 하면 "유지 되지 않습니다." 라는 문구를 "유지 하지 않습니다"로 바꿀 수 있습니다.

  14. 백슬래시로 백슬래시 정규화:의 모든 인스턴스를에 매핑하려면이 옵션을 \\ 선택 / 합니다.

  15. 특수 문자에 대 한 토큰 분할:, 등의 문자에 대 한 단어를 중단 하려면이 옵션을 선택 & - 합니다.

    예를 들어 문자열은 MS-WORD 및의 두 토큰으로 구분 됩니다 MS WORD .

예제

Azure AI Gallery 의 다음 예에서는 전처리 텍스트 모듈을 사용 하는 방법을 보여 줍니다.

기술 참고 사항

이 섹션에서는 기본 텍스트 전처리 기술에 대해 자세히 설명 하 고 사용자 지정 텍스트 리소스를 지정 하는 방법을 설명 합니다.

지원되는 언어

현재는 이러한 언어로 텍스트 전처리를 지원 Azure Machine Learning 합니다.

  • 네덜란드어
  • 영어
  • 프랑스어
  • 독일어
  • 이탈리아어
  • 스페인어

추가 언어가 계획 되어 있습니다. 공지는 Microsoft Machine Learning 블로그 를 참조 하세요.

lemma(표제어) 찾기

분류 정리는 여러 단어 토큰을 나타내는 단일 정규 형식을 식별 하는 프로세스입니다.

Azure Machine Learning Studio (클래식)에 포함 된 자연어 처리 라이브러리는 다음과 같은 여러 가지 언어 작업을 결합 하 여 분류 정리을 제공 합니다.

  • 문장 분리: 감정 분석 및 기타 텍스트 분석에 사용 되는 자유 텍스트에서 문장이 자주 실행 되거나 문장 부호가 누락 될 수 있습니다. 입력 텍스트는 트 윗 또는 조각에서 전체 단락 또는 문서에 이르는 임의의 긴 텍스트 청크를 구성할 수 있습니다.

    Studio (클래식)에서 사용 하는 자연어 도구는 기본 어휘 분석의 일부로 문장 분리를 수행 합니다. 그러나 문장이 출력에서 분리 되지 않습니다. 필요에 따라 문장 경계가 다른 텍스트 처리 및 분석을 지원 하도록 표시 되도록 지정할 수 있습니다.

  • 토큰화: 단어의 경계를 결정 하는 규칙은 언어에 따라 다르며 단어 사이에 공백을 사용 하는 언어 에서도 복잡할 수 있습니다.

    일부 언어 (예: 중국어 또는 일본어)는 단어 사이에 공백을 사용 하지 않으며 단어를 구분 하려면 형태학 상의 변형인 분석이 필요 합니다.

    따라서이 모듈에서 사용 되는 토큰화 메서드 및 규칙은 언어 마다 다른 결과를 제공 합니다. 이러한 토큰화 규칙은 지원 되는 각 언어에 대해 Microsoft Research에서 제공 되는 텍스트 분석 라이브러리에 의해 결정 되며 사용자 지정할 수 없습니다.

  • 음성 부분 식별: 단어의 순서에 관계 없이 각 단어에 대 한 정확한 음성 부분을 계산 하는 것이 어려울 수 있습니다. "화살표와 같은 시간이 걸리는 경우"와 같이 매우 간단한 문장에도 수십 개의 구문 분석 (유명한 예)이 있을 수 있습니다. 또한 음성의 일부는 다른 언어의 morphology에 따라 매우 다릅니다.

    Azure Machine Learning에서는 현재 문장 컨텍스트가 지정 된 경우 명확성 모델을 사용 하 여 음성의 가장 가능성이 높은 단일 부분 을 선택 합니다. 음성 부분 정보를 사용 하 여 기능으로 사용 되는 단어를 필터링 하 고 키 구 추출을 지원할 수 있습니다. 그러나이 모듈의 출력에는 POS 태그가 명시적으로 포함 되어 있지 않으므로 POS 태그가 지정 된 텍스트를 생성 하는 데 사용할 수 없습니다.

  • 사전 양식 생성: 단어 마다 다른 분석에서 발생 하는 여러 lemmas 또는 사전 양식이 있을 수 있습니다. 예를 들어, 영어 단어 빌딩에는 두 가지 가능한 lemmas이 있습니다. 즉, 단어가 명사 ("긴 건물") 이면 빌딩 이 고, 단어가 동사 ("집을 빌드하는 중") 인 경우 build 입니다. Azure Machine Learning에서는 가장 가능성이 높은 단일 사전 양식만 생성 됩니다.

샘플 분류 정리 출력

원본 대/소문자 변환이 있는 분류
그는 내가 스윔
스윔 스윔
Muscle를 구축 하는 데 적합 합니다. muscle 빌드에 적합 스윔
빌드를 빌드하고 있습니다. 빌드를 빌드 했습니다.
모든 건물을 빌드하고 있습니다. 모든 빌드 빌드

참고

사전 폼을 생성 하는 데 사용 되는 언어 모델은 다양 한 일반 목적과 기술 텍스트에 대해 학습 되 고 테스트 되었으며 자연어 Api가 필요한 다른 여러 Microsoft 제품에서 사용 됩니다. 그러나 자연어는 본질적으로 모호 하며 모든 어휘에서 100%의 정확도는 불가능 합니다. 예를 들어 분류 정리는 다른 음성 부분이 나 문장이 구문 분석 되는 방식으로 영향을 받을 수 있습니다.

추가적인 전처리를 수행 하거나 특수 또는 도메인 종속 어휘를 사용 하 여 언어 분석을 수행 해야 하는 경우 Python 및 R에서 사용할 수 있는 것과 같은 사용자 지정 가능한 NLP 도구를 사용 하는 것이 좋습니다.

특수 문자

특수 문자는 음성의 다른 부분으로 식별할 수 없고 문장 부호 (콜론, 세미 콜론 등)를 포함할 수 있는 단일 문자로 정의 됩니다.

중지 단어

중지 단어 (또는 중지 단어)는 일반적으로 인덱스에서 제거 되는 단어 이며, 언어적으로 의미 있는 경우에도 정보 검색에 대해 약간의 값을 제공 합니다.

예를 들어 다 수의 언어는 정적 문서와 무한 문서 ("빌딩" vs "빌드") 간에 의미 체계를 구분 하지만 기계 학습 및 정보 검색의 경우 정보는 관련이 없을 수 있습니다. 따라서 이러한 단어를 삭제 하도록 결정할 수 있습니다.

Azure Machine Learning 환경에는 지원 되는 각 언어에 대 한 가장 일반적인 중지 단어 목록이 포함 되어 있습니다.

언어 중지 단어 수 예제
네덜란드어 49 aan, af, al
영어 312 a, about, 위의
프랑스어 154 de, des, d ', la
독일어 602 a, ab, aber
이탈리아어 135 a, adesso, ai
스페인어 368 ésa, ésta, éste

편의를 위해 모든 현재 언어에 대 한 기본 중지 단어 포함 된 압축 파일을 Azure storage: Stopwords.zip에서 사용할 수 있습니다.

중지 단어 목록을 수정 하는 방법

대부분의 사용자는 자신의 중지 단어 목록을 만들거나 기본 목록에 포함 된 용어를 변경 하려고 합니다. Cortana Intelligence Gallery 의 다음 실험에서는 중지 단어 목록을 사용자 지정할 수 있는 방법을 보여 줍니다.

목록을 수정 하거나 고유한 중지 단어 목록을 만드는 경우 다음 요구 사항을 준수 해야 합니다.

  • 파일은 단일 텍스트 열을 포함 해야 합니다. 추가 열이 있으면 "텍스트 전처리 오류 열 선택 패턴" 텍스트 열은 입력 데이터 집합에서 1 개의 열을 제공 해야 하지만 2 개 열은 실제로 제공 됩니다. 라는 오류가 나타날 수 있습니다. (오류 0022) "

    이 문제가 발생 하는 경우 중지 단어 목록을 원래 가져온 파일에 있는 공백, 탭 또는 숨겨진 열을 찾습니다. 파일이 준비 된 방법, 텍스트에 탭 또는 쉼표를 따라 여러 열을 만들 수도 있습니다.

    이 오류가 발생 하면 원본 파일을 검토 하거나 데이터 집합의 열 선택 모듈을 사용 하 여 전처리 텍스트 모듈에 전달할 단일 열을 선택 합니다.

  • 각 행은 하나의 단어만 포함할 수 있습니다. 파일을 구문 분석 하기 위해 단어는 공백을 삽입 하 여 결정 됩니다.

  • 중지 단어 목록은 비워 둘 수 없습니다.

작업 순서

이 모듈에서는 텍스트에 여러 작업을 적용할 수 있습니다. 그러나 이러한 작업을 적용 하는 순서는 변경할 수 없습니다. 이는 예상 되는 결과에 영향을 줄 수 있습니다.

예를 들어 분류 정리를 text에 적용 하 고 중지 단어 제거를 사용 하는 경우 중지 단어 목록이 적용 되기 전에 모든 단어가 lemma 형식으로 변환 됩니다. 따라서 텍스트에 중지 단어 목록에 없는 단어가 포함 되어 있지만 해당 lemma가 중지 단어 목록에 있으면 해당 단어가 제거 됩니다.

올바른 결과를 보장 하기 위해 대상 용어를 미리 테스트 해야 합니다.

지원 되지 않는 언어

텍스트 열이 Azure Machine Learning에서 지원 하지 않는 언어를 포함 하는 경우 언어 종속 처리가 필요 하지 않은 옵션만 사용 하는 것이 좋습니다. 이를 통해 이상한 결과를 방지할 수 있습니다.

또한 option contains language 를 사용 하는 경우 처리 되는 텍스트에 지원 되지 않는 언어가 포함 되지 않도록 해야 합니다. 지원 되지 않는 언어 또는 해당 식별자가 데이터 집합에 있는 경우 다음 런타임 오류가 생성 됩니다.

"텍스트 전처리 오류 (0039): 지원 되는 언어를 지정 하십시오."

지원 되지 않는 언어가 검색 되어 전체 실험의 실패를 방지 하려면 데이터 분할 모듈을 사용 하 고 데이터 집합을 지원 되는 언어와 지원 되지 않는 언어로 나누려면 정규식을 지정 합니다.

예를 들어 다음 정규식은 열에 대해 검색 된 언어에 따라 데이터 집합을 분할 합니다 Sentence .

\"Sentence Language" Dutch|English|French|Italian|Spanish

언어 식별자가 포함 된 열이 있거나 이러한 열을 생성 한 경우 다음과 같은 정규식을 사용 하 여 식별자 열을 필터링 할 수 있습니다.

\"Sentence Iso6391 Name" nl|en|fr|it|es

예상 입력

Name Type 설명
데이터 세트 데이터 테이블 입력 데이터
중지 단어 데이터 테이블 제거할 중지 단어의 선택적 사용자 지정 목록

모듈 매개 변수

Name Type 범위 선택 사항 기본값 설명
Url 제거 부울 True

False
필수 true Url 제거
언어 언어 영어

스페인어

프랑스어

네덜란드어

독일어

이탈리아어
필수 영어 전처리 언어 선택
정리할 텍스트 열 열 선택 필수 StringFeature 정리할 텍스트 열을 선택 하십시오.
사용자 지정 정규식 String 선택 사항 사용자 지정 정규식 지정
사용자 지정 대체 문자열 String 선택 사항 사용자 지정 정규식에 대 한 사용자 지정 대체 문자열을 지정 합니다.
중지 단어 제거 부울 필수 true 중지 단어 제거
lemma(표제어) 찾기 부울 필수 true 분류 정리 사용
음성 부분으로 제거 True False 형식 true

false
필수 False 특정 단어 클래스를 식별 하 고 제거 하는 데 음성 부분 분석이 사용 되어야 하는지 여부를 나타냅니다.
명사 제거 부울 음성 부분으로 필터링 옵션이 선택 된 경우 적용 됩니다. true 명사 제거
형용사 제거 부울 음성 부분으로 필터링 옵션이 선택 된 경우 적용 됩니다. true 형용사 제거
동사 제거 부울 음성 부분으로 필터링 옵션이 선택 된 경우 적용 됩니다. true 동사 제거
문장 감지 부울 필수 true \ \ N-영문법 기능 추출기 모듈에서 사용할 수 있는 문장 종결자 "|||"를 추가 하 여 문장을 검색 합니다.
소문자를 소문자로 정규화 부울 필수 true 소문자를 소문자로 정규화
숫자 제거 부울 필수 true 숫자 제거
특수 문자 제거 부울 필수 true 영숫자가 아닌 특수 문자를 제거 하 고 \ "|\ " 문자로 바꿉니다.
중복 문자 제거 부울 필수 true 중복 문자 제거
전자 메일 주소 제거 부울 필수 true 전자 메일 주소 제거

출력

Name Type 설명
결과 데이터 집합 데이터 테이블 결과 데이터 집합

예외

예외 설명
오류 0003 입력 중 하나 이상이 null이거나 비어 있으면 예외가 발생합니다.
오류 0030 파일을 다운로드할 수 없으면 예외가 발생합니다.
오류 0048 파일을 열 수 없으면 예외가 발생합니다.
오류 0049 파일을 구문 분석할 수 없으면 예외가 발생합니다.

스튜디오 (클래식) 모듈과 관련 된 오류 목록은 Machine Learning 오류 코드를 참조 하세요.

API 예외 목록은 Machine Learning REST API 오류 코드를 참조 하세요.

참고 항목

텍스트 분석

전체 모듈 목록