Como posso usar o verificador ortográfico / gramatical do Microsoft Word de programação?
Pergunta
Eu quero processar um meio de grande número de trechos de texto usando um verificador de ortografia / gramática para obter um áspero aproximação e classificação de sua "qualidade". A velocidade não é realmente motivo de preocupação tanto, então eu acho que a maneira mais fácil é escrever um script que passa ao largo dos trechos para o Microsoft Word (2007) e segue seu verificador ortográfico e gramatical sobre eles.
Existe uma maneira de fazer isso a partir de um roteiro (especificamente, Python)? O que é um bom recurso para aprender sobre como controlar Palavra de programação?
Se não, eu acho que posso tentar algo de Open Source verificador gramatical (SO) .
Atualização
Em resposta a resposta de Chris, há pelo menos uma forma de a) abrir um arquivo (contendo (s o trecho)), b) executar um script VBA de dentro Palavra que chama o verificador ortográfico e gramatical, e c ) devolver alguma indicação do "score" do trecho (s)?
Update 2
Eu adicionei uma resposta que parece trabalho, mas se alguém tiver outras sugestões Vou manter a questão em aberto por algum tempo.
Solução
Levou algumas escavações, mas eu acho que encontrei uma solução útil. Seguindo o conselho em http://www.nabble.com/ Edit-um-Palavra-document-programaticamente-td19974320.html Eu estou usando o win32com módulo (se o link SourceForge não funcionar, de acordo com a esta resposta Stack Overflow você pode usar pip
para obter o módulo), que permite o acesso a objetos cOM do Word. O código a seguir demonstra isso muito bem:
import win32com.client, os
wdDoNotSaveChanges = 0
path = os.path.abspath('snippet.txt')
snippet = 'Jon Skeet lieks ponies. I can haz reputashunz? '
snippet += 'This is a correct sentence.'
file = open(path, 'w')
file.write(snippet)
file.close()
app = win32com.client.gencache.EnsureDispatch('Word.Application')
doc = app.Documents.Open(path)
print "Grammar: %d" % (doc.GrammaticalErrors.Count,)
print "Spelling: %d" % (doc.SpellingErrors.Count,)
app.Quit(wdDoNotSaveChanges)
que produz
Grammar: 2 Spelling: 3
que combinam os resultados ao invocar a verificação manualmente a partir do Word.