Question

Je souhaite traiter un nombre moyen à élevé d'extraits de texte à l'aide d'un vérificateur d'orthographe / grammaire pour obtenir une approximation approximative et un classement de leur "qualité". La vitesse n’est pas vraiment une préoccupation non plus, alors je pense que le moyen le plus simple est d’écrire un script qui transmet les extraits à Microsoft Word (2007) et exécute son vérificateur d’orthographe et de grammaire.

Existe-t-il un moyen de faire cela à partir d'un script (en particulier Python)? Quelle bonne ressource pour apprendre à contrôler Word par programmation?

Sinon, je suppose que je peux essayer quelque chose de vérificateur de grammaire Open Source . .

Mettre à jour

En réponse à la réponse de Chris, existe-t-il au moins un moyen pour a) ouvrir un fichier (contenant le ou les extraits de code), b) exécuter un script VBA à partir de Word qui appelle le vérificateur d'orthographe et de grammaire, et c ) renvoie une indication du "score" du (des) extrait (s)?

Mise à jour 2

J'ai ajouté une réponse qui semble fonctionner, mais si quelqu'un a d'autres suggestions, je garderai cette question ouverte pendant un certain temps.

Était-ce utile?

La solution

Il a fallu creuser un peu, mais je pense avoir trouvé une solution utile. Suivez les conseils de http://www.nabble.com/ Éditer un document Word par programme td19974320.html J'utilise le win32com module (si le lien SourceForge ne fonctionne pas, selon cette réponse de débordement de pile vous pouvez utiliser pip pour obtenir le module), qui permet d’accéder aux objets COM de Word. Le code suivant montre bien ceci:

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)

qui produit

Grammar: 2
Spelling: 3

qui correspondent aux résultats lors de l'appel manuel de la vérification à partir de Word.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top