Keterbacaan terutama terdiri dari heuristik yang "bekerja dengan baik" dalam banyak kasus.
Saya telah menulis beberapa makalah penelitian tentang topik ini dan saya ingin menjelaskan latar belakang mengapa mudah menghasilkan solusi yang berfungsi dengan baik dan ketika sulit untuk mendekati akurasi 100%.
Tampaknya ada hukum linguistik yang mendasari bahasa manusia yang juga (tetapi tidak eksklusif) terwujud dalam konten halaman Web, yang sudah cukup jelas memisahkan dua jenis teks (teks lengkap vs. non-teks lengkap atau, secara kasar, " konten utama "vs." boilerplate ").
Untuk mendapatkan konten utama dari HTML, dalam banyak kasus cukup hanya menyimpan elemen teks HTML (yaitu blok teks yang tidak terganggu oleh markup) yang memiliki lebih dari 10 kata. Tampaknya manusia memilih dari dua jenis teks ("pendek" dan "panjang", diukur dari jumlah kata yang mereka pancarkan) untuk dua motivasi penulisan teks yang berbeda. Saya menyebutnya motivasi "navigasi" dan "informasiasional".
Jika seorang penulis ingin Anda cepat mendapatkan apa yang tertulis, dia menggunakan teks "navigasi", yaitu beberapa kata (seperti "STOP", "Read this", "Click here"). Ini adalah jenis teks yang paling menonjol dalam elemen navigasi (menu, dll.)
Jika seorang penulis ingin Anda memahami secara mendalam apa yang dia maksud, dia menggunakan banyak kata. Dengan cara ini, ambiguitas dihilangkan dengan biaya peningkatan redundansi. Konten seperti artikel biasanya termasuk dalam kelas ini karena memiliki lebih dari beberapa kata.
Meskipun pemisahan ini tampaknya berhasil dalam banyak kasus, pemisahan ini menjadi rumit dengan tajuk utama, kalimat pendek, penafian, footer hak cipta, dll.
Ada strategi dan fitur yang lebih canggih, yang membantu memisahkan konten utama dari boilerplate. Misalnya kepadatan tautan (jumlah kata dalam blok yang ditautkan versus jumlah keseluruhan kata dalam blok), fitur blok sebelumnya / berikutnya, frekuensi teks blok tertentu di "keseluruhan" Web, Struktur DOM dari dokumen HTML, gambar visual halaman, dll.
Anda dapat membaca artikel terbaru saya " Deteksi Boilerplate menggunakan Fitur Teks Dangkal " untuk mendapatkan beberapa wawasan dari perspektif teoritis. Anda juga dapat menonton video presentasi makalah saya di VideoLectures.net.
"Keterbacaan" menggunakan beberapa fitur ini. Jika Anda mengamati dengan cermat log perubahan SVN, Anda akan melihat bahwa jumlah strategi bervariasi dari waktu ke waktu, dan begitu pula kualitas ekstraksi Keterbacaan. Misalnya, pengenalan kepadatan tautan pada bulan Desember 2009 sangat membantu peningkatan.
Menurut saya, oleh karena itu tidak masuk akal untuk mengatakan "Readability do it like that", tanpa menyebutkan nomor versi pastinya.
Saya telah menerbitkan pustaka ekstraksi konten Open Source HTML yang disebut boilerpipe , yang menyediakan beberapa strategi ekstraksi yang berbeda. Tergantung pada kasus penggunaan, satu atau ekstraktor lain bekerja lebih baik. Anda dapat mencoba ekstraktor ini pada halaman pilihan Anda menggunakan aplikasi web boilerpipe-pengiring di Google AppEngine.
Untuk membiarkan angka berbicara, lihat halaman " Benchmarks " di wiki boilerpipe yang membandingkan beberapa strategi ekstraksi, termasuk boilerpipe, Readability dan Apple Safari.
Saya harus menyebutkan bahwa algoritme ini mengasumsikan bahwa konten utama sebenarnya adalah teks lengkap. Ada kasus di mana "konten utama" adalah sesuatu yang lain, misalnya gambar, tabel, video, dll. Algoritme tidak akan berfungsi dengan baik untuk kasus seperti itu.
Bersulang,
Kristen