normalizeWords

Определите корень или лемматизируйте слова

Описание

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

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

пример

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

пример

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

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

пример

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

Примеры

свернуть все

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

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

Поместите слова в строковые массивы с помощью стеммера 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. The tokenizedDocument функция по умолчанию автоматически обнаруживает язык входного текста. Чтобы задать детали языка вручную, используйте 'Language' Аргумент пары "имя-значение" из tokenizedDocument. Чтобы просмотреть сведения о лексеме, используйте tokenDetails функция.

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

расширить все

Поведение изменено в R2018b

Введенный в R2017b