How to use spell checker with matlab?

6 views (last 30 days)
peyush
peyush on 26 Jul 2015
Commented: peyush on 27 Jul 2015
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

Accepted Answer

Cedric Wannaz
Cedric Wannaz on 26 Jul 2015
Edited: Cedric Wannaz on 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!
  2 Comments

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!