В этом примере показано, как создать словарь расширения Hunspell для исправления орфографии.
При использовании correctSpelling функция может обновить некоторые правильно написанные слова. Чтобы предоставить список известных слов, можно использовать параметр 'KnureWords' непосредственно со строковым массивом известных слов. Кроме того, можно указать словарь расширения Hunspell (также известный как личный словарь), который указывает списки известных слов, запрещенных слов и слов наряду с правилами аффикса.
Создание массива маркированных документов.
str = [
"Use MATLAB to correct spelling of words."
"Correctly spelled worrds are important for lemmatizing."
"Text Analytics Toolbox providesfunctions for spelling correction."];
documents = tokenizedDocument(str);Исправьте орфографию документов с помощью correctSpelling функция.
updatedDocuments = correctSpelling(documents)
updatedDocuments =
3x1 tokenizedDocument:
9 tokens: Use MAT LAB to correct spelling of words .
8 tokens: Correctly spelled words are important for legitimatizing .
9 tokens: Text Analytic Toolbox provides functions for spelling correction .
Функция исправила написание слов «words» и «providesfunctions», хотя и обновила некоторые правильно написанные слова:
Входное слово «MATLAB» было разделено на два слова «MAT» и «LAB».
Входное слово «lemmatizing» было изменено на «legotatizing».
Входное слово «Аналитика» было изменено на «Аналитика».
Чтобы создать словарь расширения Hunspell, содержащий список известных слов, создайте .dic файл, содержащий эти слова с одним словом на строку. Создание словаря расширения с именем knownWords.dic файл, содержащий слова «MATLAB», «lemmatization» и «Analytics».
MATLAB Analytics lemmatizing
Снова исправьте орфографию документов и укажите дополнительный словарь knownWords.dic.
updatedDocuments = correctSpelling(documents,'ExtensionDictionary','knownWords.dic')
updatedDocuments =
3x1 tokenizedDocument:
8 tokens: Use MATLAB to correct spelling of words .
8 tokens: Correctly spelled words are important for lemmatizing .
9 tokens: Text Analytics Toolbox provides functions for spelling correction .
При указании нескольких слов с одним и тем же корневым словом (например, указание слов «lemmatize», «lemmatizer», «lemmatized» и так далее) может быть проще указать набор правил аффикса. Вместо указания одного и того же слова несколько раз с различными аффиксами можно указать конкретное слово для наследования набора правил аффикса.
Например, создайте массив маркированных документов и используйте correctSpelling функция.
str = [
"A lemmatizer reduces words to their dictionary forms."
"To lemmatize words, use the normalizeWords function."
"Before lemmatizing, add part of speech details to the text."
"Display lemmatized words in a word cloud."];
documents = tokenizedDocument(str);
updatedDocuments = correctSpelling(documents)updatedDocuments =
4x1 tokenizedDocument:
9 tokens: A legitimatize reduces words to their dictionary forms .
10 tokens: To legitimatize words , use the normalize Words function .
12 tokens: Before legitimatizing , add part of speech details to the text .
8 tokens: Display legitimatized words in a word cloud .
Обратите внимание, что слово «normalityWords» и варианты «lemmatize» обновляются неправильно.
Создание словаря расширения с именем knownWordsWithAffixes.dic файл, содержащий слова «normalityWords» и «lemmatize». Для слова «lemmatize» также указать, чтобы включить также действительные аффиксы слова «equalize» с использованием "/" символ.
normalizeWords lemmatize/equalize
Снова исправьте орфографию документов и укажите дополнительный словарь knownWordsWithAffixes.dic.
updatedDocuments = correctSpelling(documents,'ExtensionDictionary','knownWordsWithAffixes.dic')
updatedDocuments =
4x1 tokenizedDocument:
9 tokens: A lemmatizer reduces words to their dictionary forms .
9 tokens: To lemmatize words , use the normalizeWords function .
12 tokens: Before lemmatizing , add part of speech details to the text .
8 tokens: Display lemmatized words in a word cloud .
Обратите внимание, что варианты «lemmatize» не были изменены. Словарь по умолчанию содержит слово «equalize», а также распознает слова «equalizer» и «equalized» через суффиксы «-r» и «-d» соответственно. Указывая запись «lemmatize/equalize», программное обеспечение распознает слово «lemmatize», а также другие слова путем расширения аффиксов, соответствующих «equalize». Например, слова «лемматизатор» и «лемматизированный».
При использовании correctSpelling функция может выводить нежелательные слова, даже если более желательное слово находится в словаре. Например, для входного слова «Decrese», correctSpelling функция может выводить слово «Декрет». Чтобы некоторые слова не появлялись в выходных данных, можно указать запрещенные слова в словаре расширения.
Например, создайте массив маркированных документов и исправьте орфографию с помощью словаря расширения knownWords.dic. Обратите внимание, что этот словарь содержит слово «MATLAB».
str = [
"Analyze text data using MATLAB."
"Decrese the number of typos using an extension dictionary."];
documents = tokenizedDocument(str);
updatedDocuments = correctSpelling(documents,'ExtensionDictionary','knownWords.dic')updatedDocuments =
2x1 tokenizedDocument:
6 tokens: Analyze text data using MATLAB .
10 tokens: Decrees the number of typos using an extension dictionary .
Даже если слово «уменьшить» присутствует в словаре, функция может выбрать другие слова в качестве совпадений. При этом функция выбирает слово «декреты».
Создание словаря расширения с именем knownWordsWithForbiddenWords.dic файл, содержащий слово «MATLAB», а также указать запрещенное слово «декрет» с использованием "*" символ. При указании запрещенных слов необходимо указать корневое слово. Например, чтобы предотвратить вывод функцией множественного числа «декретов», укажите корневое слово «декрет».
MATLAB *decree
Исправление орфографии документов с помощью дополнительного словаря knownWordsWithForbiddenWords.dic.
updatedDocuments = correctSpelling(documents,'ExtensionDictionary','knownWordsWithForbiddenWords.dic')
updatedDocuments =
2x1 tokenizedDocument:
6 tokens: Analyze text data using MATLAB .
10 tokens: Decrease the number of typos using an extension dictionary .
Здесь слово «Декрезе» исправлено на «Уменьшить».
correctSpelling | tokenizedDocument