【问题标题】:Reliably getting a character count for .doc files可靠地获取 .doc 文件的字符数
【发布时间】:2010-02-17 17:10:57
【问题描述】:

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

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

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

有没有合理的解决方案?

【问题讨论】:

  • 如果你能算上 wvSummary(linux.die.net/man/1/wvsummary) 最后一次被 Word 保存(或者至少是保存 Word 元数据的程序),你可以使用 wvSummary(linux.die.net/man/1/wvsummary)。
  • @Matthew 不幸的是,依赖文件本身中的元数据实在是太不可靠了。 :)
  • 您能否在网络中某处的 Windows 机器上安装 word 并仅使用 Word 本身(通过一些 COM 或 VBA)来获得准确的计数?
  • @Peter 我也在考虑这个选项,但这是我最后的选择。我们现在的 Windows 基础架构绝对为零,所以这将是一项艰巨的任务。

标签: ms-word ms-office word-count charactercount


【解决方案1】:

这是一些 Linux 文字到文本转换器的link

例如你可以使用

antiword file.doc | wc

进行计数。

编辑:

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

【讨论】:

  • Antiword 看起来不错,谢谢。 .docx 文件有什么解决方案吗?
  • AbiWord 可能是要走的路。
【解决方案2】:

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

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

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

【讨论】:

  • 这可能是一个解决方案,尽管可能很难在生产中使用(Linux 服务器)。不过我会调查一下...
【解决方案3】:

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

【讨论】:

【解决方案4】:

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

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

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

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

【讨论】:

  • 我认为主要问题是在不打开 word 的情况下从 word 文档中获取纯文本(这是 deceze 剪切和粘贴内容所要做的)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-23
  • 1970-01-01
  • 1970-01-01
  • 2015-03-01
相关资源
最近更新 更多