Преобразование HTML в текст: получение только слов из файла веб-страницы
Иногда вам не нужен документ. Вам нужна стена предложений. Данные обучения для классификатора, корпуса
для тематического моделирования, фрагменты для индекса внедрения, входные данные для сумматора, который игнорирует форматирование
во всяком случае — во всех этих, в каждом # и | и ** это персонаж, который
вам что-то стоит и ничего не дает.
Вот для чего предназначена эта страница. Загляните в .html или .htm файл, и вы получите обратно
читаемая проза без разметки — без тегов, без атрибутов, без синтаксиса. Бесплатно, без регистрации, ограничение 50 МБ,
и файл впоследствии нигде не сохраняется. Если вы хотите сохранить иерархию заголовков и таблицы,
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 и копия согласия. Двести слов юридического шаблона, который появляется на каждую страницу, которую вы сохраняете из этого домена. Это означает, что если вы создаете корпус, вы собираетесь дублируйте их тысячу раз.
- Замещающий текст и метки ARIA. Иногда ценно (замещающий текст диаграммы может быть единственным описание данных), иногда просто «изображение», повторенное сорок раз.
- Скрытые элементы. Промежутки только для чтения с экрана, свернутые панели-гармошки и
<noscript>все резервные варианты содержат реальный текст в исходном коде, даже если вы его никогда не видели их оказали.
Лучшая практика, если источник имеет значение: сохраните страницу в режиме чтения вашего браузера, который отбрасывает большую часть мебель еще до того, как она попадет в напильник. В противном случае преобразуйте, а затем обрежьте голову и хвост выход. Повторяющийся шаблон легко обнаружить, если знать, как его искать, и самое лучшее - это его отрезать. ценную минуту, которую вы потратите на весь конвейер.
Почему обычный текст лучше Markdown для работы в НЛП
Это не просто «Markdown, а проще» — для многих конвейеров правильный текст является правильным выбором и Markdown активно хуже.
- Вложения. Модель внедрения кодирует все, что вы ей даете, включая синтаксис. Труба символы и хеши заголовков сдвигают векторы, не добавляя смысла, и они разрушают модель. предел ввода. Чистая проза встраивается более чисто.
- Классификаторы и тематические модели. Подходы «мешок слов» и TF-IDF лечат
**word**иwordкак разные токены, если вы не очистите их предварительно. Пропустить проблема целиком. - Поисковая индексация. Большинству индексных конвейеров нужны предложения. Кормить их Markdown означает написание шага зачистки, который вам не нужен.
- Сегментация предложений. Сплиттеры, такие как spaCy или NLTK, работают с прозой. Синтаксис таблицы сбивает их с толку, заставляя производить фрагменты.
- Бюджет токена. На длинной странице удаление разметки существенно уменьшает количество токенов. — счетчик под выводом показывает, сколько именно, и сравнивает два формата на одном и том же файл представляет собой эксперимент в один клик.
Файл, который у вас есть, и страница, которой у вас нет
Этот инструмент преобразует загружаемый вами HTML-файл. Он не идет и не получает URL-адрес. Это различие имеет большее значение чем кажется, потому что обе ситуации терпят неудачу по-разному.
Если ваш файл получен из функции «Сохранить как» браузера на сайте с большим количеством JavaScript, он может почти не содержать текста — просто пустой контейнер контейнера и сценарий пакета, причем фактический контент создается во время выполнения и никогда не записывается на диск. Вы получите почти пустой результат, и это будет выглядеть так, будто преобразователь сломался. Это не сделал; слов нет в файле. Найдите в источнике предложение, которое вы не забыли подтвердить.
Когда это произойдет, используйте Web2Txt вместо этого — он принимает действующий URL-адрес, отображает страницу и извлекает из нее результат. Используйте эту страницу, если у вас уже есть файл: экспорт по электронной почте, сборка документации, дамп CMS, отчет, созданный в формате HTML, архивированный страница многолетней давности.
Типичные вакансии
- Создание корпуса обучения или оценки из папки архивных страниц, где вы вам нужна необработанная проза и единообразное форматирование тысяч документов.
- Читабельность и аудит контента — количество слов, уровень чтения, частота ключевых слов. Все им нужен текст без разметки, искажающей числа.
- Встраивание скриптов. Обычный текст переходит в
grep,wc, а diff или однострочник Python, не избегая драматизма. - Подведение итогов длинной страницы где вас не волнует структура и вы предпочитаете потратить токены на контенте.
- Извлечение текста из HTML-файла для работы по переводу или транскрипции, где переводчику нужны предложения и ничего больше.
Часто задаваемые вопросы
Как преобразовать HTML-файл в текст?
Отбросьте .html или .htm файл выше, и читаемый текст возвращается с удаленными всеми тегами, скриптами и блоками стилей. Бесплатно, без регистрации, 50 МБ за файл. Загрузите его как .txt или скопируйте его прямо в то место, где нужны слова, а не разметка.
Могу ли я преобразовать действующую веб-страницу, вставив URL-адрес?
Не на этой странице — здесь используется уже имеющийся у вас файл. Для URL-адреса Web2Txt извлекает страницу и извлекает ее напрямую, что позволяет избежать необходимости сохранения и загрузки. Используйте эту страницу для страниц, сохраненных вами ранее, экспортированных тел электронных писем или HTML-кода, созданного чем-то локальным.
Удаляет ли он навигацию, рекламу и баннеры cookie?
Шаблон — это скорее известная опасность, чем решаемая проблема. Скрипты, стили и теги всегда актуальны; вопрос о том, считается ли боковая панель или уведомление о файлах cookie контентом, является решающим фактором, и сохраненная страница содержит все это в одном и том же DOM. Просмотрите верхнюю и нижнюю часть выходных данных — именно здесь собирается навигационный мусор.
Что происходит со ссылками на странице?
Текст привязки сохраняется в виде слов, а URL-адреса, стоящие за ним, — нет. Предложение «см. руководство по установке» преобразуется именно в это, без указания того, куда оно указывает. Если пункты назначения имеют значение — построение карты ссылок, проверка исходящих ссылок — используйте HTML для Markdown, который сохраняет hrefs в синтаксисе скобок.
Почему мой вывод полон пустых строк и случайных символов?
Обычно страница сохраняется с полным неповрежденным DOM — скрытые блоки шаблонов, полезные данные JSON-LD, встроенный SVG и фрагменты аналитики — все они живут в этой разметке и содержат своего рода текст. Однострочное регулярное выражение очищает повторяющийся шаблон, как только вы его заметили, или повторно сохраните страницу, используя представление чтения браузера, и вместо этого преобразуйте его.
Остальная часть люкса
File2Txt обрабатывает все поддерживаемые формат из одного окна загрузки, если вы не хотите выбирать. Или идите напрямую: PDF в текст для документов, Слово в текст для DOCX, EPUB в текст для электронных книг и CSV в текст для данных с разделителями.
Работаете с кодом? Конвертер GitHub в текст, тот GitLab преобразователь и конвертер локальных каталогов сгладить целое проект в один файл. И это руководство охватывает более широкий вопрос подготовки документов для LLM.
Repo2Txt создан и поддерживается v12hero, независимый разработчик, создающий собственные и веб-приложения, ориентированные на конфиденциальность.