Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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)
Description
Bir model eğitilmeden önce veri üzerinde yapılabilen metin dönüşümleri.
Ayrıntılar
Dönüşüm, featurize_text verilen bir metin korpusundan n-gram olarak adlandırılan ardışık kelime dizilerinden oluşan bir torba oluşturur.
Bunu iki şekilde yapabilir:
n-gramlık bir sözlük oluşturup sözlükteki ID'yi torbadaki indeks olarak kullanmak;
Her n-gramı hash yapın ve hash değerini torbadaki indeks olarak kullanın.
Hashing'in amacı, değişken uzunluktaki metin belgelerini eşit uzunlukta sayısal özellik vektörlerine dönüştürmek, boyut küçültmesini desteklemek ve özellik ağırlıklarının aramasını hızlandırmaktır.
Metin dönüşümü metin giriş sütunlarına uygulanır. Dil algılama, tokenizasyon, durdurma kelimeleri çıkarma, metin normalizasyonu ve özellik üretimi sunar. Varsayılan olarak aşağıdaki dilleri destekler: İngilizce, Fransızca, Almanca, Flemenkçe, İtalyanca, İspanyolca ve Japonca.
n-gramlar sayım vektörleri olarak temsil edilir; vektör yuvaları ya n-gramlara () n_gramile oluşturulmuş, ya da onların hash'larına (kullanılarak n_gram_hasholuşturulan) karşılık gelir. Ngramların vektör uzayına gömülmesi, içeriklerinin verimli bir şekilde karşılaştırılmasını sağlar.
Vektördeki slot değerleri aşağıdaki faktörlerle ağırlaştırılabilir:
terim sıklığı - Metinde slotun yer alma sayısı
ters belge frekansı - Bir slotun sağladığı bilgiyi tüm metin boyunca ne kadar yaygın veya nadir olduğunu belirleyerek ölçen bir oran (ters göreli slot frekansının logaritması).
terim frekans-ters belge frekansı - ürün terimi frekansı ve ters belge frekansı.
Arguments
Cols
Dönüştürülecek bir karakter dizisi veya değişken isimleri listesi. Eğer dict, anahtarlar oluşturulacak yeni değişkenlerin isimlerini temsil eder.
language
Veri setinde kullanılan dili belirtir. Aşağıdaki değerler desteklenir:
"AutoDetect": otomatik dil algılama için."English""French""German""Dutch""Italian""Spanish""Japanese"
stopwords_remover
Kullanılacak durağaç çıkarıcıyı belirtir. Desteklenen üç seçenek vardır:
Hiçbiri: Hiçbir durbalayıcı kullanılmıyor.
predefined: Microsoft Office'ten en yaygın kelimeleri içeren önceden derlenmiş bir dil özel, durak kelimeler listesi kullanılır.custom: Kullanıcı tarafından tanımlanan bir durdurucu kelime listesi. Aşağıdaki seçeneği kabul eder:stopword.
Varsayılan değer olarak Hiçbiri kullanılır.
kasa
Değişmez kültürün kuralları kullanılarak metin kasası. Aşağıdaki değerleri alır:
"Lower""Upper""None"
"Lower" varsayılan değerdir.
keep_diacritics
False diyakritik işaretleri kaldırmak; True diyakritik işaretleri korumak için.
False varsayılan değerdir.
keep_punctuations
False noktalama işaretlerini kaldırmak; True noktalama işaretlerini korumak için.
True varsayılan değerdir.
keep_numbers
False sayıları kaldırmak; True sayıları korumak için.
True varsayılan değerdir.
dictionary
Aşağıdaki seçenekleri kabul eden izin verilen terimler sözlüğü:
term: İsteğe bağlı bir karakter vektörüdür terimler veya kategoriler.dropUnknowns: Eşyaları bırak.sort: Eşyaların vektörize edildiğinde nasıl sıralanacağını belirtir. İki sıralama desteklenir:-
"occurrence": eşyalar karşılaşılan sırayla görünür. -
"value": öğeler varsayılan karşılaştırmalarına göre sıralanır. Örneğin, metin sıralaması büyük harf duyarlı olur (örneğin, 'A', sonra 'Z', ardından 'a').
-
Varsayılan değer olarak Hiçbiri kullanılır. Stopword listesi, sözlük izin listesine göre öncelikli olduğundan, durdurucu kelimeler sözlük terimleri alallist'e girmeden önce kaldırılır.
word_feature_extractor
Özellik çıkarma argümanları kelimesini belirtir. İki farklı özellik çıkarma mekanizması vardır:
n_gram(): Sayıya dayalı özellik çıkarımı (WordBag'e eşdeğer). Aşağıdaki seçenekleri kabul eder:max_num_termsveweighting.n_gram_hash(): Hashing tabanlı özellik çıkarımı (WordHashBag'e eşdeğer). Aşağıdaki seçenekleri kabul eder:hash_bits,seed,orderedveinvert_hash.
n_gram varsayılan değerdir.
char_feature_extractor
Karakter özelliği çıkarma argümanlarını belirtir. İki farklı özellik çıkarma mekanizması vardır:
n_gram(): Sayıya dayalı özellik çıkarımı (WordBag'e eşdeğer). Aşağıdaki seçenekleri kabul eder:max_num_termsveweighting.n_gram_hash(): Hashing tabanlı özellik çıkarımı (WordHashBag'e eşdeğer). Aşağıdaki seçenekleri kabul eder:hash_bits,seed,orderedveinvert_hash.
Varsayılan değer olarak Hiçbiri kullanılır.
vector_normalizer
Vektörleri (sıraları) birim normuna yeniden ölçeklendirerek tek tek normalize edin. Aşağıdaki değerlerden birini alır:
"None""L2""L1""LInf"
"L2" varsayılan değerdir.
kargs
İşlem altyapısına gönderilen ek bağımsız değişkenler.
İadeler
Dönüşümü tanımlayan bir nesne.
Example
'''
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())
Çıktı:
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
N-gram çıkarıcılar
microsoftml.n_gram: N gram kullanarak metni özelliklere dönüştürür
microsoftml.n_gram_hash: Karma n gram kullanarak metni özelliklere dönüştürür
Durbageçiriciler
microsoftml.custom
kaldırır: Özel stopwords microsoftml.önceden tanımlanmış: Önceden tanımlanmış stopwords kaldırır
İlgili içerik
- microsoftml.n_gram: N gram kullanarak metni özelliklere dönüştürür
- microsoftml.n_gram_hash: Karma n gram kullanarak metni özelliklere dönüştürür
- microsoftml.custom
kaldırır: Özel stopwords - microsoftml.önceden tanımlanmış: Önceden tanımlanmış stopwords kaldırır
- microsoftml.get_sentiment: Yaklaşım analizi