텍스트에서 N-Gram 기능 추출

중요

Machine Learning Studio(클래식)에 대한 지원은 2024년 8월 31일에 종료됩니다. 해당 날짜까지 Azure Machine Learning으로 전환하는 것이 좋습니다.

2021년 12월 1일부터 새로운 Machine Learning Studio(클래식) 리소스를 만들 수 없습니다. 2024년 8월 31일까지는 기존 Machine Learning Studio(클래식) 리소스를 계속 사용할 수 있습니다.

ML Studio(클래식) 설명서는 사용 중지되며 나중에 업데이트되지 않을 수 있습니다.

N-Gram 사전 기능을 만들고 해당 기능 선택

범주: Text Analytics

참고

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

유사한 끌어서 놓기 모듈은 Azure Machine Learning 디자이너에서 사용할 수 있습니다.

모듈 개요

이 문서에서는 Machine Learning Studio(클래식)의 텍스트 모듈에서 N-Gram 기능 추출을 사용하여 텍스트를 추천하고 긴 텍스트 문자열에서 가장 중요한 정보만 추출하는 방법을 설명합니다.

이 모듈은 입력으로 지정한 자유 텍스트 열에서 n-gram 사전을 만들어 작동합니다. 이 모듈은 n-gram 목록에 다양한 정보 메트릭을 적용하여 데이터 차원을 줄이고 정보 값이 가장 많은 n-gram을 식별합니다.

n-gram의 어휘를 이미 만든 경우 선택한 가중치 알고리즘을 사용하여 통계를 업데이트하거나 새 용어로 병합할 수 있습니다.

이 모듈은 n-gram의 기능화를 지원하므로 채점할 때도 사용할 수 있습니다.

텍스트에서 N-Gram 기능 추출을 구성하는 방법

이러한 모듈은 n-gram 사전을 만들거나 업데이트하거나 적용하는 다음과 같은 시나리오를 지원합니다.

  • 자유 텍스트 열 열을 사용하여 새 모델을 개발 중이며 입력 데이터를 기반으로 텍스트 기능을 추출하려고 합니다. 지침을 참조하세요.

  • 기존 텍스트 기능 집합이 있으며 새 텍스트 입력을 처리하여 가중치를 업데이트하려고 합니다. 지침을 참조하세요.

  • 예측 모델에서 점수를 생성하고 있으며 점수 매기기 프로세스의 일부로 n-gram 사전이 있는 텍스트 입력을 생성하고 사용해야 합니다. 지침을 참조하세요.

예제 실험을 참조에 사용할 수 있습니다.

