¿Cómo puedo usar el corrector ortográfico / gtwigtical de Microsoft Word programáticamente?

Quiero procesar un número mediano o grande de fragmentos de texto utilizando un corrector ortográfico / gtwigtical para obtener una aproximación y clasificación aproximada de su “calidad”. La velocidad tampoco es realmente una preocupación, por lo que creo que la forma más fácil es escribir un script que pase los fragmentos a Microsoft Word (2007) y ejecute su corrector ortográfico y gtwigtical.

¿Hay una manera de hacer esto desde un script (específicamente, Python)? ¿Cuál es un buen recurso para aprender sobre el control de Word mediante progtwigción?

Si no, supongo que puedo probar algo con Open Source Grammar Checker (SO) .

Actualizar

En respuesta a la respuesta de Chris, ¿hay al menos una manera de a) abrir un archivo (que contenga el fragmento (s)), b) ejecutar un script VBA desde Word que llame al corrector ortográfico y gtwigtical, yc) devolver algunos Indicación de la “puntuación” del fragmento (s)?

Actualización 2

He añadido una respuesta que parece funcionar, pero si alguien tiene otras sugerencias, mantendré esta pregunta abierta durante algún tiempo.

Tomó un poco de investigación, pero creo que encontré una solución útil. Siguiendo el consejo en http://www.nabble.com/Edit-a-Word-document-programmatically-td19974320.html Estoy usando el módulo win32com (si el enlace de SourceForge no funciona, de acuerdo con esta respuesta de Desbordamiento de stack) puede usar pip para obtener el módulo), que permite acceder a los objetos COM de Word. El siguiente código lo demuestra muy bien:

 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 produce

 Gramática: 2
 Ortografía: 3

que coinciden con los resultados al invocar el cheque manualmente desde Word.