如何计算给定PDF中给定单词的数量?

Man*_*ani 5 pdf

面试问题

我在面试中被问到这个问题,答案不一定是特定的编程语言,平台或工具特定的.

问题的措辞如下:

您如何获得PDF中给定单词的实例计数.答案不一定是编程,平台或工具特定.只是让我知道你将如何在内存和速度有效的方式做到这一点

我发布此问题的原因如下:

  1. 为了更好地理解上下文 - 我仍然无法理解这个问题的背景,面试官可能会通过提出这个问题来寻找什么?
  2. 为了得到不同的意见 - 我倾向于根据我的编程语言技能(C#)回答这些问题,但可能还有其他有效的选择来完成这项工作.

谢谢你的关注.

MK.*_*MK. 4

如果我必须编写一个程序来做到这一点,我会找到一个能够从 PDF 文件(例如Xpdf )中提取文本的 PDF 渲染库,然后计算单词数。如果这是一项单一任务或需要自动化执行非生产质量任务的任务,我只需将文件输入 pdftotext 程序,然后使用 python 解析输出文件,拆分为单词,将它们放入字典并计算出现次数。

如果我问这个面试问题,我会寻找以下几点:

  1. 了解此任务设置之间的差异:一次性脚本与生产代码
  2. 不尝试自己实现 PDF 渲染,而是尝试寻找库。

现在,我不希望任何没有 PDF 经验的随机候选人会这样做,但您可以就什么是 PDF 以及什么是“单词”进行非常有意义的讨论。您会看到,PDF 将文本存储为一堆带有坐标的字符串。每个字符串不一定是一个单词。很多时候,单词会被分成几个完全独立的字符串,这些字符串绝对定位在文档中以形成单个单词。这就是为什么有时在 PDF 文档中搜索单词时您会得到奇怪的结果。因此,要在文档中实现单词搜索,您必须将这些字符串重新粘合在一起(pdftotext 会为您处理这个问题)。

这根本不是一个坏问题。

  • 我喜欢这个问题,因为它不仅仅是评估候选人是否可以编写字数统计算法。它让候选人展示他将如何完成实际工作,以及他是否足够周到,可以向面试官提出聪明的问题以进行澄清。如果我是面试官,我可能会深入研究字典的实现(哈希、特里等),但也会向候选人抛出一些关于他的其他决定的曲线球,看看他的反应如何。(例如“pdf 文件是用中文编写的书 - 这对您的代码有何影响?”)。 (2认同)