stopwordsDefault: Machine Learning テキスト変換

モデルをトレーニングする前にデータに対して実行できるテキスト変換。

使用方法

  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

ベクトル化時に項目を並べ替える方法を指定します。 次の 2 つの順序がサポートされています。

  • "occurrence": 項目は発生した順序で表示されます。
  • "value": 項目は、既定の比較に従って並べ替えられます。 たとえば、テキストの並べ替えでは大文字と小文字が区別されます (たとえば、'A'、'Z'、'a' の順になります)。

vars

入力変数名の文字ベクトルの名前付きリストと、出力変数の名前。 入力変数は同じ型である必要があることに注意してください。 入力変数と出力変数の間の 1 対 1 のマッピングでは、名前付き文字ベクトルを使用できます。

language

データ セットで使用される言語を指定します。 サポートされている値を次に示します。

  • "AutoDetect": 自動言語検出用。
  • "English".
  • "French".
  • "German".
  • "Dutch".
  • "Italian".
  • "Spanish".
  • "Japanese".

stopwordsRemover

使用するストップワード リムーバーを指定します。 次の 3 つのオプションがサポートされています。

  • 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

単語の特徴抽出引数を指定します。 特徴抽出メカニズムには、次の 2 つがあります。

  • ngramCount: カウントに基づく特徴抽出 (WordBag と同等)。 maxNumTerms および weighting オプションを受け入れます。
  • ngramHash: ハッシュベースの特徴抽出 (WordHashBag と同等)。 hashBitsseedordered および invertHash オプションを受け入れます。
    既定値は ngramCount です。

charFeatureExtractor

char の特徴抽出引数を指定します。 特徴抽出メカニズムには、次の 2 つがあります。

  • ngramCount: カウントに基づく特徴抽出 (WordBag と同等)。 maxNumTerms および weighting オプションを受け入れます。
  • ngramHash: ハッシュベースの特徴抽出 (WordHashBag と同等)。 hashBitsseedordered および invertHash オプションを受け入れます。
    既定値は NULL です。

vectorNormalizer

ベクトル (行) を単位 norm に再スケーリングすることで、個別に正規化します。 次のいずれかの値を取ります。

  • "none".
  • "l2".
  • "l1".
  • "linf". 既定値は "l2" です。

...

コンピューティング エンジンに送信される追加の引数。

詳細

featurizeText 変換では、指定したテキストのコーパスから、
n-gram と呼ばれる連続した単語のシーケンスの数のバッグが生成されます。 これを実行できる方法は次の 2 つです。

N-gram の辞書を作成し、その ID をバッグのインデックスとして使用する。

各 N-gram をハッシュし、バッグのインデックスとしてハッシュ値を使用する。

ハッシュの目的は、可変長のテキスト文書を等しい長さの数値特徴ベクトルに変換すること、次元削減をサポートすること、および特徴の重みをよりすばやく参照できるようにすることです。

テキスト変換はテキスト入力列に適用されます。 言語検出、トークン化、ストップワードの削除、テキストの正規化、特徴生成が提供されます。 既定では、英語、フランス語、ドイツ語、オランダ語、イタリア語、スペイン語、日本語の各言語がサポートされています。

N-gram はカウント ベクトルとして表されます。このベクトル スロットは、N-gram (ngramCount を使用して作成) またはハッシュ (ngramHash を使用して作成) のいずれかに対応しています。 ベクトル空間に ngram を埋め込むと、効率的にそれらのコンテンツを比較できます。 ベクトルのスロット値は、次の係数で重み付けできます。

term frequency - テキスト内のスロットの出現回数

inverse document frequency - テキスト全体に共通するかどうかを判断することで、スロットによって提供される情報を測定する比率 (逆の相対スロット頻度の対数)。

term frequency-inverse document frequency - 用語の出現頻度と逆文書頻度の積。

変換を定義する maml オブジェクト。

作成者

Microsoft Corporation Microsoft Technical Support

こちらもご覧ください

ngramCountngramHashrxFastTreesrxFastForestrxNeuralNetrxOneClassSvmrxLogisticRegression

使用例


 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