Как оценить качество веб-страницы? - PullRequest
4 голосов
/ 01 мая 2010

Я занимаюсь университетским проектом, который должен собрать и объединить данные по теме, предоставленной пользователем. Проблема, с которой я столкнулся, состоит в том, что результаты поиска Google по многим терминам загрязнены автоматически генерируемыми страницами низкого качества, и если я их использую, я могу получить неверные факты. Как можно оценить качество / надежность страницы?

Вы можете подумать: «Нет, инженеры Google работают над проблемой в течение 10 лет, и он ищет решение», но если вы подумаете об этом, SE должна предоставить обновленный контент, и если он отмечает хорошую страницу как плохой, пользователи будут недовольны. У меня нет таких ограничений, поэтому, если алгоритм случайно пометит как плохие хорошие страницы, это не будет проблемой.

Вот пример: Скажите, что ввод buy aspirin in south la. Попробуйте поискать в Google. Первые 3 результата уже удалены с сайтов, но четвертый интересен: radioteleginen.ning.com/profile/BuyASAAspirin (не хочу делать активную ссылку)

Вот первый абзац текста:

Большой спрос на рецептурные лекарства из Канады в США в данный момент. Это потому что в США рецептурный препарат цены взлетели до небес, делая это трудным для тех, кто бьет ограниченным или концентрированные доходы, чтобы купить их много нужны лекарства. Американцы платят больше за их наркотики, чем кто-либо в класс.

Остальная часть текста похожа, а затем следует список связанных ключевых слов. Это то, что я считаю страницей низкого качества. Хотя этот конкретный текст, кажется, имеет смысл (за исключением того, что он ужасен), другие примеры, которые я видел (но пока не могу найти), - это всего лишь мусор, цель которого - привлечь некоторых пользователей из Google и получить бан через 1 день после создания .

Ответы [ 5 ]

6 голосов
/ 02 мая 2010

N-грамм Языковые модели

Вы можете попробовать обучить одну модель языка n-грамм на автоматически сгенерированных страницах спама и одну на коллекции других не спамовых веб-страниц.

Затем можно просто оценить новые страницы для обеих языковых моделей, чтобы увидеть, выглядит ли текст более похожим на веб-страницы со спамом или обычный веб-контент.

Лучший результат по закону Байеса

Когда вы оцениваете текст с помощью модели языка спама, вы получаете оценку вероятности обнаружения этого текста на веб-странице спама P(Text|Spam). Обозначение читается как вероятность Text, заданная Spam (page). Оценка по модели без спама является оценкой вероятности нахождения текста на веб-странице без спама, P(Text|Non-Spam).

Однако термин, который вы, вероятно, действительно хотите, это P(Spam|Text) или, что эквивалентно P(Non-Spam|Text). То есть вы хотите знать вероятность того, что страница равна Spam или Non-Spam, учитывая текст, который на ней появляется .

Чтобы получить любой из них, вам нужно использовать Закон Байеса , который гласит

           P(B|A)P(A)
P(A|B) =  ------------
              P(B)

Используя закон Байеса, мы имеем

P(Spam|Text)=P(Text|Spam)P(Spam)/P(Text)

и

P(Non-Spam|Text)=P(Text|Non-Spam)P(Non-Spam)/P(Text)

P(Spam) - ваше предварительное убеждение , что страница, выбранная случайным образом из Интернета, является страницей спама. Вы можете оценить это количество, посчитав, сколько спам-страниц имеется в некотором образце, или вы даже можете использовать его в качестве параметра, который вы вручную настраиваете на компромисс точности и отзываете , Например, присвоение этому параметру высокого значения приведет к тому, что меньшее количество спам-страниц будет ошибочно классифицировано как не спам, в то время как низкое значение приведет к тому, что меньшее количество не спам-страниц будет случайно классифицировано как спам.

Термин P(Text) - это общая вероятность найти Text на любой веб-странице. Если мы игнорируем, что P(Text|Spam) и P(Text|Non-Spam) были определены с использованием разных моделей, это можно рассчитать как P(Text)=P(Text|Spam)P(Spam) + P(Text|Non-Spam)P(Non-Spam). Это суммирует двоичную переменную Spam / Non-Spam.

Только классификация

Однако, если вы не собираетесь использовать вероятности для чего-либо еще, вам не нужно вычислять P(Text). Скорее, вы можете просто сравнить числители P(Text|Spam)P(Spam) и P(Text|Non-Spam)P(Non-Spam). Если первый размер больше, страница, скорее всего, является страницей спама, а если второй размер больше, то страница, скорее всего, не является спамом. Это работает, поскольку приведенные выше уравнения для P(Spam|Text) и P(Non-Spam|Text) нормализованы на одно и то же значение P(Text).

Инструменты

С точки зрения программных инструментов, которые вы могли бы использовать для чего-то подобного, SRILM было бы хорошим местом для начала, и это бесплатно для некоммерческого использования. Если вы хотите использовать что-либо в коммерческих целях и не хотите платить за лицензию, вы можете использовать IRST LM , который распространяется в рамках LGPL.

3 голосов
/ 01 мая 2010

Определить «качество» веб-страницы? Что такое показатель?

Если кто-то хотел купить фрукты, то поиск «больших сладких дынь» даст много результатов, содержащих изображения «нетканого» уклона.

Однако разметка и размещение этих страниц может быть звукорежиссурой.

Но страница фермера, представляющего его высококачественную, вкусную и полезную продукцию, может быть видна только в IE4.5, поскольку html «сломан» ...

1 голос
/ 02 мая 2010

, если вы ищете показатели, связанные с производительностью, тогда Y! Slow [плагин для Firefox] может быть полезен.

http://developer.yahoo.com/yslow/

1 голос
/ 01 мая 2010

Для каждого набора результатов по запросу ключевого слова выполните отдельный запрос Google, чтобы определить количество сайтов, ссылающихся на этот сайт, если другие сайты не ссылаются на этот сайт, а затем исключите его. Я думаю, что это было бы хорошим началом по крайней мере.

0 голосов
/ 03 мая 2010

Вы можете использовать контролируемую модель обучения для выполнения этого типа классификации. Общий процесс выглядит следующим образом:

  1. Получите набор образцов для обучения. Для этого необходимо предоставить примеры документов, которые вы хотите охватить. Чем более общим вы хотите быть, тем больше примерный набор вам нужно использовать. Если вы хотите сосредоточиться только на сайтах, связанных с аспирином, то это сокращает необходимый набор образцов.

  2. Извлечение функций из документов. Это могут быть слова, взятые с сайта.

  3. Введите элементы в классификатор, например, в ( MALLET или WEKA ).

  4. Оцените модель, используя что-то вроде перекрестная проверка в k-кратном размере .

  5. Используйте модель для оценки новых сайтов.

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

...