繁体   English   中英

如何以编程方式使用Microsoft Word的拼写/语法检查程序?

[英]How can I use Microsoft Word's spelling/grammar checker programmatically?

我想使用拼写/语法检查器处理中到大量的文本片段,以获得粗略的近似值并对其“质量”进行排名。 速度也不是真正令人担忧的,所以我认为最简单的方法是编写一个脚本,将片段传递给Microsoft Word(2007)并在其上运行拼写和语法检查。

有没有办法从脚本(特别是Python)执行此操作? 学习如何以编程方式控制Word有什么好资源?

如果没有,我想我可以尝试使用开源语法检查器(SO)

更新

为了回应Chris的回答,至少有一种方法可以a)打开一个文件(包含代码片段),b)从Word内部运行一个调用拼写和语法检查器的VBA脚本,以及c)返回一些片段“得分”的指示?

更新2

我添加了一个似乎有效的答案,但如果有人有其他建议,我会保持这个问题一段时间。

需要一些挖掘,但我认为我找到了一个有用的解决方案。 按照http://www.nabble.com/Edit-a-Word-document-programmatically-td19974320.html上的建议我正在使用win32com模块(如果SourceForge链接不起作用,根据此Stack Overflow答案你可以使用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)

哪个产生

Grammar: 2
Spelling: 3

从Word手动调用检查时匹配结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM