Filter löschen
Filter löschen

How to use spell checker with matlab?

11 Ansichten (letzte 30 Tage)
peyush
peyush am 26 Jul. 2015
Verschoben: DGM am 23 Jul. 2023
I have written few words in text file result.txt using matlab....but there are some spelling mistakes on it... i am doing character recognition...How should i correct the spelling and show the result in the next line in the same file result.txt....can anyone help

Akzeptierte Antwort

Cedric
Cedric am 26 Jul. 2015
Bearbeitet: Cedric am 26 Jul. 2015
You could try this:
UPDATE : here is a slightly modified version (also attached)
function wordsChecked = checkWordsSpelling( words )
%
% Based on Mathworks thread:
% http://www.mathworks.com/matlabcentral/answers/91885-is-there-any-way-to-check-spelling-from-within-matlab
%
% - Split space-separated words into cell array of words, or wrap
% single word into cell array.
if ischar( words )
if any( words == ' ' )
words = strsplit( words, ' ' ) ;
else
words = {words} ;
end
end
% - Launch MS Word and create document.
h = actxserver( 'word.application' ) ;
h.Document.Add ;
% - Build cell array of originals and suggestions.
words = words(:) ; % -> columns cell array.
nWords = numel( words ) ;
for wId = 1 : nWords
% - Check if spelling correct. Loop back if so.
isCorrect = h.CheckSpelling( words{wId,1} ) ;
words{wId,2} = isCorrect ;
if isCorrect
words{wId,3} = false ;
continue ;
end
% - Build cell array of suggestions.
nSug = h.GetSpellingSuggestions( words{wId,1} ).count;
words{wId,3} = nSug > 0 ;
if nSug > 0
for sId = 1 : nSug
words{wId,4}{sId} = ...
h.GetSpellingSuggestions( words{wId,1} ).Item(sId).get( 'name' ) ;
end
end
end
% - Quit MS Word.
h.Quit
% - Build table (or struct array if you prefer).
%wordsChecked = cell2struct( words, {'original', 'isCorrect', 'hasSuggestion', 'suggestion'}, 2 ) ;
wordsChecked = cell2table( words, 'VariableNames', {'original', 'isCorrect', 'hasSuggestion', 'suggestion'} ) ;
end
With that, you can do the following:
>> checked = checkWordsSpelling( 'Helloo' )
checked =
original isCorrect hasSuggestion suggestion
________ _________ _____________ _______________________________
'Helloo' false true 'Hello' 'Halloo' 'Hellos'
>> checked = checkWordsSpelling( 'Helloo Wolrd Hello' )
checked =
original isCorrect hasSuggestion suggestion
________ _________ _____________ __________
'Helloo' false true {1x3 cell}
'Wolrd' false true {1x2 cell}
'Hello' true false []
>> checked.suggestion{2}
ans =
'World' 'Word'
>> checked = checkWordsSpelling( {'Helloo', 'Wolrd'} )
checked =
original isCorrect hasSuggestion suggestion
________ _________ _____________ __________
'Helloo' false true {1x3 cell}
'Wolrd' false true {1x2 cell}
Hope it helps!
  4 Kommentare
Isabelle Goy
Isabelle Goy am 12 Mai 2023
Hi,
thanks for the code provided. I'm using a similar spell-check on my side but I need that the spell-check done through Word uses french as a refernce language. I have tried to set it this way:
h = actxserver( 'word.application' ) ;
h.Document.Add ;
selection = h.Selection;
selection.LanguageID = 1036; % which is the code for french language
but also the code is running, this line is not taken into consideration when the spell checking is happening, or at the leat the spell checking is still happening on an english base ?
Any suggestion/help aprreciated.
Daniel
Daniel am 23 Jul. 2023
Verschoben: DGM am 23 Jul. 2023
Some words produce an error
checked = checkWordsSpelling( 'Procuremend' )
Error using cell2table (line 77)
The VariableNames property must contain one name for each variable in the table.
Error in checkWordsSpelling (line 52)
wordsChecked = cell2table( words, 'VariableNames', {'original', 'isCorrect', ...

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by