correctSpelling

Правильное написание слов

Описание

Использовать correctSpelling для исправления написания слов в строковых массивах или документах.

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

пример

updatedDocuments = correctSpelling(documents) исправляет написание слов в tokenizedDocument массивы направленности documents.

пример

updatedWords = correctSpelling(words) исправляет написание слов в string векторная words.

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

[___,unknownWords] = correctSpelling(___) также возвращает вектор слов во входе, которые не были найдены в словаре и для которого не было найдено никаких предложений.

пример

___ = correctSpelling(___,Name,Value) задает дополнительные опции, используя один или несколько аргументы пары "имя-значение".

Примеры

свернуть все

Создайте токенизированный массив документов.

str = [
    "A documnent containing some misspelled worrds."
    "Another documnent cntaining typos."];
documents = tokenizedDocument(str);

Исправьте написание слов в документах используя correctSpelling функция.

updatedDocuments = correctSpelling(documents)
updatedDocuments = 
  2x1 tokenizedDocument:

    7 tokens: A document containing some misspelled words .
    5 tokens: Another document containing typos .

Создайте строковые массивы слов.

words = ["A" "strng" "array" "containing" "misspelled" "worrds" "."];

Исправьте написание слов в строковые массивы с помощью correctSpelling функция.

updatedWords = correctSpelling(words)
updatedWords = 1x7 string
  Columns 1 through 6

    "A"    "string"    "array"    "containing"    "misspelled"    "words"

  Column 7

    "."

Создайте токенизированный массив документов.

str = [
    "Analyze text data using MATLAB."
    "Another documnent cntaining typos."];
documents = tokenizedDocument(str);

Исправьте написание слов в документах используя correctSpelling функция.

updatedDocuments = correctSpelling(documents)
updatedDocuments = 
  2x1 tokenizedDocument:

    7 tokens: Analyze text data using MAT LAB .
    5 tokens: Another document containing typos .

Заметьте, что слово «MATLAB» разделяется на два слова «MAT» и «LAB».

Исправьте написание документов и укажите «MATLAB» как известное слово с помощью 'KnownWords' опция.

updatedDocuments = correctSpelling(documents,'KnownWords',"MATLAB")
updatedDocuments = 
  2x1 tokenizedDocument:

    6 tokens: Analyze text data using MATLAB .
    5 tokens: Another document containing typos .

Входные параметры

свернуть все

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

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

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

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

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

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

  • 'ko' - Корейский язык

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

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

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: correctSpelling(documents,'KnownWords',["MathWorks" "MATLAB"]) исправляет написание слов в documents и рассматривает слова «MathWorks» и «MATLAB» как правильно написанные слова.

Слова, которые будут рассматриваться как правильные, заданные как разделенная разделенными запятой парами, состоящая из 'KnownWords' и строковые массивы или массив ячеек из векторов символов.

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

Пример: ["MathWorks" "MATLAB"]

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

Файл словаря расширений Hunspell (также известный как файл личного словаря), заданный как разделенная разделенными запятой парами, состоящая из 'ExtensionDictionary' и путь к файлу словаря расширений Hunspell.

Файл словаря расширений Hunspell является .dic файл, содержащий количество слов в словаре и список слов в следующем формате:

word1/affixWord1
word2/affixWord2
...
wordN/affixWordN
*forbiddenWord1
*forbiddenWord2
...
*forbiddenWordM
где:

  • word1, word2, …, wordN является списком слов для расширения словаря Hunspell в.

  • affixWord1, affixWord2, …, affixWordN (необязательно) указать слова в словаре Hunspell, которые имеют общие аффиксы. Указывайте аффиксы путем соединения их с соответствующим словом с прямой косой чертой (/). Для примера введите exxxtreme/extreme указывает, что аффиксы, которые применяются к слову "extreme" также применимо к пользовательскому слову "exxxtreme".

  • forbiddenWord1, forbiddenWord2, …, forbiddenWordN - список запрещенных слов, используемых для коррекции орфографии. Указать запрещенные слова используя звездочку (*).

Записи в файле словаря расширений Hunspell могут появиться в любом порядке.

Например, чтобы создать файл словаря расширений Hunspell с указанием:

  • Слова "MathWorks", "MATLAB", и "exxxtreme".

  • Аффиксы, которые применяются к слову "extreme" также применимо к слову "exxxtreme".

  • Слово "MATLOB" является запрещенным словом.

использование:

MathWorks
MATLAB
exxxtreme/extreme
*MATLOB

Пример создания файлов словаря расширений Hunspell см. в разделе «Создание словаря расширений для коррекции орфографии». Для получения дополнительной информации об опциях файлов словаря Hunspell смотрите https://manpages.ubuntu.com/manpages/trusty/en/man4/hunspell.4.html.

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

Файл словаря Hunspell, заданный как разделенная разделенными запятой парами, состоящая из 'Dictionary' и путь к файлу словаря Hunspell.

