Na czytelność składają się głównie heurystyki, które w wielu przypadkach „po prostu jakoś dobrze działają”.
Napisałem kilka artykułów naukowych na ten temat i chciałbym wyjaśnić, dlaczego łatwo jest znaleźć rozwiązanie, które działa dobrze, a kiedy trudno jest uzyskać dokładność bliską 100%.
Wydaje się, że istnieje prawo językowe leżące u podstaw ludzkiego języka, które jest również (ale nie wyłącznie) widoczne w treści strony internetowej, które już dość wyraźnie oddziela dwa rodzaje tekstu (pełny tekst i niepełny tekst lub, z grubsza, „ treść główna „a„ szablonowy ”).
Aby uzyskać główną zawartość z HTML, w wielu przypadkach wystarczy zachować tylko elementy tekstowe HTML (tj. Bloki tekstu, które nie są przerywane przez znaczniki), które mają więcej niż około 10 słów. Wydaje się, że ludzie wybierają jeden z dwóch typów tekstu („krótki” i „długi”, mierzony liczbą słów, które emitują) dla dwóch różnych motywacji pisania tekstu. Nazwałbym je motywacjami „nawigacyjnymi” i „informacyjnymi”.
Jeśli autor chce, abyś szybko zrozumiał to, co jest napisane, używa tekstu „nawigacyjnego”, czyli kilku słów (np. „STOP”, „Przeczytaj to”, „Kliknij tutaj”). Jest to najbardziej widoczny typ tekstu w elementach nawigacyjnych (menu itp.)
Jeśli autor chce, abyś głęboko zrozumiał, co ma na myśli, używa wielu słów. W ten sposób niejednoznaczność jest usuwana kosztem wzrostu liczby zwolnień. Treść podobna do artykułu zwykle mieści się w tej klasie, ponieważ zawiera więcej niż tylko kilka słów.
Chociaż ta separacja wydaje się działać w wielu przypadkach, staje się trudna w przypadku nagłówków, krótkich zdań, zastrzeżeń, stopek dotyczących praw autorskich itp.
Istnieją bardziej wyrafinowane strategie i funkcje, które pomagają oddzielić główną treść od schematu. Na przykład gęstość linków (liczba słów w bloku, które są połączone w porównaniu z całkowitą liczbą słów w bloku), cechy poprzednich / następnych bloków, częstotliwość określonego tekstu bloku w „całej” sieci, Struktura DOM dokumentu HTML, wizualny obraz strony itp.
Możesz przeczytać mój najnowszy artykuł „ Wykrywanie tablic kotłowych przy użyciu funkcji płytkiego tekstu ”, aby uzyskać wgląd z teoretycznej perspektywy. Możesz również obejrzeć wideo z mojej prezentacji na VideoLectures.net.
„Czytelność” wykorzystuje niektóre z tych funkcji. Jeśli uważnie przyjrzysz się dziennikowi zmian SVN, zobaczysz, że liczba strategii zmieniała się w czasie, podobnie jak jakość ekstrakcji czytelności. Na przykład wprowadzenie gęstości linków w grudniu 2009 r. Bardzo pomogło w ulepszeniu.
Moim zdaniem nie ma zatem sensu mówienie „Czytelność robi to w ten sposób” bez podawania dokładnego numeru wersji.
Opublikowałem bibliotekę do ekstrakcji treści HTML Open Source o nazwie boilerpipe , która zapewnia kilka różnych strategii ekstrakcji. W zależności od przypadku użycia jeden lub drugi ekstraktor działa lepiej. Możesz wypróbować te ekstraktory na wybranych stronach, korzystając z towarzyszącej aplikacji sieciowej boilerpipe w Google AppEngine.
Aby liczby przemówiły, odwiedź stronę „ Benchmarks ” na wiki boilerpipe, która porównuje niektóre strategie ekstrakcji, w tym boilerpipe, Readability i Apple Safari.
Powinienem wspomnieć, że te algorytmy zakładają, że główna treść jest w rzeczywistości pełnym tekstem. Zdarzają się przypadki, w których „treść główna” jest czymś innym, np. Obrazem, tabelą, filmem itp. Algorytmy nie sprawdzą się dobrze w takich przypadkach.
Twoje zdrowie,
chrześcijanin