텍스트 열에서 새 n-gram 사전 만들기

  1. 텍스트 모듈 에서 N-Gram 기능 추출 을 실험에 추가하고 처리할 텍스트가 있는 데이터 세트를 연결합니다.

  2. 텍스트 열의 경우 추출할 텍스트가 포함된 문자열 형식의 열을 선택합니다.

    기본적으로 모듈은 모든 문자열 열을 선택합니다. 그러나 결과는 자세한 정보이므로 한 번에 하나의 열을 처리해야 할 수 있습니다.

  3. 어휘 모드의 경우 만들기를 선택하여 n-gram 기능의 새 목록을 만들고 있음을 나타냅니다.

    기존 n-gram 기능 집합을 업데이트하는 방법에 대한 자세한 내용은 이 섹션을 참조하세요.

  4. N-그램 크기의 경우 추출하고 저장할 n-gram의 최대 크기를 나타내는 숫자를 입력합니다.

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

  5. K-Skip 크기의 경우 n-gram의 변형을 식별할 때 다를 수 있는 최대 문자 수를 입력합니다. k 값이 0으로 설정된 경우 n-gram은 고유하고 연속적인 문자 시퀀스에서만 만들 수 있습니다.

    예를 들어 사전에 유니그램 "컴퓨터"가 포함되어 있다고 가정합니다. k 값이 0이면 "컴퓨터"가 유일하게 유효한 유니그램입니다. k 값을 1로 늘리면 하나의 중간 문자를 건너뛰어 더 유사한 시퀀스를 찾을 수 있습니다. k 값이 1인 skip-gram은 0k 유니그램과 한 문자씩 다릅니다. 따라서 skip-gram "conputer" 및 "compuuter"는 모두 "computer"와 동일한 사전 항목의 일부로 간주됩니다. k 값을 2로 설정하면 훨씬 더 다른 단어와 일치합니다.

    텍스트 분석에서 skip-gram을 사용하는 방법에 대한 자세한 내용은 다음 문서를 참조하세요. 감독 어휘 정규화를 위한 후보 생성 및 기능 엔지니어링

  6. 가중 치 함수 옵션은 어휘를 병합하거나 업데이트하는 경우에만 필요합니다. 두 어휘의 용어와 해당 점수에 대해 가중치를 지정합니다.

  7. 최소 단어 길이에 대해 분석할 수 있는 문자열의 최소 단어 길이를 입력합니다.

    예를 들어 최소 단어 길이가 3(기본값)으로 설정되어 있고 한 단어의 입력과 "nice place"와 같은 짧은 텍스트가 있는 입력이 있다고 가정합니다. 두 행은 모두 무시됩니다.

  8. 최대 단어 길이에 n-gram의 모든 단어에 사용할 수 있는 최대 문자 수를 입력합니다.

    기본적으로 단어 또는 토큰당 최대 25자까지 허용됩니다. 실제 어휘 항목이 아닌 임의의 문자 시퀀스일 수 있다는 가정 하에 제거된 단어보다 긴 단어입니다.

  9. 최소 n-gram 문서 절대 빈도의 경우 n-gram 사전에 포함할 단일 단어 또는 토큰에 필요한 최소 발생을 나타내는 숫자를 입력합니다.

    예를 들어 기본값 5를 사용하는 경우 n-gram 또는 skip-gram은 n-gram 사전에 포함되도록 코퍼스에 5번 이상 표시되어야 합니다.

  10. 최대 n-gram 문서 비율의 경우 전체 모음의 행 수보다 특정 n-gram을 포함하는 행 수와 같은 비율을 나타내는 숫자를 입력합니다.

    예를 들어 비율 1은 특정 n-gram이 모든 행에 있는 경우에도 n-gram을 n-gram 사전에 추가할 수 있음을 나타냅니다. 일반적으로 모든 행에서 발생하는 단어는 의미 없는 단어로 간주되고 제거됩니다. 도메인에 종속되는 의미 없는 단어를 필터링하려면 이 비율을 줄여 보세요.

    중요

    특정 단어의 발생 속도는 균일하지 않지만 문서마다 다릅니다. 예를 들어 특정 제품에 대한 고객 의견을 분석하는 경우 제품 이름은 빈도가 매우 높고 노이즈 단어에 가깝지만 다른 컨텍스트에서 중요한 용어일 수 있습니다.

  11. N-gram 어휘에 없는 단어를 포함하는 모든 행에 대해 OOV("out of vocabulary")라고 하는 표시기를 생성하려면 어휘 외 행 검색 옵션을 선택합니다.

    모든 어휘는 한정되어 있습니다. 따라서 텍스트 모음은 어휘집 또는 n-gram 사전에 없는 단어를 거의 포함하도록 보장됩니다. 그러나 이러한 단어는 IV(어휘 내) 단어에 비해 더 높은 오류율을 포함하여 언어 모델에 다양한 영향을 미칠 수 있습니다. 도메인에 따라 이러한 OOV 단어는 중요한 콘텐츠 단어를 나타낼 수 있습니다.

    이러한 단어가 포함된 행을 식별하여 이러한 용어의 효과를 보정하거나 용어 및 관련 행을 개별적으로 처리할 수 있습니다.

  12. n-gram 사전 에서 문장의 시작을 나타내는 특수 문자 시퀀스를 추가하려면 문장 시작 표시 옵션을 선택합니다. 특수 문자로 문장을 시작하는 접두사는 텍스트 분석에서 일반적이며 담론 경계를 분석하는 데 유용할 수 있습니다.

    Azure ML Studio(클래식)는 기호|||를 삽입합니다. 사용자 지정 문자를 지정할 수 없습니다.

  13. 기능 벡터를 정규화하려면 n-gram 기능 벡터 정규화 옵션을 선택합니다. 이렇게 하면 각 n-gram 기능 벡터가 L2 표준으로 나뉩니다.

    정규화는 기본적으로 사용됩니다.

  14. 텍스트 기능 벡터의 크기를 관리하기 위한 추가 옵션을 사용하도록 설정하려면 필터 기반 기능 선택 사용을 True 로 설정합니다.

    • 기능 선택은 n-그램의 차원을 줄이는 데 도움이 될 수 있습니다.
    • 필터 선택을 적용하지 않으면 가능한 모든 n-gram이 만들어지고 사전을 더 길게 만들고 자주 사용하지 않는 용어를 많이 포함할 수 있습니다.
    • 작은 코퍼스에서 기능 선택을 사용하면 만들어진 용어 수를 크게 줄일 수 있습니다.
    • 자세한 내용은 필터 기반 기능 선택을 참조하세요.

    기능 선택을 사용하는 경우 기능 점수 매기 기 메서드 드롭다운 목록에서 메서드를 선택해야 합니다.

    • PearsonCorrelation: 레이블 열 값 및 텍스트 벡터를 기반으로 Pearson의 상관 관계를 계산합니다.
    • MutualInformation: 레이블 열 값 및 텍스트 벡터를 기반으로 상호 정보 점수를 계산합니다.
    • KendallCorrelation: 레이블 열 값 및 텍스트 벡터를 기반으로 하여 Kendall의 상관 관계를 계산합니다.
    • SpearmanCorrelation: 레이블 열 값 및 텍스트 벡터를 기반으로 스피어맨 상관 관계를 계산합니다.
    • ChiSquared: chi-squared 메서드를 사용하여 레이블 열 값과 텍스트 벡터 간의 상관 관계를 계산합니다.
    • FisherScore: 레이블 열 값 및 텍스트 벡터에 대한 Fisher 점수를 계산합니다.
    • 개수 기반 기능 선택: 값 개수에 따라 새 기능을 만듭니다. 이 메서드에는 레이블 열이 필요하지 않습니다.

    선택한 메서드에 따라 다음 옵션 중 하나를 설정합니다.

    • 원하는 기능 수: 개수 기반 기능 선택 이외의 기능 선택 방법을 사용하는 경우 필요합니다.

      기능 선택 과정에서 모든 n-그램은 기능 점수를 받고 n-그램은 점수별로 순위가 매겨집니다. 여기서 설정한 값은 가장 높은 순위의 기능이 출력되는 수를 결정합니다. 기능 점수가 낮은 N-그램은 삭제됩니다.

    • 0이 아닌 요소의 최소 수: 개수 기반 기능 선택을 사용하는 경우 필요합니다.

      잠재적인 기능에 대한 개수를 집계하는 데 필요한 총 인스턴스의 최소 수를 나타내는 정수를 입력합니다.

  15. 실험을 실행합니다.

    결과 및 해당 형식에 대한 설명은 이 섹션 을 참조하세요.

