exponenta event banner

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' вариант.

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