Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Usage
microsoftml.featurize_text(cols: [str, dict, list], language: ['AutoDetect',
'English', 'French', 'German', 'Dutch', 'Italian', 'Spanish',
'Japanese'] = 'English', stopwords_remover=None, case: ['Lower',
'Upper', 'None'] = 'Lower', keep_diacritics: bool = False,
keep_punctuations: bool = True, keep_numbers: bool = True,
dictionary: dict = None, word_feature_extractor={'Name': 'NGram',
'Settings': {'Weighting': 'Tf', 'MaxNumTerms': [10000000],
'NgramLength': 1, 'AllLengths': True, 'SkipLength': 0}},
char_feature_extractor=None, vector_normalizer: ['None', 'L1', 'L2',
'LInf'] = 'L2', **kargs)
Deskripsi
Transformasi teks yang dapat dilakukan pada data sebelum melatih model.
Rincian
Transformasi ini featurize_text menghasilkan kantong hitungan urutan kata berurutan, yang disebut n-gram, dari korpus teks tertentu.
Ada dua cara yang bisa dilakukan ini:
membuat kamus dari n-gram dan menggunakan ID dalam kamus sebagai indeks dalam tas;
Hash setiap n-gram dan gunakan nilai hash sebagai indeks dalam tas.
Tujuan hashing adalah untuk mengubah dokumen teks berpanjang variabel menjadi vektor fitur numerik dengan panjang sama, mendukung pengurangan dimensi, dan mempercepat pencarian bobot fitur.
Transformasi teks diterapkan pada kolom input teks. Aplikasi ini menawarkan deteksi bahasa, tokenisasi, penghapusan kata stopword, normalisasi teks, dan pembuatan fitur. Secara default, sistem ini mendukung bahasa-bahasa berikut: Inggris, Prancis, Jerman, Belanda, Italia, Spanyol, dan Jepang.
N-gram direpresentasikan sebagai vektor hitung, dengan slot vektor yang sesuai dengan n-gram (dibuat menggunakan n_gram) atau dengan hash mereka (dibuat menggunakan n_gram_hash). Menyisipkan ngram dalam ruang vektor memungkinkan isinya dibandingkan secara efisien.
Nilai slot dalam vektor dapat diberi bobot berdasarkan faktor-faktor berikut:
frekuensi istilah - Jumlah kemunculan slot dalam teks
frekuensi dokumen invers - Rasio (logaritma dari frekuensi slot relatif terbalik) yang mengukur informasi yang diberikan slot dengan menentukan seberapa umum atau langka informasi tersebut di seluruh teks.
Frekuensi Term-Invers Dokumen Frekuensi - Frekuensi Istilah Produk dan Frekuensi Dokumen Terbalik.
Arguments
Cols
String karakter atau daftar nama variabel yang akan ditransformasi. Jika dict, kunci tersebut mewakili nama-nama variabel baru yang akan dibuat.
bahasa
Menentukan bahasa yang digunakan dalam set data. Nilai berikut ini didukung:
"AutoDetect": untuk deteksi bahasa otomatis."English""French""German""Dutch""Italian""Spanish""Japanese"
stopwords_remover
Menentukan penghapus kata henti yang akan digunakan. Ada tiga opsi yang didukung:
Tidak ada: Tidak menggunakan penghapus kata stopword.
predefined: Daftar kata henti khusus bahasa yang telah dikompilasi sebelumnya digunakan yang mencakup kata-kata paling umum dari Microsoft Office.custom: Daftar kata stopword yang didefinisikan pengguna. Aplikasi ini menerima opsi berikut:stopword.
Nilai defaultnya adalah Tidak Ada.
kasus
Huruf teks menggunakan aturan budaya invarian. Mengambil nilai-nilai berikut:
"Lower""Upper""None"
Nilai defaultnya adalah "Lower".
keep_diacritics
False untuk menghapus tanda diakritik; True untuk mempertahankan tanda diakritik. Nilai defaultnya adalah False.
keep_punctuations
False menghilangkan tanda baca; True untuk mempertahankan tanda baca. Nilai defaultnya adalah True.
keep_numbers
False untuk menghapus angka; True untuk mempertahankan jumlah. Nilai defaultnya adalah True.
dictionary
Kamus istilah yang diizinkan yang menerima opsi berikut:
term: Vektor karakter opsional dari istilah atau kategori.dropUnknowns: Menjatuhkan item.sort: Menentukan cara mengurutkan item saat divektorisasi. Dua urutan didukung:-
"occurrence": item muncul sesuai urutan yang ditemui. -
"value": item diurutkan sesuai dengan perbandingan defaultnya. Misalnya, pengurutan teks akan sensitif huruf besar/kecil (misalnya, 'A' lalu 'Z' lalu 'a').
-
Nilai defaultnya adalah Tidak Ada. Perlu dicatat bahwa daftar kata henti lebih diutamakan daripada daftar izin kamus karena kata henti dihapus sebelum istilah kamus diizinkan.
word_feature_extractor
Menentukan argumen ekstraksi fitur word. Ada dua mekanisme ekstraksi fitur yang berbeda:
n_gram(): Ekstraksi fitur berbasis hitungan (setara dengan WordBag). Ia menerima opsi berikut:max_num_termsdanweighting.n_gram_hash(): Ekstraksi fitur berbasis hashing (setara dengan WordHashBag). Ia menerima opsi berikut:hash_bits,seed,ordereddaninvert_hash.
Nilai defaultnya adalah n_gram.
char_feature_extractor
Menentukan argumen ekstraksi fitur karakter. Ada dua mekanisme ekstraksi fitur yang berbeda:
n_gram(): Ekstraksi fitur berbasis hitungan (setara dengan WordBag). Ia menerima opsi berikut:max_num_termsdanweighting.n_gram_hash(): Ekstraksi fitur berbasis hashing (setara dengan WordHashBag). Ia menerima opsi berikut:hash_bits,seed,ordereddaninvert_hash.
Nilai defaultnya adalah Tidak Ada.
vector_normalizer
Normalisasi vektor (baris) secara individual dengan mengubah skala menjadi norma satuan. Mengambil salah satu nilai berikut:
"None""L2""L1""LInf"
Nilai defaultnya adalah "L2".
karg
Argumen tambahan dikirim ke mesin komputasi.
Pengembalian Barang
Objek yang menentukan transformasi.
Contoh
'''
Example with featurize_text and rx_logistic_regression.
'''
import numpy
import pandas
from microsoftml import rx_logistic_regression, featurize_text, rx_predict
from microsoftml.entrypoints._stopwordsremover_predefined import predefined
train_reviews = pandas.DataFrame(data=dict(
review=[
"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=[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]))
test_reviews = pandas.DataFrame(data=dict(
review=[
"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"]))
out_model = rx_logistic_regression("like ~ review_tran",
data=train_reviews,
ml_transforms=[
featurize_text(cols=dict(review_tran="review"),
stopwords_remover=predefined(),
keep_punctuations=False)])
# Use the model to score.
score_df = rx_predict(out_model, data=test_reviews, extra_vars_to_write=["review"])
print(score_df.head())
Output:
Beginning processing data.
Rows Read: 25, Read Time: 0, Transform Time: 0
Beginning processing data.
Beginning processing data.
Rows Read: 25, Read Time: 0, Transform Time: 0
Beginning processing data.
Not adding a normalizer.
Beginning processing data.
Rows Read: 25, Read Time: 0, Transform Time: 0
Beginning processing data.
Beginning processing data.
Rows Read: 25, Read Time: 0, Transform Time: 0
Beginning processing data.
LBFGS multi-threading will attempt to load dataset into memory. In case of out-of-memory issues, turn off multi-threading by setting trainThreads to 1.
Warning: Too few instances to use 4 threads, decreasing to 1 thread(s)
Beginning optimization
num vars: 11
improvement criterion: Mean Improvement
L1 regularization selected 3 of 11 weights.
Not training a calibrator because it is not needed.
Elapsed time: 00:00:00.3725934
Elapsed time: 00:00:00.0131199
Beginning processing data.
Rows Read: 10, Read Time: 0, Transform Time: 0
Beginning processing data.
Elapsed time: 00:00:00.0635453
Finished writing 10 rows.
Writing completed.
review PredictedLabel Score Probability
0 This is great True 0.443986 0.609208
1 I hate it False -0.668449 0.338844
2 Love it True 0.994339 0.729944
3 Really like it True 0.443986 0.609208
4 I hate it False -0.668449 0.338844
Ekstraktor N-gram
microsoftml.n_gram: Mengonversi teks menjadi fitur menggunakan n-gram
microsoftml.n_gram_hash: Mengonversi teks menjadi fitur menggunakan n-gram yang di-hash
Penghapus kata kunci
microsoftml.custom : Menghapus stopword kustom
microsoftml.predefined : Menghapus stopword yang telah ditentukan sebelumnya
Konten terkait
- microsoftml.n_gram: Mengonversi teks menjadi fitur menggunakan n-gram
- microsoftml.n_gram_hash: Mengonversi teks menjadi fitur menggunakan n-gram yang di-hash
- microsoftml.custom : Menghapus stopword kustom
- microsoftml.predefined : Menghapus stopword yang telah ditentukan sebelumnya
- microsoftml.get_sentiment: Analisis sentimen