exponenta event banner

normalizeWords

Стебельные или лемматизированные слова

Описание

Использовать normalizeWords для сведения слов к корневой форме. Чтобы лемматизировать английские слова (уменьшить их до словарных форм), установите 'Style' опция для 'lemma'.

Функция поддерживает английский, японский, немецкий и корейский тексты.

пример

updatedDocuments = normalizeWords(documents) уменьшает количество слов в documents в корневую форму. Для текста на английском и немецком языках функция по умолчанию состоит из слов, использующих штеммер Портера для текста на английском и немецком языках соответственно. Для японского и корейского текста функция по умолчанию лемматизирует слова с помощью токенизатора MeCab.

пример

updatedWords = normalizeWords(words) сокращает каждое слово в строковом массиве words в корневую форму.

updatedWords = normalizeWords(words,'Language',language) сокращает количество слов, а также задает язык слов.

пример

___ = normalizeWords(___,'Style',style) также задает стиль нормализации. Например, normalizeWords(documents,'Style','lemma') позволяет лемматизировать слова во входных документах.

Примеры

свернуть все

Скопируйте слова в массив документов с помощью stemmer Porter.

documents = tokenizedDocument([
    "a strongly worded collection of words"
    "another collection of words"]);
newDocuments = normalizeWords(documents)
newDocuments = 
  2x1 tokenizedDocument:

    6 tokens: a strongli word collect of word
    4 tokens: anoth collect of word

Скопируйте слова в строковый массив с помощью stemmer Porter. Каждый элемент строкового массива должен быть одним словом.

words = ["a" "strongly" "worded" "collection" "of" "words"];
newWords = normalizeWords(words)
newWords = 1x6 string
    "a"    "strongli"    "word"    "collect"    "of"    "word"

Лемматизация слов в массиве документов.

documents = tokenizedDocument([
    "I am building a house."
    "The building has two floors."]);
newDocuments = normalizeWords(documents,'Style','lemma')
newDocuments = 
  2x1 tokenizedDocument:

    6 tokens: i be build a house .
    6 tokens: the build have two floor .

Чтобы улучшить лемматизацию, сначала добавьте детали части речи в документы с помощью addPartOfSpeechDetails функция. Например, если документы содержат детали речи, то normalizeWords уменьшает единственный глагол «building», а не существительное «building».

documents = addPartOfSpeechDetails(documents);
newDocuments = normalizeWords(documents,'Style','lemma')
newDocuments = 
  2x1 tokenizedDocument:

    6 tokens: i be build a house .
    6 tokens: the building have two floor .

Маркировать японский текст с помощью tokenizedDocument функция. Функция автоматически обнаруживает японский текст.

str = [
    "空に星が輝き、瞬いている。"
    "空の星が輝きを増している。"
    "駅までは遠くて、歩けない。"
    "遠くの駅まで歩けない。"];
documents = tokenizedDocument(str);

Лемматизировать маркеры с помощью normalizeWords.

documents = normalizeWords(documents)
documents = 
  4x1 tokenizedDocument:

    10 tokens: 空 に 星 が 輝く 、 瞬く て いる 。
    10 tokens: 空 の 星 が 輝き を 増す て いる 。
     9 tokens: 駅 まで は 遠い て 、 歩ける ない 。
     7 tokens: 遠く の 駅 まで 歩ける ない 。

Маркировать немецкий текст с помощью tokenizedDocument функция. Функция автоматически обнаруживает немецкий текст.

str = [
    "Guten Morgen. Wie geht es dir?"
    "Heute wird ein guter Tag."];
documents = tokenizedDocument(str);

Закрепление маркеров с помощью normalizeWords.

documents = normalizeWords(documents)
documents = 
  2x1 tokenizedDocument:

    8 tokens: gut morg . wie geht es dir ?
    6 tokens: heut wird ein gut tag .

Входные аргументы

свернуть все

Исходные документы, указанные как tokenizedDocument массив.

Входные слова, указанные как строковый вектор, символьный вектор или массив ячеек символьных векторов. При указании words как символьный вектор, то функция рассматривает аргумент как одно слово.

Типы данных: string | char | cell

Стиль нормализации, указанный как один из следующих:

  • 'stem' - Стебельные слова с помощью штеммера Портера. Этот параметр поддерживает только текст на английском и немецком языках. Для текста на английском и немецком языках это значение является значением по умолчанию.

  • 'lemma' - Извлеките словарную форму каждого слова. Этот параметр поддерживает только английский, японский и корейский тексты. Если во внутреннем словаре нет слова, то функция выводит слово без изменений. Для английского текста выходные данные строчные. Для японского и корейского текста это значение является значением по умолчанию.

Функция нормализует только маркеры с типом 'letters' и 'other'. Дополнительные сведения о типах маркеров см. в разделе tokenDetails.

Совет

Для английского текста, чтобы улучшить лемматизацию слов в документах, сначала добавьте детали части речи, используя addPartOfSpeechDetails функция.

Язык слов, указанный как один из следующих:

  • 'en' - Английский язык

  • 'de' - немецкий язык

Если язык не указан, программа обнаруживает язык автоматически. Для лемматизации японского или корейского текста используйте tokenizedDocument вход.

Типы данных: char | string

Выходные аргументы

свернуть все

Обновленные документы, возвращенные как tokenizedDocument массив.

Обновленные слова, возвращаемые в виде строкового массива, символьного вектора или массива ячеек символьных векторов. words и updatedWords имеют один и тот же тип данных.

Алгоритмы

свернуть все

Сведения о языке

tokenizedDocument объекты содержат сведения о маркерах, включая сведения о языке. Сведения о языке входных документов определяют поведение normalizeWords. tokenizedDocument функция по умолчанию автоматически определяет язык входного текста. Чтобы указать сведения о языке вручную, используйте 'Language' аргумент пары имя-значение tokenizedDocument. Для просмотра сведений о маркере используйте tokenDetails функция.

Вопросы совместимости

развернуть все

В R2018b изменилось поведение

Представлен в R2017b