stopwordsDefault: 기계 학습 텍스트 변환

모델을 학습시키기 전에 데이터에서 수행할 수 있는 텍스트 변환입니다.

사용

  stopwordsDefault()

  stopwordsCustom(dataFile = "")

  termDictionary(terms = "", dataFile = "", sort = "occurrence")

  featurizeText(vars, language = "English", stopwordsRemover = NULL,
    case = "lower", keepDiacritics = FALSE, keepPunctuations = TRUE,
    keepNumbers = TRUE, dictionary = NULL,
    wordFeatureExtractor = ngramCount(), charFeatureExtractor = NULL,
    vectorNormalizer = "l2", ...)

인수

dataFile

문자: <string>. 용어(약식 데이터)를 포함하는 데이터 파일입니다.

terms

용어 또는 범주의 선택적 문자 벡터입니다.

sort

벡터화할 때 항목을 정렬하는 방법을 지정합니다. 다음 두 가지 순서 지정이 지원됩니다.

  • "occurrence": 항목이 발생한 순서대로 표시됩니다.
  • "value": 항목이 기본 비교에 따라 정렬됩니다. 예를 들어, 텍스트 정렬은 대/소문자를 구분합니다(예: ‘A’, ‘Z’, ‘a’ 순서).

vars

입력 변수 이름의 명명된 문자 벡터 목록 및 출력 변수의 이름입니다. 입력 변수는 동일한 형식이어야 합니다. 입력 변수와 출력 변수 간 일대일 매핑의 경우 명명된 문자 벡터를 사용할 수 있습니다.

language

데이터 세트에 사용되는 언어를 지정합니다. 지원되는 값은 다음과 같습니다.

  • "AutoDetect": 자동 언어 감지용입니다.
  • "English".
  • "French".
  • "German".
  • "Dutch".
  • "Italian".
  • "Spanish".
  • "Japanese".

stopwordsRemover

사용할 중지 단어 제거기를 지정합니다. 세 개의 옵션이 지원됩니다.

  • NULL: 중지 단어 제거기를 사용하지 않습니다.
  • stopwordsDefault: 가장 일반적인 Microsoft Office 단어를 포함하는 미리 컴파일된 언어별 중지 단어 목록이 사용됩니다.
  • stopwordsCustom: 사용자 정의 중지 단어 목록입니다. dataFile 옵션을 허용합니다.
    기본값은 NULL입니다.

case

고정 문화권의 규칙을 사용하는 텍스트 대/소문자 표기입니다. 다음 값을 사용합니다.

  • "lower".
  • "upper".
  • "none".
    기본값은 "lower"입니다.

keepDiacritics

FALSE이면 분음 부호를 제거하고, TRUE이면 분음 부호를 유지합니다. 기본값은 FALSE입니다.

keepPunctuations

FALSE이면 문장 부호를 제거하고, TRUE이면 문장 부호를 유지합니다. 기본값은 TRUE입니다.

keepNumbers

FALSE이면 숫자를 제거하고, TRUE이면 숫자를 유지합니다. 기본값은 TRUE입니다.

dictionary

다음 옵션을 허용하는 허용 목록에 추가된 용어의 termDictionary입니다.

  • terms,
  • dataFile
  • sort.
    기본값은 NULL입니다. 사전 용어가 허용 목록에 추가되기 전에 중지 단어가 제거되면 중지 단어 목록이 사전 허용 목록보다 우선 적용됩니다.

wordFeatureExtractor

단어 기능 추출 인수를 지정합니다. 다음과 같은 두 가지 기능 추출 메커니즘이 있습니다.

  • ngramCount: 개수 기반 기능 추출(WordBag과 동일)입니다. maxNumTermsweighting 옵션을 허용합니다.
  • ngramHash: 해시 기반 기능 추출(WordHashBag과 동일)입니다. hashBits, seed, orderedinvertHash 옵션을 허용합니다.
    기본값은 ngramCount입니다.

charFeatureExtractor

char 기능 추출 인수를 지정합니다. 다음과 같은 두 가지 기능 추출 메커니즘이 있습니다.

  • ngramCount: 개수 기반 기능 추출(WordBag과 동일)입니다. maxNumTermsweighting 옵션을 허용합니다.
  • ngramHash: 해시 기반 기능 추출(WordHashBag과 동일)입니다. hashBits, seed, orderedinvertHash 옵션을 허용합니다.
    기본값은 NULL입니다.

