2025 05 14 HackerNews

2025-05-14 Hacker News Top Stories #

  1. Mozilla Firefox代码迁移到GitHub引发开发者对数据安全和自主权的担忧。
  2. 软件优化常被市场优先级牺牲,导致质量低下与用户体验下降。
  3. macOS权限弹窗存在伪造漏洞(CVE-2025-31250),用户需警惕恶意权限请求。
  4. FastVLM通过高效视觉编码实现比LLaVA快85倍的图像处理速度。
  5. GNU Screen 5.0.0存在本地提权漏洞(CVE-2025-23395),建议禁用setuid-root权限。
  6. Intel处理器分支特权注入漏洞(BPI)可绕过硬件防护,需更新BIOS和微码。
  7. 高压工作环境中维护人际关系比追求短期目标更有利于职业发展。
  8. Nextcloud指控Google Play Store限制其应用权限,涉嫌反竞争行为。
  9. 国家科学基金会前官员批评政治干预破坏学术机构独立性与科研自由。
  10. PDF文本提取因格式特性面临技术挑战,需结合统计与机器学习方法优化。

Mozilla Firefox – Official GitHub repo #

https://github.com/mozilla-firefox/firefox

这是 Mozilla Firefox 浏览器的官方仓库。页面内容包括项目的描述、代码仓库、提交历史、问题跟踪等信息。

项目描述部分介绍了 Mozilla Firefox 浏览器的功能和特点,包括其快速、安全和隐私保护等方面的优势。同时,也提到了该项目的开源性质,欢迎开发者参与贡献。

代码仓库部分展示了项目的代码结构,包括各种文件夹和文件,例如 browser、devtools、docs 等。每个文件夹和文件都有相应的描述和提交历史,可以方便地查看代码的变化和更新。

提交历史部分记录了项目的所有提交记录,包括每次提交的描述、作者和时间等信息。可以通过提交历史来跟踪项目的发展和更新。

问题跟踪部分用于记录和跟踪项目中的问题和 bug,包括问题的描述、状态和解决方案等信息。开发者可以通过这个部分来报告和解决问题,确保项目的质量和稳定性。

此外,页面还包括其他一些信息,例如项目的 license、贡献者列表、相关链接等。这些信息可以帮助开发者更好地理解和参与项目。总的来说,这个网页提供了一个全面和详细的项目概览,方便开发者了解和参与 Mozilla Firefox 浏览器的开发。


HN 热度 774 points | 评论 421 comments | 作者:thefilmore | 18 hours ago #

https://news.ycombinator.com/item?id=43969827

  • Mozilla 将 Firefox 代码从 Mercurial 迁移到 GitHub,这可能会让一些开发者感到不便
  • 使用 GitHub 作为代码仓库可能会让 Microsoft 获取更多的代码数据和控制权
  • 由于 Git 的去中心化特性,开发者可以在任何地方托管代码,避免对 GitHub 的依赖
  • GitHub 的限制,例如不支持 IPv6 和对某些国家的访问限制,可能会影响开发者的体验
  • 使用 Phabricator 进行代码审查和提交补丁,不需要 GitHub 账号
  • 有些开发者因为 GitHub 的政策而被封号或受到限制,例如要求提供电话号码
  • 将代码托管在 GitHub 上可能会让开发者失去对代码的控制权和自主权
  • 有些开发者认为,使用 GitHub 只是为了方便,实际上可以使用其他代码仓库,如 Codeberg
  • Mozilla 的决定可能会让开发者感到担忧,因为 GitHub 是一个商业平台,可能会优先考虑自己的利益而不是开源社区的利益

The world could run on older hardware if software optimization was a priority #

https://twitter.com/ID_AA_Carmack/status/1922100771392520710

John Carmack 的一条帖子和对另一位用户 LaurieWired 的回复。John Carmack 的帖子讨论了软件优化的重要性,如果软件优化成为首要任务,许多世界上的系统都可以运行在过时的硬件上。他还提到了如果没有廉价且可扩展的计算能力,新的创新产品将变得罕见。

