HTML 到文本:从网页文件中获取文字
有时您不需要文档。你想要一堵句子墙。分类器、语料库的训练数据
对于主题建模、嵌入索引的块、将忽略格式的摘要器的输入
无论如何——在所有这些中,每一个 # 和 | 和 ** 是一个字符
让你付出一些代价却什么也买不到。
这就是此页面的用途。放入一个 .html 或 .htm 文件,你会得到
可读的散文,没有标记——没有标签,没有属性,没有语法。免费,无需注册,50 MB 限制,
并且该文件之后不会存储在任何地方。如果您希望保留标题层次结构和表格,
HTML 到 Markdown 是兄弟姐妹
页面,上面的格式切换会将您的文件传送到该页面,而无需重新上传。
“剥离标签”实际上必须做对什么
天真地删除尖括号之间的所有内容都会产生垃圾,并且值得理解为什么 - 这就是可用文本和混乱文本之间的区别。
HTML有块元素和内联元素,它们需要相反的处理。当一个
</p> 关闭,下一个 <p> 打开,这是一个段落边界
需要成为换行符。当一个 </strong> 句子中间结束,这不是
根本没有边界——在那里插入换行符会将句子切成两半。如果弄错了,你就结束了
上面有文字 the quick brown fox 由于有人加粗,因此以四行单独的行形式出现
两个词。
工作的另一半是空白。当以下情况时,HTML 将连续的空格、制表符和换行符折叠为一个:
它会渲染,因此带有缩进的漂亮打印源包含大量空白
这本来就不应该是可见的。一个适当的 HTML 到文本 转换同样会折叠它
浏览器的方式,这就是为什么输出读起来像页面而不是文件的原因。
列表项有自己的行, <br> 变成中断,表格单元格被分开
而不是挤在一起。
实体、智能引号和神秘字符
HTML 对某些字符进行编码,这样它们就不会与标记发生冲突。 & 是一个
和符号。 < 是一个小于号。 是一个不间断的空格,
’ 是一个大写撇号, — 是一个破折号。在浏览器中你
你永远不会看到代码——你看到的是字符。
在提取的文本中,未解码的实体是毒药。标记器处理 ’ 作为几个
噪音标记,关键字匹配失败 don’t,以及任何下游字符串
比较悄然打破。所以实体在出去的时候就被解码了。不间断空格是一种偷偷摸摸的空格
特别是因为它们看起来与屏幕上的正常空间相同,但每一个都失败了
split(" ") 你写;它们在这里作为真实的空间出现。
编码也值得一看。大多数现代文件都声明 <meta charset="utf-8">,但是
较旧的页面和 CMS 导出有时是伪装的 Latin-1 或 Windows-1252。如果你的输出有
’ 撇号应该在的地方,源文件对其编码撒了谎——将其重新另存为
来自文本编辑器的 UTF-8 并再次转换。
从来不应该被阅读的文本
页面包含的单词比它显示的要多,其中一些在提取中出现:
- 导航和页脚文本。 菜单标签、面包屑路径、“返回顶部”、 底部有八十个链接的站点地图。合法的文本,在语义上毫无价值。关于已保存的新闻文章 这可能比文章本身更重要。
- Cookie 横幅和同意书副本。 出现在的两百字的法律样板 您从该域保存的每个页面 - 这意味着如果您正在构建语料库,您将要 重复它们一千次。
- Alt 文本和 ARIA 标签。 有时很有价值(图表的替代文本可能是唯一的 数据描述),有时只是“图像”重复四十次。
- 隐藏元素。 仅限屏幕阅读器的跨度、折叠的手风琴面板以及
<noscript>后备都包含源中的真实文本,即使您从未见过 他们渲染了。
如果来源很重要,最佳实践:从浏览器的阅读器模式保存页面,这会丢弃大部分内容 在家具到达文件之前。否则,转换然后修剪头部和尾部 输出。一旦你知道要寻找重复的样板文件,就很容易发现它,并且将其删除是最好的 您将在整个管道上花费宝贵的一分钟。
为什么纯文本在 NLP 工作中胜过 Markdown
这不仅仅是“Markdown,而是更简单”——对于很多管道来说,纯文本是正确的选择, Markdown 更糟。
- 嵌入。 嵌入模型会对您提供的任何内容进行编码,包括语法。管材 字符和标题哈希会在不增加意义的情况下移动向量,并且它们会侵蚀模型的 输入限制。干净的散文嵌入得更干净。
- 分类器和主题模型。 词袋和 TF-IDF 方法处理
**word**和word作为不同的标记,除非您预先清洁。跳过 完全有问题。 - 搜索索引。 大多数索引管道都需要句子。喂它们 Markdown 意味着 编写您不需要的剥离步骤。
- 句子分割。 像 spaCy 或 NLTK 这样的拆分器适用于散文。表语法 使它们产生碎片。
- 代币预算。 在长页面上,删除标记会有意义地减少令牌计数 — 输出下方的计数器准确显示了多少,并在相同的位置上比较两种格式 文件是一个一键实验。
您拥有的文件与您没有的页面
该工具可转换您上传的 HTML 文件。它不会去获取 URL。这种区别更重要 比看起来要好,因为这两种情况以不同的方式失败。
如果您的文件来自 JavaScript 密集型网站上浏览器的“另存为”,则它可能几乎不包含任何文本 - 只是一个空容器 div 和一个捆绑脚本,实际内容已在运行时生成 并且从未写入磁盘。你会得到一个几乎为空的结果,看起来转换器坏了。它 没有;这些词不在文件中。在来源中搜索您记得确认的句子。
当发生这种情况时,使用 Web2Txt 相反—— 它采用实时 URL、呈现页面并从结果中提取。当您已经拥有时使用此页面 文件:电子邮件导出、文档构建、CMS 转储、生成为 HTML 的报告、存档的 几年前的页面。
典型工作
- 建立培训或评估语料库 从存档页面的文件夹中,您可以在其中 希望在数千个文档中提供原始的散文和一致的格式。
- 可读性和内容审核 — 字数、阅读水平、关键词频率。所有的 这些需要没有标记扭曲数字的文本。
- 通过管道传输到脚本中。 纯文本进入
grep,wc, 一个 diff,或者是没有任何转义戏剧性的Python单行代码。 - 总结一下很长的一页 你不关心结构而宁愿花钱 内容上的标记。
- 从 HTML 文件中提取文本 对于翻译或转录工作,其中 翻译者想要的是句子,而不是别的。
常见问题解答
如何将 HTML 文件转换为文本?
放下 .html 或 .htm 上面的文件和可读文本返回,每个标签、脚本和样式块都被删除。免费,无需注册,每个文件 50 MB。下载为 .txt 或者直接将其复制到任何需要文字而不是标记的地方。
我可以通过粘贴 URL 来转换实时网页吗?
不在本页上 - 该文件需要您已有的文件。对于一个网址, Web2Txt 获取页面并直接提取它,这节省了“保存然后上传”的往返过程。将此页面用于您之前保存的页面、导出的电子邮件正文或由本地内容生成的 HTML。
它会删除导航、广告和 cookie 横幅吗?
样板文件是一种已知的危险,而不是一个已解决的问题。脚本、样式和标签始终不变;侧边栏或 cookie 通知是否算作内容是一个判断调用,保存的页面在同一个 DOM 中携带所有内容。浏览输出的顶部和底部——这是导航碎片收集的地方。
页面中的链接会发生什么情况?
锚文本会像文字一样保留下来,而其后面的 URL 却不会。 “请参阅安装指南”这句话会准确地转换为该内容,但没有指示它指向的位置。如果目的地很重要 - 构建链接映射、检查出站引用 - 使用 HTML 到 Markdown,它将 href 保留在括号语法中。
为什么我的输出充满空行和杂散字符?
通常,保存完整 DOM 的页面 - 隐藏的模板块、JSON-LD 有效负载、内联 SVG 和分析片段都位于该标记中,并且都包含某种文本。一旦您发现重复模式,单行正则表达式就会清除它,或者使用浏览器的阅读器视图重新保存页面并进行转换。
套房的其余部分
File2Txt 处理每一个支持的 如果您不想选择,可以从一个上传框选择一种格式。或者直接去: PDF 转文本 对于文件, 文字到文字 对于 DOCX, EPUB 转文本 对于电子书,以及 CSV 到文本 对于分隔数据。
使用代码?的 GitHub 到文本转换器, 的 GitLab 转换器 和 本地目录转换器 将整体压平 项目到一个文件中。并且 本指南 涵盖了为 LLM 准备文档的更广泛问题。
Repo2Txt 由以下人员构建和维护 v12hero, 一位独立开发人员,构建隐私优先的本机和网络应用程序。