다음을 통해 공유


특성 해시 구성 요소 참조

Warning

이 구성 요소는 종속성인 NimbusML 프로젝트가 더 이상 적극적으로 유지 관리되지 않으므로 더 이상 사용되지 않습니다. 따라서 이 구성 요소는 향후 업데이트 또는 보안 패치를 받지 않습니다. 향후 릴리스에서 이 구성 요소를 제거할 계획입니다. 사용자는 지속적인 지원과 보안을 보장하기 위해 대체 솔루션으로 마이그레이션하는 것이 좋습니다.

이 문서에서는 Azure Machine Learning 디자이너의 구성 요소에 대해 설명합니다.

특성 해시 구성 요소를 사용하여 영어 텍스트 스트리밍을 정수 기능 세트로 변환합니다. 그런 다음 이 해시된 기능 세트를 기계 학습 알고리즘에 전달하여 텍스트 분석 모델을 학습할 수 있습니다.

이 구성 요소에서 제공되는 특성 해시 기능은 nimbusml 프레임워크를 기반으로 합니다. 자세한 내용은 NgramHash 클래스를 참조 하세요.

기능 해싱이란 무엇인가요?

기능 해싱은 고유 토큰을 정수로 변환하여 작동합니다. 입력으로 제공하는 정확한 문자열에서 작동하며 언어 분석 또는 전처리를 수행하지 않습니다.

예를 들어 다음과 같은 간단한 문장 집합과 감정 점수를 사용합니다. 이 텍스트를 사용하여 모델을 구축한다고 가정합니다.

사용자 텍스트 관심도
I loved this book 3
나는이 책을 싫어 1
이 책은 훌륭했습니다. 3
저는 책을 좋아합니다. 2

내부적으로 특성 해시 구성 요소는 n그램 사전을 생성합니다. 예를 들어 이 데이터 세트의 bigram 목록은 다음과 같습니다.

용어(bigrams) 빈도
이 책 3
나는 사랑했다. 1
나는 싫어 1
I love 1

N-gram 속성을 사용하여 n-gram의 크기를 제어할 수 있습니다. 바이그램을 선택하면 유니그램도 계산됩니다. 사전에는 다음과 같은 단일 용어도 포함됩니다.

용어(유니그램) 빈도
book 3
I 3
문서 1
배포가 1

사전이 빌드된 후 특성 해시 구성 요소는 사전 용어를 해시 값으로 변환합니다. 그런 다음 각 경우에 기능이 사용되었는지 여부를 계산합니다. 텍스트 데이터의 각 행에 대해 구성 요소는 해시된 각 기능에 대해 하나의 열로 구성된 일련의 열을 출력합니다.

예를 들어 해시 후 기능 열은 다음과 같이 표시될 수 있습니다.

등급 해싱 기능 1 해싱 기능 2 해싱 기능 3
4 1 1 0
5 0 0 0
  • 열의 값이 0이면 행에 해시된 기능이 포함되지 않았습니다.
  • 값이 1이면 행에 기능이 포함되어 있습니다.

기능 해시를 사용하면 가변 길이의 텍스트 문서를 같은 길이의 숫자 기능 벡터로 표시하여 차원을 줄일 수 있습니다. 학습에 텍스트 열을 있는 그대로 사용하려고 하면 고유 값이 많은 범주 기능 열로 처리됩니다.

숫자 출력을 사용하면 분류, 클러스터링 및 정보 검색을 비롯한 일반적인 기계 학습 방법을 사용할 수도 있습니다. 조회 작업은 문자열 비교 대신 정수 해시를 사용할 수 있기 때문에 기능 가중치를 얻는 것도 훨씬 빠릅니다.

특성 해시 구성 요소 구성

  1. 디자이너의 파이프라인에 특성 해시 구성 요소를 추가합니다.

  2. 분석하려는 텍스트가 포함된 데이터 세트를 연결합니다.

    기능 해싱은 형태소 분석 또는 자르기와 같은 어휘 연산을 수행하지 않기 때문에 기능 해싱을 적용하기 전에 텍스트를 사전 처리하여 더 나은 결과를 얻을 수 있습니다.

  3. 대상 열을 해시된 기능으로 변환하려는 텍스트 열로 설정합니다. 다음 사항에 유의하세요.

    • 열은 문자열 데이터 형식이어야 합니다.

    • 여러 텍스트 열을 선택하면 기능 차원에 상당한 영향을 줄 수 있습니다. 예를 들어 10비트 해시의 열 수는 단일 열의 경우 1,024개에서 두 열의 경우 2,048개로 늘어나게 됩니다.

  4. 해싱 비트 크기를 사용하여 해시 테이블을 만들 때 사용할 비트 수를 지정합니다.

    기본 비트 크기는 10입니다. 많은 문제에서 이 값은 적절합니다. 학습 텍스트의 n-그램 어휘 크기에 따라 충돌을 방지하기 위해 더 많은 공간이 필요할 수 있습니다.

  5. N-gram의 경우 학습 사전에 추가할 n-gram의 최대 길이를 정의하는 숫자를 입력합니다. n그램은 고유한 단위로 처리되는 n 단어의 시퀀스입니다.

    예를 들어 3을 입력하면 유니그램, bigrams 및 trigram이 만들어집니다.

  6. 파이프라인을 제출합니다.

결과

처리가 완료된 후 구성 요소는 원본 텍스트 열이 여러 열로 변환된 데이터 세트를 출력합니다. 각 열은 텍스트의 기능을 나타냅니다. 사전의 중요도에 따라 결과 데이터 세트가 클 수 있습니다.

열 이름 1 열 유형 2
USERTEXT 원본 데이터 열
감정 원본 데이터 열
USERTEXT - 해시 기능 1 해시된 기능 열
USERTEXT - 해싱 기능 2 해시된 기능 열
USERTEXT - 해싱 기능 n 해시된 기능 열
USERTEXT - 해시 기능 1024 해시된 기능 열

변환된 데이터 세트를 만든 후 모델 학습 구성 요소에 대한 입력으로 사용할 수 있습니다.

모범 사례

다음 모범 사례는 특성 해시 구성 요소를 최대한 활용하는 데 도움이 될 수 있습니다.

  • 특성 해시를 사용하여 입력 텍스트를 사전 처리하기 전에 사전 처리 텍스트 구성 요소를 추가합니다.

  • 특성 해시 구성 요소 뒤에 열 선택 구성 요소를 추가하여 출력 데이터 세트에서 텍스트 열을 제거합니다. 해시 기능이 생성된 후에는 텍스트 열이 필요하지 않습니다.

  • 결과를 간소화하고 정확도를 향상하려면 다음 텍스트 전처리 옵션을 사용하는 것이 좋습니다.

    • 단어 분리
    • 단어 제거 중지
    • 대/소문자 정규화
    • 문장 부호 및 특수 문자 제거
    • 형태소 분석

모든 솔루션에 적용할 최적의 전처리 방법 집합은 도메인, 어휘 및 비즈니스 필요에 따라 달라집니다. 데이터를 사용하여 파이프라인을 통해 가장 효과적인 텍스트 처리 방법을 확인합니다.

다음 단계

Azure Machine Learning에서 사용 가능한 구성 요소 집합을 참조하세요.