How to use spell checker with matlab?

11 次查看(过去 30 天)
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

采纳的回答

Cedric
Cedric 2015-7-26
编辑:Cedric 2015-7-26
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 个评论
Isabelle Goy
Isabelle Goy 2023-5-12
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 2023-7-23
移动:DGM 2023-7-23
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', ...

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Data Type Conversion 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by