기존 n-gram 사전 업데이트 또는 병합 사전

  1. 텍스트 모듈 에서 N-Gram 기능 추출 을 실험에 추가하고 처리할 텍스트가 있는 데이터 세트를 데이터 세트 포트에 연결합니다.

  2. 텍스트 열의 경우 추천할 텍스트가 포함된 텍스트 열을 선택합니다. 기본적으로 모듈은 문자열 형식의 모든 열을 선택합니다. 최상의 결과를 얻기 위해 한 번에 하나의 열을 처리합니다.

  3. 이전에 생성된 n-gram 사전이 포함된 저장된 데이터 세트를 추가하고 입력 어휘 포트에 연결합니다. 텍스트 모듈에서 N-Gram 기능 추출의 업스트림 인스턴스의 결과 어휘 출력을 연결할 수도 있습니다.

    어휘를 병합하거나 업데이트하려면 입력 어휘의 스키마가 예상된 형식과 정확히 일치해야 합니다. 입력 어휘에서 열을 제거하거나 열을 추가하지 마세요.

  4. 어휘 모드의 경우 드롭다운 목록에서 다음 업데이트 옵션 중 하나를 선택합니다.

    • ReadOnly: 입력 어휘를 기준으로 입력 모음을 나타냅니다. 즉, 새 텍스트 데이터 세트(왼쪽 입력)에서 용어 빈도를 계산하는 대신 입력 어휘의 n-gram 가중치가 있는 그대로 적용됩니다.

      텍스트 분류자를 채점할 때 이 옵션을 사용합니다.

    • 업데이트: 입력 모음에서 새 n-gram 어휘를 만들고 입력 어휘와 병합합니다. 즉, 입력 어휘에서 만든 어휘에 새 항목을 추가하거나 기존 항목을 업데이트할 수 있습니다.

      들어오는 데이터 일괄 처리가 포함된 어휘의 증분 업데이트에는 이 옵션을 사용합니다.

    • 병합: 입력 모음에서 새 n-gram 어휘를 생성합니다.

      이 옵션은 모듈에 입력으로 백그라운드 어휘를 전달하고 중지 단어의 가중치를 줄이려는 경우에 유용합니다. 즉, 배경 어휘에서 문서 빈도 점수가 높은 각 항목에는 생성된 어휘에서 더 낮은 역 문서 빈도 점수가 할당됩니다.

      입력에서 만든 어휘에 새 항목을 추가하지 않고 기존 항목의 점수만 조정하려는 경우 이 옵션을 사용합니다.

  5. 어휘를 병합하거나 업데이트하는 경우 가중치 함수 선택 옵션이 필요합니다. 가중치 함수는 두 어휘의 DF 및 IDF 점수를 서로 가중치를 적용하는 방법을 지정합니다.

    • 이진 가중치: 추출된 n-gram에 이진 현재 상태 값을 할당합니다. 즉, 각 n-gram의 값은 지정된 문서에 있을 때 1이고, 그렇지 않으면 0입니다.
    • TF 가중치: 추출된 n-그램에 TF(용어 빈도 점수)를 할당합니다. 각 n-gram의 값은 지정된 문서의 발생 빈도입니다.
    • IDF 가중치: 추출된 n-그램에 역 문서 빈도 점수(IDF)를 할당합니다. 각 n-gram의 값은 전체 모음의 발생 빈도로 나눈 모음 크기의 로그입니다. 말하자면: IDF = log of corpus_size / document_frequency
    • TF-IDF 가중치: 추출된 n-gram에 TF/IDF(용어 빈도/역 문서 빈도 점수)를 할당합니다. 각 n-gram의 값은 해당 TF 점수와 IDF 점수를 곱한 값입니다.
    • Graph 가중치: TextRank 그래프 순위에 따라 추출된 n그램에 점수를 할당합니다. TextRank는 텍스트 처리를 위한 그래프 기반 순위 모델입니다. Graph 기반 순위 알고리즘은 기본적으로 전역 정보를 기반으로 중요도를 결정하는 방법입니다. 자세한 내용은 TextRank: Rada Mihalcea 및 Paul Tarau의 텍스트로 주문 가져오기 를 참조하세요.
  6. 다른 모든 옵션은 이전 섹션의 속성 설명을 참조하세요.

  7. 실험을 실행합니다.

    결과 및 해당 형식에 대한 설명은 이 섹션 을 참조하세요.

