Comments 35
А можно рейтинг полезных постов запилить? Потомк что, например, открываю JavaScript и на первом месте пост с достаточно сомнительным содержанием.
-11
Как только вы определите количественный критерий полезности. Рейтинг — число, количество просмотров — число, количество комментариев — число. Полезность… А фиг ее знает.
Disclaimer: Подсветку, конечно, добавили, но на всякий случай — я не автор поста.
Disclaimer: Подсветку, конечно, добавили, но на всякий случай — я не автор поста.
+2
UFO just landed and posted this here
Да, полезность действительно звучит достаточно размыто. Я имел ввиду рейтинг постов, имеющих академическую ценность.
-8
Нет, я не понимаю минусующих — откройте и посмотрите на статьи в разделе JavaScript. Я понимаю, что рейтинг статей это круто, но такой рейтинг, как мне кажется — совсем не то, что нужно. Как минимум необходимо добавить учет свежести статей, так как технологии движутся вперед и актуальность со временем теряется, так же было бы не плохо учитывать рядом стоящие теги. В общем, рейтинг это больше, чем ранжирование по одному параметру.
-3
Так а кто виноват, что не полезные статьи заплюсованны?
+4
Я могу доказать, что на заплюсованность статьи ее содержание может влиять слабо. Вчера был праздник на хабре было 10 человек, завтра — рабочий день — в онлайне 100 человек. Как вы считаете: когда у статьи будет больше плюсов?
Я лишь хочу, чтобы рейтинг был качественней, не по одному параметру так сказать.
Я лишь хочу, чтобы рейтинг был качественней, не по одному параметру так сказать.
0
Можно по количеству добавлений в избранное. Странно, что я раньше об этом не подумал!
+4
UFO just landed and posted this here
на первом месте пост с достаточно сомнительным содержанием? вы что пропустили хабраистерику? :)
0
Это вы вовремя пост оформили — сегодня я просто не высплюсь. Найди я его (или он меня) завтра, и среда стала бы пятницей (сужу по количеству открытых вкладок — некоторые прочитать, некоторые просто освежить в памяти)…
0
Неожиданно обнаружила свои посты в топе целых двух хабов. Кажется, впервые за все такие рейтинги. Приятно!
+7
Ваш пост унес меня в страну занимательного чтения топовых постов хабов, которые я пропустил… некоторые даже перечитал.
Спасибо, мил человек.
Спасибо, мил человек.
+3
А где же электронная коммерция? Добавьте этот хаб плиз, если есть возможность.
0
Как-то странно. В DIY у вас на первом месте пост с рейтингом 603 вместо этого поста, у которого рейтинг 1448. В CSS на первом месте должен быть пост про цикад. "Прекратите скручивать!" попал в топ «Электроники для начинающих», но умудрился избежать топа «DIY».
+1
Я к сожалению сейчас не могу объяснить почему топовые пост про монитор и «цикад» не попали в соответствующие топы. Вечером приду и разберусь.
А пост про провода в топе DIY.
А пост про провода в топе DIY.
0
Действительно, в моих таблицах нету статей ни про цикад, ни про «приватный монитор». Спасибо, что заметили.
Решение проблемы
Посты парсятся по классу «posts shortcuts_items», но это не единственный возможный вариант представления поста на странице. Оказывается есть ещё и «post translation shortcuts_item», и, быть может, другие.
Но это решается очень просто — убираем конкретику из xpath-запроса, и всё парсится как надо:
Вот так бывает, хотел перестраховаться, a упустил целый класс статей!
Но это решается очень просто — убираем конкретику из xpath-запроса, и всё парсится как надо:
for elem in grab.doc.select('//div[@class="posts shortcuts_items"]/div'):
post_url = elem.node.find('h1[@class="title"]/a').get('href')
...
Вот так бывает, хотел перестраховаться, a упустил целый класс статей!
0
По заголовку показалось, что вы посчитаете средний рейтинг постов каждого хаба. Хотел посчитать его на основе вашей базы данных, но ее структура меня очень расстроила. Я ожидал, что будет таблица хабов и таблица постов (с указанием id хаба для каждого поста). А у вас почему-то отдельная таблица для каждого хаба. Нормально работать с этим невозможно. Но я упорный, поэтому вот результаты. В скобках указан средний рейтинг поста.
Хабы с самыми успешными постами: cases (86), it_bigraphy (79), diy (76), easyelectronics (73), announcements (72), iconoskaz (72), i2p (72), asm (69), dura_lex (68), antikvariat (64), data_visualization (64), ebay (63), freelance (62), history (61), videocards (61).
Хабы с самыми заминусованными постами: joomla (2), cubrid (2), cakephp (5), bitrix (5), ms_access (6), sup_fabrik (6), sharepoint (6), azure (8), mssql (8), doctrine (8), derbyjs (9), bada_dev (9), crm (9), asterisk (10), begun (10).
Хабы с самыми успешными постами: cases (86), it_bigraphy (79), diy (76), easyelectronics (73), announcements (72), iconoskaz (72), i2p (72), asm (69), dura_lex (68), antikvariat (64), data_visualization (64), ebay (63), freelance (62), history (61), videocards (61).
Хабы с самыми заминусованными постами: joomla (2), cubrid (2), cakephp (5), bitrix (5), ms_access (6), sup_fabrik (6), sharepoint (6), azure (8), mssql (8), doctrine (8), derbyjs (9), bada_dev (9), crm (9), asterisk (10), begun (10).
0
Ого, пищи для ума прибыло!
0
Спасибо! Пропал рабочий день. )
+1
На мой взгляд, использовать значение
Поэтому в качестве score лучше использовать нижнюю границу доверительного интервала для значения Уилсона. Подобный алгоритм используется для сортировки комментариев в реддите. Подробнее можно почитать тут:
Reddit’s comment ranking algorithm
Еще можно воспользоваться алгоритмом ранжирования для Hacker News:
How Hacker News ranking algorithm works
Но мне кажется он тут не очень уместен. Код с учетом изменений можно найти тут.
Результаты для JavaScript выглядят так:
количество плюсов - количество минусов
в качестве score не очень хорошо. Яркий пример: «хорошесть» статьи у которой 100 плюсов и 91 минус не равна «хорошести» статьи у которой 10 плюсов и 1 минус. Поэтому в качестве score лучше использовать нижнюю границу доверительного интервала для значения Уилсона. Подобный алгоритм используется для сортировки комментариев в реддите. Подробнее можно почитать тут:
Reddit’s comment ranking algorithm
Еще можно воспользоваться алгоритмом ранжирования для Hacker News:
How Hacker News ranking algorithm works
Но мне кажется он тут не очень уместен. Код с учетом изменений можно найти тут.
Результаты для JavaScript выглядят так:
JavaScript
Range, TextRange и Selection 0.972589869273
Verlet.js — физический движок на основе метода Верле 0.966886801027
Yaxy — proxy-сервер для веб-разработчика 0.966259530688
HTML и SVG: создаём интерактивную карту 0.965624633108
OCR и нейронная сеть на Javascript 0.964728338768
Ovation. Таблица аккордов своими руками с помощью JS и HTML5 0.961735221216
Замыкания и объекты JavaScript. Переизобретаем интерпретатор 0.961639697873
Путь JavaScript модуля 0.960745853351
Эффектная анимация разрушения (Pixel Dust) на JavaScript 0.958438712625
Работа с объектами в JavaScript: теория и практика 0.958049764164
Verlet.js — физический движок на основе метода Верле 0.966886801027
Yaxy — proxy-сервер для веб-разработчика 0.966259530688
HTML и SVG: создаём интерактивную карту 0.965624633108
OCR и нейронная сеть на Javascript 0.964728338768
Ovation. Таблица аккордов своими руками с помощью JS и HTML5 0.961735221216
Замыкания и объекты JavaScript. Переизобретаем интерпретатор 0.961639697873
Путь JavaScript модуля 0.960745853351
Эффектная анимация разрушения (Pixel Dust) на JavaScript 0.958438712625
Работа с объектами в JavaScript: теория и практика 0.958049764164
+3
Изумительно.
Было бы хорошо добавить фильтрацию по времени. И в таком варианте эту «фичу» можно добавлять на сам Хабр.
Было бы хорошо добавить фильтрацию по времени. И в таком варианте эту «фичу» можно добавлять на сам Хабр.
0
Автор, спасибо большое за проделанную работу! Уже есть что почитать, но если допилить, вообще цены не будет!
0
Не увидел хаб GTD
0
Чувствую, скоро придется поправлять список по категории pyhton :)
0
UPD4: функционал запилили на хабр!
0
Sign up to leave a comment.
Рейтинг постов хаба