HTML ke Teks: Mendapatkan Hanya Perkataan Daripada Fail Halaman Web
Kadang-kadang anda tidak mahu dokumen. Anda mahu dinding ayat. Data latihan untuk pengelas, korpus
untuk pemodelan topik, potongan untuk indeks pembenaman, input untuk ringkasan yang akan mengabaikan pemformatan
anyway — dalam semua itu, setiap # dan | dan ** adalah watak yang
membebankan anda sesuatu dan tidak membelikan anda apa-apa.
Untuk itulah halaman ini. Masuk a .html atau .htm fail dan anda mendapat kembali
prosa yang boleh dibaca dengan tanda hilang — tiada teg, tiada atribut, tiada sintaks. Percuma, tiada pendaftaran, had 50 MB,
dan fail itu tidak disimpan di mana-mana selepas itu. Jika anda mahu hierarki tajuk dan jadual disimpan sebaliknya,
HTML kepada Markdown ialah adik beradik
halaman, dan togol format di atas membawa fail anda ke sana tanpa muat naik semula.
Perkara "Teg Pelucutan" Sebenarnya Perlu Diperbetulkan
Memadamkan segala-galanya secara naif di antara kurungan sudut menghasilkan sampah, dan patut difahami sebabnya — ia adalah perbezaan antara teks yang boleh digunakan dan kekacauan.
HTML mempunyai elemen blok dan elemen sebaris, dan ia memerlukan perlakuan yang bertentangan. Apabila a
</p> ditutup dan seterusnya <p> terbuka, itu sempadan perenggan dan
perlu menjadi pemisah baris. Apabila a </strong> menutup pertengahan ayat, itu bukan a
sempadan sama sekali — memasukkan baris baharu di sana akan menghiris ayat itu separuh. Silap ini dan anda tamat
dengan teks di mana the quick brown fox tiba sebagai empat baris berasingan kerana seseorang dicetak tebal
dua perkataan.
Separuh lagi kerja adalah ruang kosong. HTML meruntuhkan larian ruang, tab dan baris baharu kepada satu apabila
ia dipaparkan, jadi sumber yang telah dicetak cantik dengan lekukan mengandungi sejumlah besar ruang putih
yang tidak pernah dimaksudkan untuk dilihat. A betul HTML kepada teks penukaran meruntuhkannya sama
cara penyemak imbas lakukan, itulah sebabnya output berbunyi seperti halaman kelihatan dan bukannya seperti fail.
Item senarai mendapat baris mereka sendiri, <br> menjadi pecah, dan sel jadual dipisahkan
daripada tersekat bersama.
Entiti, Petikan Pintar dan Watak Misteri
HTML mengekod aksara tertentu supaya ia tidak bertembung dengan penanda. & ialah sebuah
ampersand. < adalah tanda kurang daripada. adalah ruang yang tidak pecah,
’ ialah apostrof kerinting, — adalah sengkang em. Dalam pelayar anda
tidak pernah melihat kod — anda melihat aksara.
Dalam teks yang diekstrak, entiti yang tidak dinyahkodkan adalah racun. Tokenizer merawat ’ sebagai beberapa
tanda bunyi bising, padanan kata kunci gagal dihidupkan don’t, dan sebarang rentetan hiliran
perbandingan senyap-senyap pecah. Jadi entiti akan dinyahkod semasa keluar. Ruang yang tidak pecah adalah yang licik
khususnya kerana ia kelihatan sama dengan ruang biasa pada skrin sementara gagal setiap
split(" ") anda menulis; mereka datang melalui sebagai ruang sebenar di sini.
Pengekodan juga patut dilihat. Kebanyakan fail moden mengisytiharkan <meta charset="utf-8">, tetapi
halaman lama dan eksport CMS kadangkala Latin-1 atau Windows-1252 menyamar. Jika output anda mempunyai
’ di mana tanda kutip sepatutnya, fail sumber berbohong tentang pengekodannya - simpan semula sebagai
UTF-8 daripada penyunting teks dan tukar semula.
Teks Yang Tidak Dimaksudkan untuk Dibaca
Halaman mengandungi lebih banyak perkataan daripada yang ditunjukkan kepada anda, dan beberapa daripadanya muncul dalam pengekstrakan:
- Navigasi dan teks pengaki. Label menu, denai serbuk roti, "kembali ke atas", yang lapan puluh pautan peta laman di bahagian bawah. Teks yang sah, tidak bernilai secara semantik. Pada artikel berita yang disimpan ini boleh mengatasi artikel itu sendiri.
- Sepanduk kuki dan salinan persetujuan. Dua ratus perkataan boilerplate undang-undang yang muncul pada setiap halaman yang anda simpan daripada domain itu — yang bermaksud jika anda membina korpus, anda akan melakukannya gandakan mereka seribu kali.
- Teks alt dan label ARIA. Kadangkala berharga (teks alt carta mungkin satu-satunya perihalan data), kadangkala hanya "imej" diulang empat puluh kali.
- Unsur tersembunyi. Rentang pembaca skrin sahaja, panel akordion runtuh dan
<noscript>sandaran semuanya mengandungi teks sebenar dalam sumber walaupun anda tidak pernah melihatnya mereka diberikan.
Amalan terbaik jika sumbernya penting: simpan halaman daripada mod pembaca penyemak imbas anda, yang membuang kebanyakannya perabot sebelum ia menyentuh fail. Jika tidak, tukar dan kemudian potong kepala dan ekor keluaran. Plat dandang berulang mudah dikesan sebaik sahaja anda tahu mencarinya, dan memotongnya adalah yang paling tinggi minit nilai yang anda akan belanjakan pada keseluruhan saluran paip.
Mengapa Teks Biasa Menyenangkan Markdown untuk Kerja NLP
Ini bukan sahaja "Markdown tetapi lebih ringkas" — untuk banyak saluran paip teks biasa ialah pilihan yang betul dan Markdown secara aktif lebih teruk.
- Embeddings. Model pembenaman mengekod apa sahaja yang anda berikan, termasuk sintaks. paip aksara dan cincang tajuk mengalihkan vektor tanpa menambah makna, dan mereka makan ke dalam model had input. Prosa bersih dibenamkan dengan lebih bersih.
- Pengelas dan model topik. Beg-of-words dan pendekatan TF-IDF merawat
**word**danwordsebagai token yang berbeza melainkan anda pra-bersih. Langkau ke masalah sepenuhnya. - Pengindeksan carian. Kebanyakan saluran paip indeks mahukan ayat. Memberi makan kepada mereka Markdown bermakna menulis langkah pelucutan yang anda tidak perlukan.
- Pembahagian ayat. Pemisah seperti spaCy atau NLTK berfungsi pada prosa. Sintaks jadual mengelirukan mereka untuk menghasilkan serpihan.
- Belanjawan token. Pada halaman yang panjang, menjatuhkan markup secara bermakna mengurangkan kiraan token — kaunter di bawah output menunjukkan kepada anda dengan tepat berapa banyak, dan membandingkan kedua-dua format pada yang sama fail ialah percubaan satu klik.
Fail yang Anda Ada berbanding Halaman yang Tiada
Alat ini menukar fail HTML yang anda muat naik. Ia tidak pergi dan mengambil URL. Perbezaan itu lebih penting daripada yang kelihatan, kerana kedua-dua situasi gagal dalam cara yang berbeza.
Jika fail anda datang daripada Save As penyemak imbas pada tapak yang berat JavaScript, ia mungkin mengandungi hampir tiada teks — hanya div bekas kosong dan skrip fail, dengan kandungan sebenar telah dijana semasa masa jalan dan tidak pernah ditulis ke cakera. Anda akan mendapat hasil yang hampir kosong dan ia akan kelihatan seperti penukar rosak. Ia tidak; perkataan tiada dalam fail. Cari sumber untuk ayat yang anda ingat untuk mengesahkan.
Apabila itu berlaku, gunakan Web2Txt sebaliknya - ia memerlukan URL langsung, memaparkan halaman dan ekstrak daripada hasilnya. Gunakan halaman ini apabila anda sudah mempunyai fail: eksport e-mel, binaan dokumentasi, pembuangan CMS, laporan yang dihasilkan sebagai HTML, arkib halaman dari tahun yang lalu.
Pekerjaan Biasa
- Membina korpus latihan atau penilaian daripada folder halaman yang diarkibkan, di mana anda mahukan prosa mentah dan pemformatan yang konsisten merentas beribu-ribu dokumen.
- Kebolehbacaan dan audit kandungan — bilangan perkataan, tahap bacaan, kekerapan kata kunci. Semua ini memerlukan teks tanpa tanda yang memesongkan nombor.
- Menyalurkan ke dalam skrip. Teks biasa masuk ke dalam
grep,wc, a diff, atau satu pelapik Python tanpa sebarang drama melarikan diri. - Merumuskan halaman yang panjang di mana anda tidak mengambil berat tentang struktur dan lebih suka berbelanja token pada kandungan.
- Mengekstrak teks daripada fail HTML untuk kerja terjemahan atau transkripsi, di mana penterjemah mahukan ayat dan tiada yang lain.
Soalan Lazim
Bagaimanakah cara menukar fail HTML kepada teks?
Lepaskan .html atau .htm fail di atas dan teks boleh dibaca kembali dengan setiap teg, skrip dan blok gaya dilucutkan. Percuma, tiada pendaftaran, 50 MB setiap fail. Muat turun sebagai .txt atau salin terus ke dalam apa sahaja yang memerlukan perkataan dan bukannya markup.
Bolehkah saya menukar halaman web langsung dengan menampal URL?
Bukan pada halaman ini — yang ini mengambil fail yang sudah anda miliki. Untuk URL, Web2Txt mengambil halaman dan mengekstraknya terus, yang menjimatkan perjalanan pergi dan balik simpan kemudian muat naik. Gunakan halaman ini untuk halaman yang anda simpan sebelum ini, badan e-mel yang dieksport atau HTML yang dijana oleh sesuatu tempatan.
Adakah ia mengalih keluar navigasi, iklan dan sepanduk kuki?
Boilerplate adalah bahaya yang diketahui dan bukannya masalah yang diselesaikan. Skrip, gaya dan teg sentiasa digunakan; sama ada bar sisi atau notis kuki dikira sebagai kandungan ialah panggilan penghakiman dan halaman yang disimpan membawa kesemuanya dalam DOM yang sama. Skim bahagian atas dan bawah output — di situlah serpihan navigasi terkumpul.
Apakah yang berlaku kepada pautan dalam halaman?
Teks sauh kekal sebagai perkataan dan URL di belakangnya tidak. Ayat yang berbunyi "lihat panduan pemasangan" bertukar kepada persis itu, tanpa menunjukkan ke mana ia dihalakan. Jika destinasi penting — membina peta pautan, menyemak rujukan keluar — gunakan HTML kepada Markdown, yang menyimpan href dalam sintaks kurungan.
Mengapakah output saya penuh dengan baris kosong dan aksara sesat?
Biasanya halaman yang disimpan dengan DOM penuhnya yang utuh — blok templat tersembunyi, muatan JSON-LD, SVG sebaris dan serpihan analitik semuanya hidup dalam penanda itu dan semuanya mengandungi jenis teks. Regex satu baris mengosongkan corak berulang sebaik sahaja anda melihatnya, atau simpan semula halaman menggunakan paparan pembaca penyemak imbas dan tukarkannya.
Selebihnya Suite
File2Txt mengendalikan setiap yang disokong format daripada satu kotak muat naik jika anda lebih suka tidak memilih. Atau pergi terus: PDF ke teks untuk dokumen, Perkataan ke teks untuk DOCX, EPUB kepada teks untuk e-buku, dan CSV kepada teks untuk data terhad.
Bekerja dengan kod? The GitHub kepada penukar teks, yang GitLab penukar dan penukar direktori tempatan ratakan keseluruhan projek ke dalam satu fail. Dan panduan ini merangkumi persoalan yang lebih luas untuk menyediakan dokumen untuk LLM.
Repo2Txt dibina dan diselenggara oleh v12hero, pembangun bebas membina apl asli dan web yang mengutamakan privasi.