stopwordsDefault: Transformasi Teks Pembelajaran Mesin
Transformasi teks yang dapat dilakukan pada data sebelum melatih model.
Penggunaan
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", ...)
Argumen
dataFile
karakter: <string>. File data yang berisi istilah (data formulir pendek).
terms
Vektor karakter opsional dari istilah atau kategori.
sort
Menentukan cara mengurutkan item saat di-vektorisasi. Dua pesanan didukung:
"occurrence"
: item muncul dalam urutan yang ditemui."value"
: item diurutkan sesuai dengan perbandingan defaultnya. Misalnya, pengurutan teks akan peka huruf besar/kecil (misalnya, 'A' lalu 'Z' lalu 'a').
vars
Daftar vektor karakter bernama dari nama variabel input dan nama variabel output. Perhatikan bahwa variabel input harus berjenis yang sama. Untuk pemetaan satu-ke-satu antara variabel input dan output, vektor karakter bernama dapat digunakan.
language
Menentukan bahasa yang digunakan dalam himpunan data. Nilai berikut ini didukung:
"AutoDetect"
: untuk deteksi bahasa otomatis."English"
."French"
."German"
."Dutch"
."Italian"
."Spanish"
."Japanese"
.
stopwordsRemover
Menentukan penghapus kata henti yang akan digunakan. Ada tiga opsi yang didukung:
NULL
Tidak ada stopwords remover yang digunakan.stopwordsDefault
: Daftar kata berhenti khusus bahasa yang telah dikommpilasikan sebelumnya digunakan yang menyertakan kata-kata yang paling umum dari Microsoft Office.stopwordsCustom
: Daftar stopword yang ditentukan pengguna. Ini menerima opsi berikut:dataFile
.
Nilai defaultnya adalahNULL
.
case
Casing teks menggunakan aturan budaya invarian. Mengambil nilai berikut:
"lower"
."upper"
."none"
.
Nilai defaultnya adalah"lower"
.
keepDiacritics
FALSE
untuk menghapus tanda diakritik; TRUE
untuk mempertahankan tanda diakritik. Nilai defaultnya adalah FALSE
.
keepPunctuations
FALSE
untuk menghapus tanda baca; TRUE
untuk mempertahankan tanda baca. Nilai defaultnya adalah TRUE
.
keepNumbers
FALSE
untuk menghapus angka; TRUE
untuk mempertahankan angka. Nilai defaultnya adalah TRUE
.
dictionary
Persyaratan termDictionary
yang diizinkan yang menerima opsi berikut:
terms
,dataFile
, dansort
.
Nilai defaultnya adalahNULL
. Perhatikan bahwa daftar stopword lebih diutamakan daripada daftar yang diizinkan kamus karena kata henti dihapus sebelum istilah kamus diizinkan.
wordFeatureExtractor
Menentukan argumen ekstraksi fitur kata. Ada dua mekanisme ekstraksi fitur yang berbeda:
- ngramCount: Ekstraksi fitur berbasis hitungan (setara dengan WordBag). Ini menerima opsi berikut:
maxNumTerms
danweighting
. - ngramHash: Ekstraksi fitur berbasis hashing (setara dengan WordHashBag). Ini menerima opsi berikut:
hashBits
, ,seed
ordered
daninvertHash
.
Nilai defaultnya adalahngramCount
.
charFeatureExtractor
Menentukan argumen ekstraksi fitur karakter. Ada dua mekanisme ekstraksi fitur yang berbeda:
- ngramCount: Ekstraksi fitur berbasis hitungan (setara dengan WordBag). Ini menerima opsi berikut:
maxNumTerms
danweighting
. - ngramHash: Ekstraksi fitur berbasis hashing (setara dengan WordHashBag). Ini menerima opsi berikut:
hashBits
, ,seed
ordered
daninvertHash
.
Nilai defaultnya adalahNULL
.
vectorNormalizer
Menormalkan vektor (baris) satu per satu dengan menskalakan ulang ke norma unit. Mengambil salah satu nilai berikut:
"none"
."l2"
."l1"
."linf"
. Nilai defaultnya adalah"l2"
.
...
Argumen tambahan dikirim ke mesin komputasi.
Detail
Transformasi featurizeText
menghasilkan sekantong hitungan
urutan kata-kata berturut-turut, yang disebut n-gram, dari korpus teks tertentu.
Ada dua cara untuk melakukan ini:
membangun kamus n-gram dan menggunakan ID dalam kamus sebagai indeks di tas;
hash setiap n-gram dan gunakan nilai hash sebagai indeks dalam tas.
Tujuan hashing adalah untuk mengonversi dokumen teks panjang variabel menjadi vektor fitur numerik yang sama, untuk mendukung pengurangan dimensi dan untuk membuat pencarian bobot fitur lebih cepat.
Transformasi teks diterapkan ke kolom input teks. Ini menawarkan deteksi bahasa, tokenisasi, stopwords menghapus, normalisasi teks, dan pembuatan fitur. Ini mendukung bahasa berikut secara default: Inggris, Prancis, Jerman, Belanda, Italia, Spanyol dan Jepang.
N-gram direpresentasikan sebagai vektor hitungan, dengan slot vektor yang sesuai baik untuk n-gram (dibuat menggunakan ngramCount
) atau hashnya (dibuat menggunakan ngramHash
). Menyematkan ngram dalam ruang vektor memungkinkan kontennya dibandingkan dengan cara yang efisien.
Nilai slot dalam vektor dapat ditimbang dengan faktor-faktor berikut:
frekuensi istilah - Jumlah kemunculan slot dalam teks
frekuensi dokumen terbalik - Rasio (logaritma frekuensi slot relatif terbalik) yang mengukur informasi yang disediakan slot dengan menentukan seberapa umum atau langka di seluruh teks.
frekuensi istilah-frekuensi terbalik dokumen - frekuensi istilah produk dan frekuensi dokumen terbalik.
Nilai
Objek maml
yang menentukan transformasi.
Penulis
Microsoft Corporation Microsoft Technical Support
Lihat juga
ngramCount, ngramHash, rxFastTrees, rxFastForest, rxNeuralNet, rxOneClassSvm, rxLogisticRegression.
Contoh
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