Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
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
Текстовые преобразования, которые можно выполнить на данных до обучения модели.
Сведения
Преобразование даёт featurize_text сумку подсчётов последовательных слов, называемых n-граммами, из данного корпуса текста.
Есть два способа:
создать словарь n-грамм и использовать ID в словаре как индекс в пакете;
Хешите каждый n-грамм и используйте хеш-значение в качестве индекса в мешке.
Цель хеширования — преобразовать текстовые документы переменной длины в числовые векторы признаков равной длины, поддерживать уменьшение размерности и ускорять поиск весов признаков.
Преобразование текста применяется к вводным столбцам текста. Он предлагает обнаружение языка, токенизацию, удаление стопвордов, нормализацию текста и генерацию признаков. По умолчанию поддерживаются следующие языки: английский, французский, немецкий, голландский, итальянский, испанский и японский.
n-граммы представлены как векторы счёта, при этом слоты соответствуют либо n-граммам (созданным с помощью n_gram), либо их хешам (созданным с помощью n_gram_hash). Вложение ngram в векторное пространство позволяет эффективно сравнивать их содержимое
Значения слотов в векторе можно взвесить по следующим факторам:
частота термина — количество появления слота в тексте
Обратная частота документа — отношение (логарифм обратной относительной частоты слота), которое измеряет информацию, предоставляемую слотом, определяя, насколько она распространена или редка во всём тексте.
частота термина — обратная частота документа — частота произведения термина и обратная частота документа.
Arguments
cols
Строка символов или список имён переменных для трансформации. Если dict, ключи представляют имена новых переменных, которые нужно создать.
язык
Указывает язык, используемый в наборе данных. Поддерживаются следующие значения:
"AutoDetect": для автоматического распознавания языка."English""French""German""Dutch""Italian""Spanish""Japanese"
stopwords_remover
Указывает удалитель стопвордов для использования. Поддерживаются три варианта:
Нет: Средство для удаления стопвордов не применяется.
predefined: Используется заранее скомпилированный языково-специфический список стоп-слов, включающий наиболее распространённые слова из Microsoft Office.custom: Пользовательский список стопвордов. Он принимает следующий вариант:stopword.
Значение по умолчанию — None.
корпус
Текстовое оформление с использованием правил инвариантной культуры. Принимает следующие значения:
"Lower""Upper""None"
Значение по умолчанию — "Lower".
keep_diacritics
False для удаления диакритических знаков; True сохранять диакритические знаки. Значение по умолчанию — False.
keep_punctuations
False для удаления знаков препинания; True чтобы сохранить пунктуацию. Значение по умолчанию — True.
keep_numbers
False для удаления чисел; True чтобы сохранить численность. Значение по умолчанию — True.
dictionary
Словарь допустимых терминов, принимающий следующие варианты:
term: Необязательный вектор символов терминов или категорий.dropUnknowns: Сбрасывайте предметы.sort: Указывает, как упорядочивать элементы при векторизации. Поддерживаются два порядка:-
"occurrence": предметы появляются в порядке встречи. -
"value": элементы отсортированы по их стандартному сравнению. Например, сортировка текста будет чувствительна к регистру (например, 'A', затем 'Z', затем 'a').
-
Значение по умолчанию — None. Обратите внимание, что список стопвордов имеет приоритет над словарным списком разрешений, так как стоп-слова удаляются до того, как словарные термины попадают в список разрешений.
word_feature_extractor
Задаёт аргументы извлечения признаков слова. Существует два различных механизма извлечения признаков:
n_gram(): Извлечение признаков на основе подсчёта (эквивалент WordBag). Он принимает следующие варианты:max_num_termsиweighting.n_gram_hash(): Извлечение признаков на основе хеширования (эквивалент WordHashBag). Он принимает следующие варианты:hash_bits,seed,orderedиinvert_hash.
Значение по умолчанию — n_gram.
char_feature_extractor
Задаёт аргументы extraction feature char. Существует два различных механизма извлечения признаков:
n_gram(): Извлечение признаков на основе подсчёта (эквивалент WordBag). Он принимает следующие варианты:max_num_termsиweighting.n_gram_hash(): Извлечение признаков на основе хеширования (эквивалент WordHashBag). Он принимает следующие варианты:hash_bits,seed,orderedиinvert_hash.
Значение по умолчанию — None.
vector_normalizer
Нормализуйте векторы (строки) по отдельности, перемасштабируя их до единичной нормы. Принимает одно из следующих значений:
"None""L2""L1""LInf"
Значение по умолчанию — "L2".
карги
Дополнительные аргументы, отправленные в подсистему вычислений.
Returns
Объект, определяющий преобразование.
Пример
'''
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())
Выходные данные:
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-граммовые экстракторы
microsoftml.n_gram: преобразует текст в функции с помощью n-граммов
microsoftml.n_gram_hash: преобразует текст в функции с помощью хэшированных n-граммов
Удаление стопвордов
Связанные материалы
- microsoftml.n_gram: преобразует текст в функции с помощью n-граммов
- microsoftml.n_gram_hash: преобразует текст в функции с помощью хэшированных n-граммов
- microsoftml.custom: удаляет пользовательские стоп-слова
- microsoftml.predefined: удаление предопределенных стоп-слов
- microsoftml.get_sentiment: анализ тональности