3

自动计算 .doc 或 .docx 文件中的字符和/或单词的可靠方法是什么?

唯一真正的要求是相当准确和相当可靠的计数。
它需要处理包含拉丁文字以外的其他内容的文档,因此在大多数情况下计算字符就足够了。
计数不一定需要与Word的匹配,但越接近越好。
由于有大量不同的应用程序可以生成 .doc 文件,因此无法对任何内容进行计数是可以的,但这种情况需要可捕获,因此我们知道计数可能不准确。对于所有其他情况,计数必须在至少 99% 的时间内达到至少 99% 的准确率。

我对所涉及的技术持开放态度,但可以在 *NIX 命令行上运行的东西将是非常受欢迎的。

有没有合理的解决方案?

4

4 回答 4

3

这是一些 Linux 文字到文本转换器的链接。

例如你可以使用

antiword file.doc | wc

进行计数。

编辑:

链接显示 AbiWord 有一个命令行界面,您可以使用该界面将 .docx 格式转换为 .txt,然后使用“wc”计算单词。AbiWord 确实支持 docx 格式

于 2010-02-17T03:18:16.363 回答
1

Mac OS X 支持读取系统框架中内置的 word 文件,所以如果你有,那就很容易了。MacRuby 示例:

NSSpellChecker.sharedSpellChecker.countWordsInString(NSAttributedString.alloc.initWithURL(fileURL, documentAttributes:nil), language:nil)

更便携——尽管它放弃了对 docx 的支持——你可以简单地获得 Antiword 并做antiword | wc -w.

于 2010-02-17T03:27:28.537 回答
0

Microsoft 已发布 Office 二进制文件格式的规范。解析 .DOC 文件看起来并不简单,但只要小心,您应该能够获得可靠、可重复的结果。我不知道它与 Word 显示的内容有多接近——这可能(至少部分)取决于你如何定义“单词”——例如,你是否将一组数字视为“单词” . 弄清楚 Word 如何处理这样的案例可能不需要太多时间,因此获得密切匹配应该不是非常困难。

于 2010-02-17T03:16:28.453 回答
0

如果您将在线应用程序视为一种解决方案,是的,有一个解决方案。
这个不太漂亮(关于设计)的网站同时提供字数和字符数:http ://allworldphone.com/count-words-characters.htm

我认为没有限制,只需将文档的内容复制/粘贴到相应的文本区域并查看结果应该不是问题。

关于 100% 或 99% 的准确率,您可以先自己数数,用几个(即 20-50 个字)进行测试。

我希望这有帮助。问候。克里斯

于 2010-02-17T03:18:46.893 回答