Читання в основному складається з евристики, яка "просто якось добре працює" у багатьох випадках.
Я написав кілька науково-дослідних робіт на цю тему, і я хотів би пояснити, чому легко знайти рішення, яке добре працює і коли важко наблизитися до 100% точності.
Здається, що в людській мові лежить лінгвістичний закон, який також (але не виключно) виявляється у вмісті веб-сторінок, який уже досить чітко розділяє два типи тексту (повнотекстовий проти не повнотекстовий або, приблизно). основний зміст "проти" котлован ")
Для отримання основного вмісту з HTML, у багатьох випадках достатньо зберегти лише текстові елементи HTML (тобто блоки тексту, які не перериваються розміткою), які містять більше ніж 10 слів. Схоже, люди обирають два типи тексту ("короткий" і "довгий", вимірюється кількістю слів, які вони випускають) для двох різних мотивацій написання тексту. Я б назвав їх "навігаційними" та "інформаційними" мотиваціями.
Якщо автор хоче, щоб ви швидко отримали те, що написано, він / вона використовує "навігаційний" текст, тобто кілька слів (наприклад, "СТОП", "Прочитайте це", "Клацніть тут"). Це найвизначніший тип тексту в навігаційних елементах (меню тощо)
Якщо автор хоче, щоб ви глибоко зрозуміли, що він / вона означає, він / вона використовує багато слів. Таким чином, неоднозначність знімається ціною збільшення надмірності. Статті, подібні до вмісту, зазвичай належать до цього класу, оскільки він містить більше ніж кілька слів.
Хоча цей поділ, здається, працює у безлічі випадків, він стає непростим із заголовками, короткими реченнями, відмовами від права, авторськими колонтитулами тощо.
Існують більш складні стратегії та функції, які допомагають відокремити основний вміст від котла. Наприклад, щільність посилання (кількість слів у блоці, які пов'язані проти загальної кількості слів у блоці), особливості попереднього / наступного блоків, частота конкретного тексту блоку в "цілому" Web, DOM-структура HTML-документа, візуальне зображення сторінки тощо.
Ви можете прочитати мою останню статтю " Виявлення котлових плит за допомогою функцій дрібного тексту ", щоб отримати деяке розуміння з теоретичної точки зору. Ви також можете подивитися відео з моєї презентації на VideoLectures.net.
"Читання" використовує деякі з цих функцій. Якщо ви уважно перегляньте журнал змін SVN, то побачите, що кількість стратегій змінювалася з часом, а також якість видобутку читабельності. Наприклад, впровадження щільності зв’язків у грудні 2009 р. Дуже сприяло покращенню.
На мій погляд, тому не має сенсу говорити "Читання робить це так", не зазначаючи точний номер версії.
Я опублікував бібліотеку вилучення вмісту з відкритим кодом HTML під назвою bojpipe , яка пропонує кілька різних стратегій вилучення. Залежно від випадку використання, одна чи інша витяжка працює краще. Ви можете спробувати ці витяжки на вибраних вами сторінках за допомогою супровідного котла-веб-програми в Google AppEngine.
Щоб дозволити цифрам говорити, перегляньте сторінку «Орієнтовні показники » на вікі-трубопроводі бойлера, де порівнюються деякі стратегії видобутку, зокрема котловарка, читабельність та Apple Safari.
Слід зазначити, що ці алгоритми припускають, що основний вміст насправді є повним текстом. Бувають випадки, коли "основний вміст" - це щось інше, наприклад зображення, таблиця, відео тощо. Алгоритми не працюватимуть добре для таких випадків.
Ура,
Християнин