n-gram을 사용하는 모델 점수 매기기 또는 게시

  1. 학습 데이터 흐름 의 텍스트 모듈에서 N-Gram 기능 추출 을 채점 데이터 흐름으로 복사합니다.

  2. 학습 데이터 흐름의 결과 어휘 출력을 채점 데이터 흐름의 입력 어휘로 커넥트.

  3. 점수 매기기 워크플로에서 텍스트 모듈 에서 N-Gram 기능 추출 을 수정하고 이러한 변경 내용을 적용하여 다른 모든 항목은 동일하게 적용합니다.

    • 어휘 모드 매개 변수를 ReadOnly로 설정합니다.

    • 필터 기반 기능 선택 사용 옵션을 .로 False변경합니다.

  4. 실험을 게시하려면 결과 어휘 를 데이터 세트로 저장합니다.

    그런 다음, 저장된 데이터 세트를 점수 매기기 그래프의 텍스트 모듈 에서 N-Gram 기능 추출 에 연결합니다.

결과

텍스트 모듈 에서 N-Gram 기능 추출 은 두 가지 유형의 출력을 만듭니다.

  • 결과 데이터 세트: 추출된 n-gram과 함께 분석된 텍스트의 요약입니다. 텍스트 열 옵션에서 선택하지 않은 열은 출력으로 전달됩니다. 분석하는 텍스트의 각 열에 대해 모듈은 다음 열을 생성합니다.

    • NgramsString: 모든 고유한 n-gram을 포함하는 문자열입니다.
    • NumUniqueNgrams: 지정된 속성을 사용하여 추출된 n-gram의 수입니다.
    • n-gram 발생의 스파스 행렬: 모듈은 총 코퍼스에 있는 각 n-gram에 대한 열을 생성하고 각 열에 점수를 추가하여 해당 행에 대한 n-gram의 가중치를 나타냅니다.
  • 결과 어휘: 어휘에는 분석의 일부로 생성되는 용어 빈도 점수와 더불어 실제 n-gram 사전이 포함되어 있습니다. 다른 입력 집합에서 다시 사용하거나 나중에 업데이트하기 위해 데이터 세트를 저장할 수 있습니다. 점수를 업데이트하거나 모델링 및 채점을 위해 어휘를 다시 사용할 수도 있습니다.

