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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top