Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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
Texttransformationen, die auf Daten vor dem Training eines Modells durchgeführt werden können.
Details
Die Transformation featurize_text erzeugt einen Beutel mit Zählungen von aufeinanderfolgenden Wörterfolgen, sogenannte n-Gramm, aus einem gegebenen Textkorpus.
Es gibt zwei Möglichkeiten, wie dies möglich ist:
ein Wörterbuch von n-Grammen erstellen und die ID im Wörterbuch als Index im Beutel verwenden;
Hashe jedes n-Gramm und verwende den Hashwert als Index im Beutel.
Der Zweck des Hashings ist es, Textdokumente mit variabler Länge in numerische Merkmalsvektoren gleich lang umzuwandeln, um die Dimensionsreduktion zu unterstützen und die Nachschlage von Merkmalsgewichten zu beschleunigen.
Die Texttransformation wird auf Texteingabespalten angewendet. Es bietet Spracherkennung, Tokenisierung, das Entfernen von Stoppwörtern, Textnormalisierung und Feature-Generierung. Standardmäßig unterstützt es folgende Sprachen: Englisch, Französisch, Deutsch, Niederländisch, Italienisch, Spanisch und Japanisch.
Die n-Gramm werden als Zählvektoren dargestellt, wobei Vektorslots entweder n-Gramm (erstellt mit n_gram) oder deren Hashes (erstellt mit n_gram_hash) entsprechen. Das Einbetten von Ngrammen in einen Vektorraum ermöglicht es, deren Inhalte effizient zu vergleichen.
Die Schlitzwerte im Vektor können nach folgenden Faktoren gewichtet werden:
Begriffshäufigkeit – Die Anzahl der Vorkommen des Slots im Text
inverse Dokumentfrequenz – Ein Verhältnis (der Logarithmus der inversen relativen Schlitzfrequenz), das die Informationen misst, die ein Schlitz liefert, indem bestimmt wird, wie häufig oder selten sie im gesamten Text vorkommt.
Term Frequenz – Inverse Dokumentfrequenz – Die Produkttermfrequenz und die inverse Dokumentfrequenz.
Argumente
Cols
Eine Zeichenkette oder eine Liste von Variablennamen, die transformiert werden sollen. Wenn dict, repräsentieren die Schlüssel die Namen neuer zu erstellender Variablen.
Sprache
Spezifiziert die im Datensatz verwendete Sprache. Die folgenden Werte werden unterstützt:
"AutoDetect": zur automatischen Spracherkennung."English""French""German""Dutch""Italian""Spanish""Japanese"
stopwords_remover
Spezifiziert den zu verwendenden Stoppwortentferner. Es werden drei Optionen unterstützt:
Keine: Es wird kein Stoppwortentferner verwendet.
predefinedEs wird eine vorkompilierte, sprachspezifische Liste von Stoppwörtern verwendet, die die häufigsten Wörter aus Microsoft Office enthält.custom: Eine benutzerdefinierte Liste von Stopwörtern. Es akzeptiert folgende Option:stopword.
Der Standardwert ist Keiner.
Gehäuse
Textgehäuse nach den Regeln der invarianten Kultur. Nimmt folgende Werte an:
"Lower""Upper""None"
Der Standardwert ist "Lower".
keep_diacritics
False diakritische Zeichen zu entfernen; True um diakritische Zeichen zu behalten. Der Standardwert ist False.
keep_punctuations
False um Satzzeichen zu entfernen; True um die Zeichensetzung beizubehalten. Der Standardwert ist True.
keep_numbers
False um Zahlen zu entfernen; True um Zahlen zu behalten. Der Standardwert ist True.
dictionary
Ein Wörterbuch zugelassener Begriffe, das folgende Optionen akzeptiert:
term: Ein optionaler Zeichenvektor von Begriffen oder Kategorien.dropUnknowns: Gegenstände abwerfen.sort: Spezifiziert, wie Elemente bei Vektorisierung geordnet werden. Zwei Reihenfolge werden unterstützt:-
"occurrence": Gegenstände erscheinen in der angetroffenen Reihenfolge. -
"value": Die Gegenstände sind nach ihrem Standardvergleich sortiert. Zum Beispiel ist Textsortierung groß- und kleinschreibungssensitiv (z. B. 'A', dann 'Z', dann 'a').
-
Der Standardwert ist Keiner. Beachten Sie, dass die Stopwords-Liste Vorrang vor der Dictionary-Allowlist hat, da die Stopwords entfernt werden, bevor die Wörterbuchbegriffe zugelassen werden.
word_feature_extractor
Spezifiziert die Argumente zur Feature-Extraktion. Es gibt zwei verschiedene Mechanismen zur Extraktion von Merkmalen:
n_gram(): Zählbasierte Feature-Extraktion (äquivalent zu WordBag). Sie akzeptiert folgende Optionen:max_num_termsundweighting.n_gram_hash(): Hash-basierte Feature-Extraktion (äquivalent zu WordHashBag). Sie akzeptiert folgende Optionen:hash_bits,seed,orderedundinvert_hash.
Der Standardwert ist n_gram.
char_feature_extractor
Spezifiziert die Argumente zur Extraktion der Zeichenmerkmale. Es gibt zwei verschiedene Mechanismen zur Extraktion von Merkmalen:
n_gram(): Zählbasierte Feature-Extraktion (äquivalent zu WordBag). Sie akzeptiert folgende Optionen:max_num_termsundweighting.n_gram_hash(): Hash-basierte Feature-Extraktion (äquivalent zu WordHashBag). Sie akzeptiert folgende Optionen:hash_bits,seed,orderedundinvert_hash.
Der Standardwert ist Keiner.
vector_normalizer
Normalisieren Sie Vektoren (Zeilen) einzeln, indem Sie sie auf die Einheitsnorm neu skalieren. Nimmt einen der folgenden Werte an:
"None""L2""L1""LInf"
Der Standardwert ist "L2".
Kargs
Zusätzliche Argumente, die an das Computemodul gesendet werden.
Rückgaben
Ein Objekt, das die Transformation definiert.
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())
Ausgabe:
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-Gramm-Extraktoren
microsoftml.n_gram: Wandelt Text mithilfe von n-Gramm- in Features um.
microsoftml.n_gram_hash: Konvertiert Text in Features mit Hash-n-Gramm-
Stopwords-Entferner
Verwandte Inhalte
- microsoftml.n_gram: Wandelt Text mithilfe von n-Gramm- in Features um.
- microsoftml.n_gram_hash: Konvertiert Text in Features mit Hash-n-Gramm-
- microsoftml.custom: Entfernt benutzerdefinierte Stoppwörter
- microsoftml.vordefinierten: Entfernt vordefinierte Stoppwörter
- microsoftml.get_sentiment: Stimmungsanalyse