查找Microsoft Word文档中的所有动词

时间:2016-10-20 14:38:41

标签: ms-word

我想知道是否可以在Microsoft Word文档中搜索所有动词。

我发现你可以找到特定动词的所有“形式”(例如搜索“be”,单词会找到“be”,“am”,“are”,“was”等。 )但我需要更通用的东西:找到每个动词(也许是它们的形式)。

我也看了这个Checking whether a particular word is a noun or verb,我看到了“使用VBA”。是否有某种API我可以使用ms-Word来查找所有动词或访问某些关于单词的元数据/注册表?或者我可以使用某种特殊的正则表达式吗?

据我所知,有时它无法确定某个单词是名词还是动词,但如果它不是100%准确则不是问题。

对于某些情况:我用法语写作,即使ms-Word发现了很多错误,但它并没有找到所有错误。 ms-Word没有看到某种类型的经常性错误,但是如果我搜索每个动词,我可以轻松/快速地检查自己(比重新读取整个文档更快)。

我正在使用Microsoft Office 2007 SP3。

编辑:当然我不确定是否可能,但是ms-Word似乎很了解这一点。我相信ms-Word有一些方法可以根据它如何纠正语法错误来确定单词是动词,名词,复数等。也许我对ms-Word的工作方式错了,也许我是对的,但是没有办法访问这种数据。如果我是对的,可以访问它,怎么样?

1 个答案:

答案 0 :(得分:1)

正则表达式是创建定义搜索模式的字符序列的标准,您仍需要某种编程语言来解释结果。如果您不熟悉编程,我会推荐C# - 它比VBA更容易现代化,IMO更容易,而且与Microsoft的'OpenXML SDK'一起使编程方便地读取/解析Word文档。为了确定一个单词是否是一个动词,我会使用一个好的词典REST API来帮助我(有很多词典API)。

编辑:如果您对Java感到满意,请使用Java。由于.docx文件实际上是XML,因此您可以使用Java深入查看XML并查找所有文本元素(以及调用您选择的字典REST API)。

.docx文档的XML结构:

byte[] bytes = s.getBytes( "UTF-8" );
祝你好运

OpenXML SDK: msdn.microsoft.com/en-us/library/office/bb448854.aspx https://msdn.microsoft.com/en-us/library/office/ff478541.aspx

字典API: http://www.programmableweb.com/category/dictionary

如何在java中读取Doc或Docx文件: https://stackoverflow.com/a/7102794/1380061