샘플 결과

결과를 사용하는 방법을 설명하기 위해 다음 짧은 예제에서는 Studio(클래식)에서 사용할 수 있는 Amazon Book Review 데이터 세트를 사용합니다. 데이터 세트는 점수가 4 또는 5인 리뷰와 문자열 길이가 300자 미만인 리뷰만 표시하도록 필터링되었습니다.

이 데이터 세트에서 92개 단어만 포함하는 짧은 검토가 선택되었습니다. 여기서 저자의 이름이 대체 Xxx 되고 책 제목이 다음으로 Yyy대체되었습니다.

"Xxx at his best ! Yyy is one of Xxx's best yet! I highly recommend this novel."

샘플 검토 텍스트에 대한 결과 데이터 세트

이 샘플의 경우 모듈은 다음 열을 생성했습니다.

  • NumUniqueNgrams: 이 92 단어 검토의 경우 기본 설정을 사용하여 샘플 검토에서 11 n그램을 추출했습니다.

    n-gram 길이가 3으로 증가하고 skip-gram 값이 1로 설정된 경우 15 n-gram이 발견되었습니다.

    기능 선택이 기본값에 적용된 경우 n-gram이 추출되지 않았습니다.

  • NgramsString:기본 설정으로 이러한 n-gram이 반환되었습니다. ["his","best","one","highly","recommend","this","novel","his_best","highly_recommend","recommend_this","this_novel"]

    n-gram 길이가 3이고 skip-gram 값이 1이면 ["his","best","one","highly","recommend","this","novel","his_best","highly_recommend","recommend_this","this_novel","best_one","one_best","highly_this","highly_recommend_this"]이 반환되었습니다.

  • n-gram 발생의 스파스 행렬

    이 특정 검토의 경우 결과에는 다음 열이 포함되었습니다.

    ReviewText. [관리] ReviewText. [and_highly] ReviewText. [높음] ReviewText. [highly_recommend]
    0 0 0.301511 0.301511

    특정 열을 보는 데 문제가 있는 경우 데이터 세트의 열 선택 모듈을 출력에 연결한 다음 검색 함수를 사용하여 이름으로 열을 필터링합니다.

샘플 검토 텍스트에 대한 결과 어휘

어휘에는 분석의 일부로 생성되는 용어 빈도 점수와 함께 실제 n-gram 사전이 포함됩니다. 다른 입력 집합에서 다시 사용하거나 나중에 업데이트하기 위해 데이터 세트를 저장할 수 있습니다. DFIDF 점수는 다른 옵션에 관계없이 생성됩니다. 어휘를 결합하면 이러한 저장된 값이 선택한 가중치 함수에 대한 입력으로 사용됩니다.

  • ID: 각 고유한 n-gram에 대해 생성된 식별자입니다.
  • Ngram: n-gram입니다. 공백이나 다른 단어 구분 기호는 밑줄 문자로 바뀝니다.
  • DF: 원래 모음의 n-gram에 대한 용어 빈도 점수입니다.
  • IDF: 원래 모음의 n-gram에 대한 역 문서 빈도 점수입니다.

