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 adalah NULL.

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, dan
  • sort.
    Nilai defaultnya adalah NULL. 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 dan weighting.
  • ngramHash: Ekstraksi fitur berbasis hashing (setara dengan WordHashBag). Ini menerima opsi berikut: hashBits, , seedordered dan invertHash.
    Nilai defaultnya adalah ngramCount.

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 dan weighting.
  • ngramHash: Ekstraksi fitur berbasis hashing (setara dengan WordHashBag). Ini menerima opsi berikut: hashBits, , seedordered dan invertHash.
    Nilai defaultnya adalah NULL.

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