搜索引擎现在可以索引PDF文件了,这是一个复杂的任务,因为PDF文件是图形化的,而不是基于文本的,它将字形映射到坐标,几乎没有语义信息。虽然基于视觉的机器学习是理想的,但对于海量数据来说它并不具有可扩展性。
最初的解决方案,PDFBox的PDFTextStripper,可以提取文本,但它不理解文档结构(例如标题等),而这对于搜索相关性至关重要。我们对此进行了改进,特别关注标题和段落的识别。
标题是根据字号和字重来识别的。利用字号统计数据来确定基于单个页面的正确标题检测。连续的标题会被连接起来,同时考虑到可能存在的错误连接。段落识别则通过根据文档的中位线间距计算行间距来改进。
新的系统并非完美无缺,它更关注相关性信号,例如标题、摘要和连贯的文本图像。