LaurieWired 的原始帖子探讨了一个有趣的思维实验:如果人类忘记了如何制造 CPU 会怎样?她假设有一天,称为“零带出日”(Z-Day),再也没有新的硅设计被制造出来。在这种情况下,现有的高级核心设计将面临很大的挑战。假设我们保留现有的供应,LaurieWired 分析了这种情况可能如何展开。


HN 热度 543 points | 评论 528 comments | 作者:turrini | 13 hours ago #

https://news.ycombinator.com/item?id=43971464

  • 软件优化并不是市场的优先考虑,导致软件质量普遍较低
  • 市场对软件质量的认识存在信息不对称,买家难以区分高质量和低质量软件
  • 企业为了降低成本和提高竞争力,往往会牺牲软件质量
  • 市场上的软件大多是由初级开发人员编写,质量难以保证
  • 软件质量并不是决定销售的关键因素,市场营销和广告投入在销售中起着更重要的作用
  • 企业应该根据产品特点和目标市场,合理分配资源于软件质量和市场营销
  • 高质量的软件可以带来口碑效应和忠实用户,但这需要企业长期投入和坚持
  • 企业在追求增长和利润的同时,容易忽视软件质量和用户体验,导致产品质量下降
  • 软件质量和市场营销是企业成功的两个重要因素,需要企业合理平衡和分配资源

Can you trust that permission pop-up on macOS? #

https://wts.dev/posts/tcc-who/

本文讨论了一个与 macOS 系统相关的安全漏洞,编号为 CVE-2025-31250。这个漏洞允许任何应用程序 A 弹出一个权限请求提示,伪装成来自应用程序 B,并将用户的响应应用于应用程序 C。这种漏洞使得攻击者可以欺骗用户授予不必要的权限。

文中提到,这个漏洞是在 macOS Sequoia 15.5 版本中被修复的,但是作者进行了测试,发现 macOS Ventura 13.7.6 和 macOS Sonoma 14.7.6 版本仍然存在这个漏洞。作者表示,这个漏洞是由于 TCC(Transparency, Consent and Control)框架的缺陷引起的,TCC 是 macOS 中用于管理应用程序权限的系统。

TCC 框架使用 XPC(Cross-Process Communication)消息来与应用程序进行通信,但是这个框架存在一个缺陷,允许应用程序发送特制的 XPC 消息来欺骗 TCC 显示错误的权限请求提示。这个漏洞可以被利用来欺骗用户授予不必要的权限,例如允许应用程序访问敏感数据或执行未经授权的操作。

文中还提到,Apple Events 是 macOS 中用于进程间通信的机制,TCC 框架使用 Apple Events 来管理应用程序权限。然而,Apple Events 也存在安全风险,攻击者可以使用 Apple Events 来执行未经授权的操作。作者表示,TCC 框架的缺陷和 Apple Events 的安全风险使得 macOS 系统存在安全隐患,用户需要注意这些风险并采取措施保护自己的系统。

总的来说,本文讨论了 macOS 中的一个安全漏洞,提醒用户注意 TCC 框架和 Apple Events 的安全风险,并呼吁用户采取措施保护自己的系统。


HN 热度 361 points | 评论 240 comments | 作者:nmgycombinator | 1 day ago #

https://news.ycombinator.com/item?id=43966089

  • macOS 的权限弹窗设计存在安全隐患,可能被恶意软件伪造,导致用户输入密码。
  • 现有的权限弹窗没有明确说明为什么需要权限,也没有提供拒绝权限的后果说明。
  • 应该改进权限弹窗的设计,例如提供详细的权限说明,拒绝权限的后果说明,以及提供更细粒度的权限控制。
  • Capabilities 概念可以改进权限管理,但其实现需要考虑 POSIX 的兼容性和安全性。
  • macOS 已经有一些权限管理功能,例如 Privacy & Security 面板,但仍需要改进。
  • 应用商店并不能保证应用的安全性,用户仍需要谨慎对待权限请求。
  • Capabilities 可以在低级别实现,例如使用 C 代码,并且有一些操作系统已经实现了这种机制。

