Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
Transformacje tekstowe, które można wykonać na danych przed trenowaniem modelu.
Szczegóły
Transformacja featurize_text generuje worek liczenia ciągów kolejnych słów, zwanych n-gramami, z danego korpusu tekstu.
Są dwa sposoby, w jakie może to zrobić:
zbuduj słownik n-gramów i użyj identyfikatora ze słownika jako indeksu w torbie;
zhashuj każdy n-gram i użyj wartości hash jako indeksu w worku.
Celem haszowania jest konwersja dokumentów tekstowych o zmiennej długości na wektory cech numeryczne o równej długości, wspieranie redukcji wymiarowości oraz szybsze wyszukiwanie wag cech.
Transformacja tekstu jest stosowana do kolumn wejściowych tekstu. Oferuje wykrywanie języka, tokenizację, usuwanie słów stopowych, normalizację tekstu oraz generowanie cech. Domyślnie obsługuje następujące języki: angielski, francuski, niemiecki, niderlandzki, włoski, hiszpański i japoński.
N-gramy są reprezentowane jako wektory liczenia, przy czym sloty wektorowe odpowiadają albo n-gramom (utworzonym za pomocą n_gram), albo ich skrótom (utworzonym za pomocą n_gram_hash). Osadzenie ngramów w przestrzeni wektorowej pozwala na efektywne porównanie ich zawartości.
Wartości slotów w wektorze można ważyć według następujących czynników:
częstotliwość wyrazu – liczba wystąpień slotu w tekście
odwrotna częstość dokumentów – stosunek (logarytm odwrotnej względnej częstotliwości slotów), który mierzy informacje dostarczane przez slot, określając, jak powszechne lub rzadkie są w całym tekście.
Częstotliwość odwrotna częstotliwości dokumentu – częstotliwość produktu oraz odwrotna częstotliwość dokumentu.
Arguments
Cols
Ciąg znaków lub lista nazw zmiennych do transformacji. Jeśli dict, klucze reprezentują nazwy nowych zmiennych, które mają zostać utworzone.
język
Określa język używany w zbiorze danych. Obsługiwane są następujące wartości:
"AutoDetect": dla automatycznego wykrywania języka."English""French""German""Dutch""Italian""Spanish""Japanese"
stopwords_remover
Określa usuwacz słów stopowych do użycia. Obsługiwane są trzy opcje:
Brak: Nie używa się usuwania słów stopowych.
predefined: Używana jest wstępnie skompilowana lista słów stopowych specyficznych dla języka, która obejmuje najczęściej używane słowa z Microsoft Office.custom: Lista słów stopowych zdefiniowana przez użytkownika. Akceptuje następującą opcję:stopword.
Wartość domyślna to Brak.
przypadek
Obudowanie tekstu według reguł kultury inwariantnej. Przybiera następujące wartości:
"Lower""Upper""None"
Wartość domyślna to "Lower".
keep_diacritics
False usuwanie znaków diakrytycznych; True aby zachować znaki diakrytyczne. Wartość domyślna to False.
keep_punctuations
False usunięcie interpunkcji; True aby zachować interpunkcję. Wartość domyślna to True.
keep_numbers
False usuwanie liczb; True by zachować liczby. Wartość domyślna to True.
dictionary
Słownik dozwolonych terminów akceptujących następujące opcje:
term: Opcjonalny wektor znaków terminów lub kategorii.dropUnknowns: Upuszczaj przedmioty.sort: Określa, jak ustawić elementy po wektoryzacji. Wspierane są dwa kolejności:-
"occurrence": przedmioty pojawiają się w kolejności spotkania. -
"value": elementy są sortowane według domyślnego porównania. Na przykład sortowanie tekstu będzie zależało od wielkości liter (np. 'A', potem 'Z', a potem 'a').
-
Wartość domyślna to Brak. Należy zauważyć, że lista haseł stopowych ma pierwszeństwo przed listą dozwolonych słownika, ponieważ hasła są usuwane zanim terminy słownikowe zostaną dopuszczone.
word_feature_extractor
Określa słowo argumenty ekstrakcji cech. Istnieją dwa różne mechanizmy wyodrębniania cech:
n_gram(): Ekstrakcja cech oparta na liczbie (odpowiednik WordBag). Akceptuje następujące opcje:max_num_termsorazweighting.n_gram_hash(): Ekstrakcja cech oparta na hasze (odpowiednik WordHashBag). Akceptuje następujące opcje:hash_bits,seed,orderedorazinvert_hash.
Wartość domyślna to n_gram.
char_feature_extractor
Określa argumenty ekstrakcji cech postaci. Istnieją dwa różne mechanizmy wyodrębniania cech:
n_gram(): Ekstrakcja cech oparta na liczbie (odpowiednik WordBag). Akceptuje następujące opcje:max_num_termsorazweighting.n_gram_hash(): Ekstrakcja cech oparta na hasze (odpowiednik WordHashBag). Akceptuje następujące opcje:hash_bits,seed,orderedorazinvert_hash.
Wartość domyślna to Brak.
vector_normalizer
Normalizuj wektory (wiersze) indywidualnie, przeskalowując je do normy jednostkowej. Przyjmuje jedną z następujących wartości:
"None""L2""L1""LInf"
Wartość domyślna to "L2".
kargs
Dodatkowe argumenty wysyłane do aparatu obliczeniowego.
Zwroty
Obiekt definiujący przekształcenie.
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())
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
Ekstraktory N-gramów
microsoftml.n_gram: konwertuje tekst na funkcje przy użyciu n-gramów
microsoftml.n_gram_hash: konwertuje tekst na funkcje przy użyciu skrótów n-gramów
Usuwacze słów stopowych
microsoftml.custom: usuwa niestandardowe stopwords
microsoftml.predefined: Usuwa wstępnie zdefiniowane stopwords
Treści powiązane
- microsoftml.n_gram: konwertuje tekst na funkcje przy użyciu n-gramów
- microsoftml.n_gram_hash: konwertuje tekst na funkcje przy użyciu skrótów n-gramów
- microsoftml.custom: usuwa niestandardowe stopwords
- microsoftml.predefined: Usuwa wstępnie zdefiniowane stopwords
- microsoftml.get_sentiment: analiza tonacji