Любые идеи о эквиваленте JQuery кода READABILITY? (Или: построение наилучшей эвристики для поиска основного текста с использованием jQuery) - PullRequest
1 голос
/ 22 декабря 2009

http://lab.arc90.com/experiments/readability/ - очень удобный инструмент для удобного просмотра загроможденных газет, журналов и блогов. Это делается с помощью эвристики и поиска соответствующего основного текста веб-страницы. Его исходный код также доступен на http://lab.arc90.com/experiments/readability/js/readability.js

Мой коллега обратил на это мое внимание, когда я боролся с jQuery, чтобы получить " основной текст " любой газеты | журнал | блог | и т. д. сайт. Моя текущая эвристика (и реализация в jQuery) использует что-то вроде (это делается в пакете Firefox Jetpack):

$(doc).find("div > p").each(function (index) {  
    var textStr = $(this).text();
/*
     We need the pieces of text that are long and in natural language,
     and not some JS code snippets
    */
if(textStr.length > MIN_TEXT_LENGTH && textStr.indexOf("<script") <= 0) {    
    console.log(index);    
    console.log(textStr.length);
    console.log(textStr);
    $(this).attr("id", "clozefox_paragraph_" + index);
    results.push(index);

    wholeText = wholeText + " " + textStr;
}
});

Так что это что-то вроде "возьми абзацы внутри DIVs и проверь на наличие не относящихся к делу строк, таких как" script "". Я пробовал это, и большую часть времени он может захватить основной текст веб-статей, однако я хотел бы иметь лучшую эвристику или, возможно, лучший механизм выбора jQuery (и даже короче?).

У вас есть лучшие предложения?

PS: Может быть, "Найти самые внутренние DIV (то есть без дочерних элементов типа DIV) и взять их только

s" было бы лучшей эвристикой для моей текущей цели, но я не мог найти, как выразить это в JQuery.

Ответы [ 2 ]

1 голос
/ 27 сентября 2011

Обычно это делается путем анализа "плотности ссылок" элементов на странице. Чем выше плотность ссылки, тем больше вероятность, что она не будет содержательной. Вот отличное место, чтобы начать думать о методах и алгоритмах извлечения контента: http://www.quora.com/Whats-the-best-method-to-extract-article-text-from-HTML-documents

0 голосов
/ 24 марта 2011

Большинство статей имеют прямоугольный столбец текста. Попробуйте взять некоторую комбинацию размеров элемента и количества слов, которые он содержит (включая детей). Вы, вероятно, хотите отдать предпочтение узким и высоким дивам.

Что-то вроде probability of main text = (number of words) * (height / width) было бы хорошим началом.

...