FastVLM: Efficient vision encoding for vision language models #

https://github.com/apple/ml-fastvlm

这个网页是关于 FastVLM 的官方实现仓库,FastVLM 是一种高效的视觉编码方法,用于视觉语言模型。该仓库包含了 FastVLM 的代码、模型和文档。

FastVLM 的主要特点是引入了一个新的混合视觉编码器 FastViTHD,该编码器可以输出更少的 token,并且可以显著减少高分辨率图像的编码时间。FastVLM 的最小变体可以比 LLaVA-OneVision-0.5B 快 85 倍,并且视觉编码器的大小减少了 3.4 倍。同时,FastVLM 的更大变体使用 Qwen2-7B LLM 可以比 Cambrian-1-8B 等最近的工作快 7.9 倍,并且只需要一个图像编码器。

要开始使用 FastVLM,需要按照 LLaVA 代码库的指示进行训练或微调自己的变体。同时,提供了运行推理的指示,包括设置环境、下载预训练模型和运行推理的命令。FastVLM 还提供了一个模型库,包含了不同阶段和大小的预训练模型,可以通过运行脚本下载所有的预训练模型。

FastVLM 的使用示例包括运行推理和在 Apple Silicon 上运行推理。要在 Apple Silicon 上运行推理,需要将 PyTorch 模型导出为适合 Apple Silicon 的格式,可以在 model_export 子文件夹中找到详细的指示。同时,FastVLM 还提供了三个在 Apple Silicon 上兼容的模型:fastvlm_0.5b_stage3、fastvlm_1.5b_stage3 和 fastvlm_7b_stage3。

如果需要引用 FastVLM 的代码或模型,需要引用相关的论文。FastVLM 的代码库是建立在多个开源贡献之上的,相关的鸣谢信息可以在 ACKNOWLEDGEMENTS 文件中找到。同时,FastVLM 的代码和模型都有相应的许可证,需要在使用前查看 LICENSE 和 LICENSE_MODEL 文件。


HN 热度 349 points | 评论 69 comments | 作者:nhod | 22 hours ago #

https://news.ycombinator.com/item?id=43968897

  • FastVLM 模型的大小对于每个应用程序来说太大了,苹果可能会在操作系统级别预加载这些模型并为所有应用程序提供 SDK。
  • 开放权重、操作系统标准的基础模型有很大的潜力,尤其是如果 API 允许应用程序开发人员在运行时加载自定义的 LoRa 微调模型。
  • 连续视觉对于设备上的应用程序(如助手)非常有用,需要一定的速度提升。
  • 有人正在努力使模型更小、更高效,而不是简单地增加资源。
  • VLM 模型的进步让人对未来充满希望,尤其是对于可能失去视力的儿童,他们可以通过这些技术与世界交互。
  • 有人认为 Tesla 的 FSD 是一个端到端的 VLA 模型,高效的视觉编码对于使机器人安全和响应迅速至关重要。
  • 有开发者正在使用 VLM 模型构建实时语音和视觉应用,未来可能会在设备上运行这些模型。
  • 有人提到了 SmolVLM 模型和 HuggingFace 平台,认为这些模型和平台对于开发者来说非常有用。

Multiple security issues in GNU Screen #

https://www.openwall.com/lists/oss-security/2025/05/12/1

