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

Язык Word в виде одного из следующего:

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

  • 'de' – Немецкий язык

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

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

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

Аргументы name-value

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

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

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

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

Пример: ["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, необходимо задать слова в их основной форме. Например, чтобы гарантировать, что correctSpelling функция не преобразует строку "decrese" к "decrees" с помощью дополнительного словаря задайте основное слово "decree" как запрещенное слово.

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

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

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

  • Слово "NaN" запрещенное слово.

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

MathWorks
MATLAB
exxxtreme/extreme
*NaN

Для примера, показывающего, как создать файлы словаря расширения 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' опция.

Например, чтобы создать файл словаря 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 число вариантов в файле аффикса, 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