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 と同等)。
hashBits
、seed
、ordered
およびinvertHash
オプションを受け入れます。
既定値はngramCount
です。
charFeatureExtractor
char の特徴抽出引数を指定します。 特徴抽出メカニズムには、次の 2 つがあります。
- ngramCount: カウントに基づく特徴抽出 (WordBag と同等)。
maxNumTerms
およびweighting
オプションを受け入れます。 - ngramHash: ハッシュベースの特徴抽出 (WordHashBag と同等)。
hashBits
、seed
、ordered
および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
こちらもご覧ください
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