本网页主要讨论的是关于 Screen 软件的安全问题。Screen 是一款 GNU/*/Linux 服务器操作系统,最近发现了多个安全漏洞,尤其是在 5.0.0 版本中。这些漏洞主要影响安装了 setuid-root 位的系统,例如 Arch Linux 和 NetBSD。

Screen 软件提供了多用户模式,允许用户附加到其他用户的会话中,前提是具有适当的凭据。这种模式会增加攻击面,因为 Screen 的复杂代码会以 root 权限运行。在多用户模式中,Screen 会话通过名称识别,名称需要以"/“作为前缀。用户可以通过命令行创建多用户会话,并通过访问控制列表(ACL)管理会话的访问权限。

安全问题中,最严重的是一个本地 root 漏洞(CVE-2025-23395),它影响 Screen 5.0.0 版本,当 Screen 以 setuid-root 权限运行时。该漏洞允许未经授权的用户创建任意位置的文件,以 root 所有权和 0644 模式,这些文件可以用来记录 Screen 会话的数据。Screen 在打开日志文件时会正确地放弃权限,但当它需要重新打开日志文件时,会发生权限升级。

此外,网页还讨论了其他安全问题,包括 Screen 的 setuid-root 实现可能存在的进一步问题,以及改进 Screen 安全状况的建议。同时,也提到了在协调披露这些问题时遇到的困难。最后,网页提供了一个受影响矩阵,快速概述了各种 Linux 和 UNIX 系统的受影响情况。


HN 热度 325 points | 评论 192 comments | 作者:st_goliath | 12 hours ago #

https://news.ycombinator.com/item?id=43971716

  • GNU Screen 的多用户模式会增加攻击面,因为它需要以 root 权限运行。
  • tmux 使用 Unix 域套接字,而不是 setuid-root 方法,可能更安全。
  • GNU Screen 的代码基础较老,且开发人员对其内部机制不太熟悉,导致维护和更新困难。
  • 学习和维护 GNU Screen 的内部机制很困难,尤其是对于新开发人员。
  • GNU Screen 的一些特性和设计已经过时,例如使用 TERMCAP 环境变量。
  • 安全态度的变化使得一些曾经被认为是特性的东西现在被视为安全漏洞。
  • 有些用户已经从 GNU Screen 切换到 tmux 或其他替代品,如 zellij。
  • tmux 和 zellij 的配置和使用方法可能需要一些时间来适应,但提供了更多的功能和灵活性。
  • GNU Screen 的默认键绑定和行为已经深入人心,难以改变。
  • 在多台机器或随机机器上使用 GNU Screen 时,默认设置可能是一个问题。
  • zellij 的二进制文件体积较大,可能是由于静态链接和 cargo 依赖导致。

Branch Privilege Injection: Exploiting branch predictor race conditions #

https://comsec.ethz.ch/research/microarch/branch-privilege-injection/

本文介绍了一种新的安全漏洞,称为分支特权注入(Branch Privilege Injection,简称 BPI),该漏洞影响 Intel 处理器。BPI 攻击可以绕过 Intel 的硬件缓解措施,例如增强的间接分支受限推测(eIBRS)和间接分支预测屏障(IBPB),从而实现任意内存泄漏。

研究人员发现,Intel 处理器中的分支预测器更新是异步进行的,这意味着更新可能会延迟数十或数百个时钟周期。在某些情况下,这些异步更新可能会导致分支预测器与指令流之间的同步不足,从而产生分支预测器竞争条件。这种竞争条件可以被利用来实现 BPI 攻击。

BPI 攻击的工作原理是通过操纵分支预测器更新来实现任意内存泄漏。攻击者可以创建一个恶意的分支预测器更新,然后在特权切换(例如,从用户模式到内核模式)或 IBPB 操作期间执行该更新。由于分支预测器更新是异步进行的,更新可能会在特权切换后仍然有效,从而实现任意内存泄漏。

研究人员已经证明了 BPI 攻击可以在 Intel 的最新处理器(包括 Raptor Lake 和 Alder Lake)上实现,并且可以绕过 eIBRS 和 IBPB 缓解措施。他们还提供了一个微码更新来缓解 BPI 攻击,并评估了该更新的性能开销。

BPI 攻击不仅影响 Linux 系统,也可能影响其他操作系统,因为该漏洞存在于 Intel 处理器的硬件中。研究人员建议用户安装最新的操作系统和 BIOS 更新来缓解 BPI 攻击。

总之,BPI 攻击是一种新的安全漏洞,影响 Intel 处理器,允许攻击者实现任意内存泄漏。该攻击可以绕过 Intel 的硬件缓解措施,包括 eIBRS 和 IBPB。研究人员已经证明了 BPI 攻击的可行性,并提供了一个微码更新来缓解该攻击。用户应该安装最新的操作系统和 BIOS 更新来保护自己免受 BPI 攻击。


HN 热度 306 points | 评论 115 comments | 作者:alberto-m | 7 hours ago #

https://news.ycombinator.com/item?id=43974891

  • 分支预测可能会带来安全风险,需要软件和硬件共同合作来解决这个问题
  • 现代处理器的性能依赖于分支预测,去掉分支预测可能会导致性能大幅下降
  • 硬件安全是一个重要的课题,需要更多的研究和关注
  • 分支预测的更新可能会被延迟,导致安全漏洞
  • predictor 更新可能会被推迟到分支指令退休后,dispatch-serializing 指令不会阻塞流水线等待 predictor 状态更新
  • 特权级别更改的指令也不会阻塞流水线等待 predictor 状态更新,这可能会导致安全问题
  • 硬件安全课程和研究可以帮助人们更好地理解和解决这些问题
  • 去掉分支预测可能会导致性能下降,但可以通过其他方式来提高性能,如优化软件和硬件
  • 分支预测带来的安全风险可能会被攻击者利用,需要采取措施来防止这种攻击
  • 硬件安全是一个复杂的问题,需要多方面的合作和研究来解决

In a high-stress work environment, prioritize relationships #

https://wqtz.bearblog.dev/high-stress-job-relationships/

本文讨论了在高压力工作环境中,如何优先考虑人际关系的重要性。作者首先描述了高压力工作环境的现状,人们在工作中感到极度紧张,甚至可能产生辞职的想法。作者指出,在这种环境中,每个人都感到压力重重,大家都在承受着来自上级的压力,导致工作变得毫无意义。

作者强调,即使在这种高压力环境中,保持良好的人际关系也是非常重要的。因为如果你决定辞职,你需要这些人际关系来获得新的工作机会,例如推荐信。作者警告不要在压力下对同事发脾气,因为这会给你留下坏印象,你会被记住为“那个家伙”,即使你已经离开了公司。

作者最后强调,优先考虑人际关系是非常重要的。在工作中,应该考虑到每个人的需求和感受,而不是仅仅关注截止日期和工作的重要性。每个人都是人,应该以人际关系的方式对待他们,而不是让“专业环境”腐蚀了这些关系。通过优先考虑人际关系,我们可以建立更好的工作环境和更好的未来。


HN 热度 271 points | 评论 175 comments | 作者:wqtz | 10 hours ago #

https://news.ycombinator.com/item?id=43972535

  • 在高压力工作环境中,人际关系是重要的因素,需要优先考虑。
  • 工作中的压力往往来自于那些不擅长工作的人,他们试图把问题转嫁给别人。
  • 与不同类型的人建立关系是不同的,一种是关于如何合作,另一种是关于如何保持距离。
  • 认为有些人之所以会产生压力,是因为他们缺乏明确的目标和计划,导致他们感到迷茫和不确定。
  • 也有人认为,这种情况的产生是因为管理层的问题,管理层试图把问题转嫁给下属。
  • 还有人指出,个人主动性和责任感是可以通过经验和训练来培养的,而不是天生的。
  • 有些人认为,公司的停滞不前是因为员工们过于注重维护现有的流程和模式,而不是创新和进步。
  • 也有人觉得,需要帮助和指导的员工并不是问题,问题在于如何有效地帮助和指导他们。

Nextcloud cries foul over Google Play Store app rejection #

https://www.theregister.com/2025/05/13/nextcloud_play_store_complaint/

Nextcloud 是一家欧洲软件供应商,最近指责 Google 故意限制其 Android Files 应用程序的功能,该应用程序拥有超过 80 万用户。问题出在"All files access"权限上,Google 要求 Nextcloud 使用更注重隐私的存储访问工具,如 Storage Access Framework(SAF)或 MediaStore API。然而,Nextcloud 声称这些替代方案无法满足其应用程序的需求,因为它们无法提供对所有文件类型的访问权限。

Nextcloud 表示,其 Android Files 应用程序自 2016 年推出以来一直具有读写所有文件类型的权限,从未收到 Google 关于安全问题的投诉。然而,在 2024 年,Google Play Store 突然撤销了该权限,有效地限制了应用程序的功能。Nextcloud 试图与 Google 沟通,但只收到复制粘贴的开发者指南段落。尽管 Nextcloud 多次提出上诉,Google 仍拒绝恢复应用程序的全部功能。

Nextcloud 认为,Google 的行为是为了限制竞争,遏制小公司的发展。Nextcloud 援引了 Microsoft 和 Apple 等大公司的类似行为,指出这些公司曾被指控采取反竞争行为。Nextcloud 还提到,自己曾在 2021 年与其他公司一起向欧盟提出投诉,指控 Microsoft 的反竞争行为,但至今尚未得到解决。

Nextcloud 表示,小公司如自己几乎没有任何办法来对抗大公司的限制,监管机构的执法速度也太慢,罚款金额太少,无法对大公司产生有效的威慑作用。Nextcloud 认为,大公司担心小公司会破坏自己的市场份额,因此试图限制小公司的发展。Nextcloud 的 Android Files 应用程序目前有 824,000 名用户,公司表示将继续努力维护应用程序的功能和用户权益。


HN 热度 244 points | 评论 153 comments | 作者:brodo | 15 hours ago #

https://news.ycombinator.com/item?id=43970959

  • 谷歌对 NextCloud 应用的拒绝是由于安全问题,NextCloud 需要访问所有文件,但谷歌的政策不允许这样做
  • NextCloud 可以使用 FDroid 版本来绕过谷歌的限制
  • 谷歌的政策是为了保护用户的安全和隐私,但也可能限制了某些应用的功能
  • NextCloud 需要访问所有文件来实现其功能,但谷歌的政策不允许这样做,导致了冲突
  • 谷歌的政策可能是为了保护自己的利益,而不是真正考虑用户的需求
  • 使用 scoped storage 可以解决部分问题,但可能会有性能限制
  • 如果谷歌禁止安装非谷歌商店应用,可能会面临欧盟的罚款和处罚
  • 谷歌的政策可能会限制开发者的自由和创造力
  • NextCloud 可以使用其他方式来实现其功能,但可能会增加复杂性和不便利
  • 谷歌的政策可能会导致开发者选择其他平台或分发渠道
  • 谷歌的政策可能会损害用户的权益和利益
  • 谷歌应该考虑用户的需求和开发者的需求,找到一个平衡点来解决问题

Why I’m resigning from the National Science Foundation #

https://time.com/7285045/resigning-national-science-foundation-library-congress/

本文的作者阿隆德拉·纳尔逊(Alondra Nelson)宣布,她将辞去在国家科学基金会(National Science Foundation)和国会图书馆(Library of Congress)的职务。纳尔逊曾担任白宫科学和技术政策主任,她表示,尽管她曾希望这些公共机构能够继续其促进和保护知识的使命,但现实情况却使她无法继续下去。

纳尔逊指出,国家科学基金会和国会图书馆等机构正面临着日益恶化的政治环境,科学家、图书管理员和政策分析师们尽管努力工作,但仍然无法抵御来自行政部门的压力。这些机构的独立性和完整性正在被侵蚀,纳尔逊表示,她无法再继续为这些机构服务。

纳尔逊特别提到了国家科学基金会的现状,她表示,该机构的独立性已经被破坏,行政部门正在干预其决策过程。她还提到了国会图书馆的 Scholars Council,该机构原本应该为图书馆的项目提供咨询,但现在已经失去了其原本的功能。

纳尔逊表示,她的辞职是因为这些机构已经无法再履行其原本的使命,行政部门的干预已经使得这些机构失去了其独立性和完整性。她还提到了雷·布拉德伯里(Ray Bradbury)的著名小说《华氏 451 度》(Fahrenheit 451),该小说描绘了一个书籍被烧毁、知识被压制的社会,纳尔逊表示,现实情况已经与小说中的情景非常相似。

纳尔逊的辞职是对当前政治环境的严厉批评,她表示,行政部门的行为已经对知识的自由和民主的原则构成了严重的威胁。她还呼吁人们关注这些问题,防止知识和民主的进一步侵蚀。


HN 热度 215 points | 评论 247 comments | 作者:jbegley | 9 hours ago #

https://news.ycombinator.com/item?id=43973210

  • 美国的科学研究领域已经受到严重损害,尤其是在特朗普政府时期,许多外国科学家正在考虑离开美国或转向工业研究。
  • 美国的科学研究资金面临不确定性,未来几年可能难以恢复,导致科学研究人才流失和创新能力下降。
  • 大学不能同时要求公共资金支持和保持意识形态纯洁,政府不应根据政治倾向进行区分。
  • 行业研究与学术研究有所不同,行业研究往往受短期利润驱动,而学术研究则注重长期的科学进步和人类利益。
  • 行业研究并非完全不能进行基础科学研究,例如贝尔实验室和微软研究院等都有进行理论计算机科学和数学研究的例子。
  • 但是,某些科学领域如天文学、物理学和地质物理学等可能难以在行业中进行研究。

PDF to Text, a challenging problem #

https://www.marginalia.nu/log/a_119_pdf/

本文讨论了从 PDF 文件中提取文本的挑战。PDF 文件格式并不是一个文本格式,而是一个图形格式,它将字形映射到“纸张”上的坐标上。这种格式使得提取文本信息变得困难,因为字形可能被旋转、重叠和乱序排列,并且缺乏语义信息。

为了解决这个问题,作者尝试使用 PDFBox 的 PDFTextStripper 类,但是发现它有一些局限性,例如不能识别标题和其他语义信息。因此,作者进行了一些修改,以便更好地提取 PDF 文件中的文本信息。

首先,作者尝试识别标题。他们发现,标题通常使用粗体或更粗的字体,并且与其他文本隔离。然而,并不是所有的标题都使用粗体字体,有些标题可能使用字体大小来区分。为了解决这个问题,作者使用了字体大小的统计方法,计算每页的字体大小分布,并使用中位数作为阈值来识别标题。

其次,作者尝试连接连续的标题。他们发现,标题可能被分成多行,并且需要连接这些行以形成一个完整的标题。然而,这个问题并不是那么简单,因为有些标题可能使用右对齐或缩进来表示段落的开始。

最后,作者讨论了识别段落的方法。他们发现,PDFTextStripper 使用了一种混合方法,结合行距和缩进来识别段落。然而,这种方法有一些局限性,例如不能处理不同行距的文档。为了解决这个问题,作者使用了行距的统计方法,计算每页的行距分布,并使用中位数作为阈值来识别段落。

总的来说,本文讨论了从 PDF 文件中提取文本的挑战和解决方法。作者使用了统计方法和机器学习模型来识别标题、连接连续的标题和识别段落。这些方法可以帮助提高 PDF 文件中文本信息的提取准确性和效率。


HN 热度 209 points | 评论 113 comments | 作者:ingve | 9 hours ago #

https://news.ycombinator.com/item?id=43973721

  • PDF 转换为文本是一个具有挑战性的问题
  • 有些人曾经花费大量时间研究过 PDF 和 OCR,但后来却完全忘记了
  • Tesseract 是过去最好的开源 OCR,但现在 docTR 可能更好
  • 有些人尝试过使用 Tesseract 来提取 PDF 中的文本
  • 有人希望能够像浏览器的开发者工具一样查看 PDF 的内容流
  • PDF.js 可以将 PDF 渲染为 DOM,从而可以更容易地解析 PDF
  • cpdf 工具可以将 PDF 转换为 JSON 格式,但不能实现实时的交互
  • 有些人使用过 cpdf 工具来解析 PDF,但仍然存在一些限制
  • 有人认为能够像查看 HTML 源代码一样查看 PDF 的内容流是非常有用的