vectorNormalizer

벡터(행)를 단위 표준으로 다시 스케일링하여 개별적으로 정규화합니다. 다음 값 중 하나를 사용합니다.

  • "none".
  • "l2".
  • "l1".
  • "linf". 기본값은 "l2"입니다.

...

컴퓨팅 엔진으로 전송된 추가 인수입니다.

세부 정보

featurizeText 변환은 지정된 텍스트 모음에서 n-gram이라고 하는
연속된 수의 단어 시퀀스 모음을 생성합니다. 이 작업은 두 가지 방법으로 수행할 수 있습니다.

N-Gram 사전을 작성하고 사전의 ID를 백의 인덱스로 사용합니다.

각 N-Gram을 해시하고 해시 값을 백의 인덱스로 사용합니다.

해시는 차원성 감소를 지원하고 기능 가중치를 보다 빠르게 조회할 수 있도록 가변 길이 텍스트 문서를 같은 길이의 숫자 기능 벡터로 변환하는 데 사용됩니다.

텍스트 변환은 텍스트 입력 열에 적용됩니다. 언어 검색, 토큰화, 중지 단어 제거, 텍스트 정규화 및 특성 생성을 제공합니다. 기본적으로 영어, 프랑스어, 독일어, 네덜란드어, 이탈리아어, 스페인어 및 일본어를 지원합니다.

N-Gram은 벡터 슬롯이 N-Gram(ngramCount을 사용하여 생성)이나 해시(ngramHash를 사용하여 생성)에 해당하는 개수 벡터로 표시됩니다. 벡터 공간에 N-Gram을 포함하면 콘텐츠를 효율적인 방식으로 비교할 수 있습니다. 벡터의 슬롯 값은 다음 요소에 따라 가중치를 적용할 수 있습니다.

‘용어 빈도’ - 텍스트의 슬롯 발생 횟수입니다.

‘역 문서 빈도’ - 전체 텍스트에서 슬롯이 제공하는 정보의 공통 또는 드문 정도를 결정하여 슬롯이 제공하는 정보를 측정하는 비율(역 상대 슬롯 빈도의 로그)입니다.

‘용어 빈도-역 문서 빈도’ - 제품 용어 빈도 및 역 문서 빈도입니다.

변환을 정의하는 maml 개체입니다.

작성자

Microsoft Corporation Microsoft Technical Support

추가 정보

ngramCount, ngramHash, rxFastTrees, rxFastForest, rxNeuralNet, rxOneClassSvm, rxLogisticRegression.


 trainReviews <- data.frame(review = c( 
         "This is great",
         "I hate it",
         "Love it",
         "Do not like it",
         "Really like it",
         "I hate it",
         "I like it a lot",
         "I kind of hate it",
         "I do like it",
         "I really hate it",
         "It is very good",
         "I hate it a bunch",
         "I love it a bunch",
         "I hate it",
         "I like it very much",
         "I hate it very much.",
         "I really do love it",
         "I really do hate it",
         "Love it!",
         "Hate it!",
         "I love it",
         "I hate it",
         "I love it",
         "I hate it",
         "I love it"),
      like = c(TRUE, FALSE, TRUE, FALSE, TRUE,
         FALSE, TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE,
         FALSE, TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE, 
         FALSE, TRUE, FALSE, TRUE), stringsAsFactors = FALSE
     )

     testReviews <- data.frame(review = c(
         "This is great",
         "I hate it",
         "Love it",
         "Really like it",
         "I hate it",
         "I like it a lot",
         "I love it",
         "I do like it",
         "I really hate it",
         "I love it"), stringsAsFactors = FALSE)


 outModel <- rxLogisticRegression(like ~ reviewTran, data = trainReviews,
     mlTransforms = list(featurizeText(vars = c(reviewTran = "review"),
     stopwordsRemover = stopwordsDefault(), keepPunctuations = FALSE)))
 # 'hate' and 'love' have non-zero weights
 summary(outModel)

 # Use the model to score
 scoreOutDF5 <- rxPredict(outModel, data = testReviews, 
     extraVarsToWrite = "review")
 scoreOutDF5