8

スペル/文法チェッカーを使用して中規模から多数のテキスト スニペットを処理し、それらの「品質」の大まかな概算とランキングを取得したいと考えています。速度もあまり問題にならないので、スニペットを Microsoft Word (2007) に渡してスペル チェックと文法チェックを実行するスクリプトを作成するのが最も簡単な方法だと思います。

スクリプト (具体的には Python) からこれを行う方法はありますか? プログラムによる Word の制御について学習するための適切なリソースは何ですか?

そうでない場合は、 Open Source Grammar Checker (SO)から何かを試すことができると思います。

アップデート

Chris の回答に応えて、a) ファイル (スニペットを含む) を開き、b) Word 内からスペル チェックと文法チェッカーを呼び出す VBA スクリプトを実行し、c) いくつかのスニペットの「スコア」の表示?

更新 2

うまくいくと思われる回答を追加しましたが、他の提案がある場合は、この質問をしばらく開いたままにします。

4

1 に答える 1

9

少し掘り下げましたが、有用な解決策を見つけたと思います。http://www.nabble.com/Edit-a-Word-document-programmatically-td19974320.htmlのアドバイスに従って、 win32comモジュールを使用しています (この Stack Overflow の回答によると、SourceForge リンクが機能しない場合)を使用pipしてモジュールを取得できます)。これにより、Word の COM オブジェクトにアクセスできます。次のコードは、これをうまく示しています。

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)

生産する

文法: 2
つづり: 3

これは、Word から手動でチェックを呼び出したときの結果と一致します。

于 2009-10-30T02:40:36.200 に答える