이 데이터 세트를 수동으로 업데이트할 수 있습니다. 그러나 오류가 발생할 수 있으므로 주의해야 합니다. 예를 들면 다음과 같습니다.

  • 모듈이 입력 어휘에서 동일한 키를 가진 중복 행을 찾으면 오류가 발생합니다. 어휘의 두 행이 동일한 단어를 포함하지 않도록 하세요.
  • 어휘 데이터 세트의 입력 스키마는 열 이름과 열 유형을 포함하여 정확하게 일치해야 합니다.
  • ID 열과 DF 점수 열은 정수 형식이어야 합니다.
  • IDF 열은 FLOAT(부동 소수점) 형식이어야 합니다.

기술 정보

n-gram 길이, 건너뛰기 그램 수 및 기능 선택을 사용하여 텍스트 모음의 차원과 최적의 기능 비율을 결정하는 다양한 값 범위를 실험하는 것이 좋습니다.

n-그램 및 skip-gram에 대한 자세한 내용은 다음 리소스를 참조하세요.

예상 입력

Name 유형 설명
데이터 세트 데이터 테이블 입력 데이터
입력 어휘 데이터 테이블 입력 어휘

모듈 매개 변수

Name Type 범위 Optional 기본값 설명
0이 아닌 요소의 최소 수 정수 >=1 다음 메서드를 사용하는 경우에만 적용됩니다.

개수 기반
1 개수 기반 방법에 대해 출력할 기능의 수를 지정합니다.
텍스트 열 열 선택 필수 StringFeature 텍스트 열의 이름 또는 1 기반 인덱스
어휘 모드 어휘 모드 만들기

ReadOnly

업데이트

병합
필수 만들기 코퍼스에서 n-gram 어휘를 만드는 방법을 지정합니다.
N-그램 크기 정수 >=1 필수 1 만들 n-그램의 최대 크기를 나타냅니다.
K-건너뛰기 크기 정수 >=0 필수 0 k-skip 크기 표시
가중치 함수 가중치 함수 이진 가중치

TF 가중치

IDF 가중치

TF-IDF 가중치

Graph 가중치
필수 이진 가중치 각 n-gram 값에 적용할 가중치 함수 선택
최소 단어 길이 정수 >=1 필수 3 n-그램에 포함할 단어의 최소 길이 지정
최대 단어 길이 정수 >=2 필수 25 n-gram에 포함할 단어의 최대 길이 지정
최소 n그램 문서 절대 빈도 Float >=1.0 필수 5.0 최소 n그램 문서 절대 빈도
최대 n그램 문서 비율 Float >=0.0001 필수 1.0 최대 n그램 문서 비율
어휘 외 행 검색 부울 필수 true N-gram 어휘(OOV)에 없는 단어가 있는 행 검색
문장 시작 표시 부울 필수 false n-gram에 시작 문장 표시를 추가할지 여부를 나타냅니다.
n-gram 기능 벡터 정규화 부울 필수 n-gram 기능 벡터를 정규화합니다. true이면 n-gram 기능 벡터가 L2 표준으로 나뉩니다.
필터 기반 기능 선택 사용 True False 형식 True

False
필수 True 필터 기반 기능 선택을 사용하여 차원 감소
기능 점수 매기기 방법 점수 매기기 메서드 피어슨 상관 관계

상호 정보

켄들 상관 관계

스페어만 상관 관계

카이 제곱

피셔 점수

개수 기반
필터 기반 기능 선택 사용 옵션이 True인 경우에만 적용됩니다. 피셔 점수 점수 매기기를 위해 사용할 방법을 선택합니다.
대상 열 열 선택 다음 방법 중 하나를 사용할 때 적용됩니다.

피어슨 상관 관계

상호 정보

켄들 상관 관계

스페어만 상관 관계

카이 제곱

피셔 점수
대상 열을 지정합니다.
원하는 기능의 수 정수 >=1 다음 방법 중 하나를 사용할 때 적용됩니다.

피어슨 상관 관계

상호 정보

켄들 상관 관계

스페어만 상관 관계

카이 제곱

피셔 점수
1 결과에 출력할 기능의 수를 지정합니다.

출력

Name 유형 설명
결과 데이터 집합 데이터 테이블 추출된 기능
결과 어휘 데이터 테이블 결과 어휘

참고 항목

Text Analytics
A-Z Machine Learning 모듈 목록