Файл словаря Hunspell является .dic файл, содержащий количество слов в словаре и список слов в следующем формате:

N
word1/flags1
word2/flags2
...
wordN/flagsN

где N количество слов в файле словаря, word1, word2, …, wordN являются ли N слова в словаре, и flags1, …, flagsN задайте необязательные флаги, соответствующие словам word1, word2, …, wordN, соответственно. Используйте флаги для задания атрибутов слова, для примера аффиксов. Чтобы задать файл аффикса Hunspell, используйте 'Affixes' опция.

Например, a, чтобы создать файл словаря Hunspell, содержащий 4 слова "MathWorks", "MATLAB", "correctSpelling", и "tokenizedDocument", использовать:

4
MathWorks
MATLAB
correctSpelling
tokenizedDocument

Для получения дополнительной информации об опциях файлов словаря Hunspell смотрите https://manpages.ubuntu.com/manpages/trusty/en/man4/hunspell.4.html.

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

Файл аффикса Hunspell, заданный как разделенная разделенными запятой парами, состоящая из 'Affixes' и путь к файлу аффикса Hunspell.

Файл аффикса Hunspell является .aff файл, содержащий количество слов в словаре и список слов в следующем формате:

option1 values1
option2 values2
...
optionM valuesM

где M количество опций в файле affix, option1, option2, …, optionM являются ли M опции, и values1, …, valuesN задайте значения, соответствующие опциям option1, option2, …, optionM, соответственно. Используйте эти опции для задания аффиксов.

Префиксы

Чтобы определить правило префикса, используйте PFX опция с форматом:

PFX flag crossProduct K
PFX flag stripping1 prefix1 condition1
...
PFX flag strippingK prefixK conditionK
где значения:

  • flag соответствует флагам, используемым в файле словаря Hunspell.

  • crossProduct указывает, можно ли смешивать префиксы и суффиксы, задается как Y или N.

  • K - количество префиксов, заданное для заданного флага.

  • stripping1, stripping2, …, strippingK указывает символы, которые будут удалены из слова при применении префикса. Если значение десорбции 0, тогда никакое снятие не происходит.

  • prefix1, prefix2, …, prefixK укажите используемые префиксы.

  • condition1, condition2, …, conditionK задайте необязательные условия для применения префиксов prefix1, prefix2, …, prefixK, соответственно. Для тривиального условия задайте ".".

Суффиксы

Чтобы задать правило суффикса, используйте SFX опция с форматом:

SFX flag crossProduct K
SFX flag stripping1 suffix1 condition1
...
SFX flag strippingK suffixK conditionK
где suffix1, suffix2, …, suffixK задайте префиксы для использования и флаг, перекрестный продукт K, удаление и значения условий совпадают с форматом префикса.

Пример

Создайте файл аффикса Hunspell, определяющий следующие правила аффикса:

  • Флаг A:

    • префиксируйте слова с "re"

  • Флаг B:

    • суффиксные слова, не заканчивающиеся "y" с "ed".

    • суффиксные слова, заканчивающиеся "y" с "ied", удаление "y".

используйте файл аффикса Hunspell:

PFX A Y 1
PFX A 0 re .

SFX B Y 1
SFX B 0 ed [^y]
SFX B y ied y

Чтобы использовать эти флаги в файле словаря Hunspell, добавьте соответствующие флаги к словам с помощью "/". Для каждого слова можно задать несколько флагов. Например, чтобы задать файл словаря, содержащий:

  • Слова "ptest" и "ptry".

  • Для слова "ptest" только, также включите префикс "re" использование флага A.

  • Для обоих слов также включите суффиксы "ed" или "ied" где это целесообразно с помощью флага B

Для получения дополнительной информации об опциях файлов аффикса Hunspell смотрите https://manpages.ubuntu.com/manpages/trusty/en/man4/hunspell.4.html.

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

Метод ретокенизации документов, заданный как разделенная разделенными запятой парами, состоящая из 'RetokenizeMethod' и одно из следующих:

  • 'split' - Исправление орфографии путем разделения лексем. Например, разделите неправильно написанный лексему "twowords" в правильно написанные лексемы "two" и "words".

  • 'none' - Не разделяйте лексемы для коррекции орфографии.

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

свернуть все

Исправленные документы, возвращенные как tokenizedDocument массив. Если на 'RetokenizeMethod' опция 'split'затем количество слов в каждом обновленном документе может отличаться от соответствующего входного документа.

Если для исправленных слов существует несколько кандидатов, то функция автоматически выбирает одно слово для коррекции.

Исправленные слова, возвращенные как строковый вектор. Если на 'RetokenizeMethod' опция 'split', тогда количество обновленных слов может отличаться от количества входных слов.

Если для исправленных слов существует несколько кандидатов, то функция автоматически выбирает одно слово для коррекции.

Неизвестные слова, возвращенные как строковый вектор. Вектор строка unknownWords содержит входы слова, которых нет в словаре коррекции орфографии и для которых не найдено никаких предложений.

Введенный в R2020a