LINUX.ORG.RU
ФорумTalks

Тролледетектор.


0

0

После скармливания скрипту

http://paste.ubuntu.com/224141/

Вот этого топика

http://www.linux.org.ru/view-message.jsp?msgid=3892599

Получаем такую картину:

http://pic.ipicture.ru/uploads/090722/21504/mIr5t2WA5U.png

Видно, что tommy проявляет активную позицию в треде, как обычно в прочем.

Кроме стандартного питоновского скрипт хочет установленный в системе w3m и питонолибу pydot.

★★★★★

Ответ на: комментарий от lv

Да, надо поделить на количество отправленных сообщений.

Вот выложит куда-нибудь, допишу патч ) А то так очень неудобно.

Davidov ★★★★
()
Ответ на: комментарий от hizel

сгенерьте уже экстрасенсов кто-нибудь.. еще был эпический тред про форматы МС-офиса, тоже схемку непрочь бы посмотреть.

Komintern ★★★★★
()

а зачем стрелки? не проще ли толщину никнейма увеличивать в зависимости от толщины тролля?

bsdelnik
()
Ответ на: комментарий от bsdelnik

> а зачем стрелки? не проще ли толщину никнейма увеличивать в зависимости от толщины тролля?

Так нагляднее кто кого и скакой силой троллит :)

lv ★★
()
Ответ на: комментарий от Komintern

Да вот пытаюсь. В картинку конвертить не хочет (более 32000 пикселей), kgraphviewer вот висит.

PolarFox ★★★★★
() автор топика
Ответ на: комментарий от Komintern

экстрасены у меня на img.flashtux.org не влезают :(
hizel@hzwork:~/lor$ ls -lh | grep extra
-rw-r--r-- 1 hizel hizel 31K Июл 22 15:55 extra2.dot
-rw-r--r-- 1 hizel hizel 3,0M Июл 22 15:57 extra2.gif
-rw-r--r-- 1 hizel hizel 8,3M Июл 22 15:56 extra2.png
-rw-r--r-- 1 hizel hizel 20K Июл 22 15:50 extra.dot
-rw-r--r-- 1 hizel hizel 3,3M Июл 22 15:52 extra.gif
-rw-r--r-- 1 hizel hizel 9,7M Июл 22 15:51 extra.png


всетаки для супер-мега-тредовых топиков стоит убрать setlinewidth и оставить weight


следующий шаг развития программы - видео динамики общения, как давеча проскаивали красивые ссылки на подобное для svn репозиториев популярных проектов

hizel ★★★★★
()
Ответ на: комментарий от hizel

> экстрасены у меня на img.flashtux.org не влезают :(

Попробуй optipng.

Deleted
()
Ответ на: комментарий от PolarFox

--- analizer.py-old	2009-07-22 15:15:22.000000000 +0400
+++ analizer.py	2009-07-22 16:13:09.565361025 +0400
@@ -34,6 +35,12 @@
         n += 1
     return sender, ansto, n
 
+def inc_dic(d, k):
+  if d.has_key(k):
+    d[k] += 1
+  else:
+    d[k] = 1
+
 if len(sys.argv) == 1:
     print "Usage:\nanalizer.py http://lorurl [file.gif] [keys]"
     print "Keys are: --with-ts, --lines, --no-subj"
@@ -54,10 +61,10 @@
         withsubj = False
 
 ## Статистика по пользователям.
-stat = {}
-
+stat_to = {}
+stat_from = {}
 
-f = os.popen("w3m -dump '%s&page=-1' -cols 200" % url)
+f = os.popen("w3m -dump '%s&page=-1' -cols 200 -no-cookie" % url)
 time.sleep(5)
 fullpage = f.read()
 lines = fullpage.splitlines()
@@ -72,6 +79,7 @@
 edges = {}
 while start < len(lines):
     sender, ansto, start = FindMessage(lines, start)
+    inc_dic(stat_from, sender)
     if not ansto:
         if nots:
             continue
@@ -86,10 +94,7 @@
             ansto = ansto.split(":")[1]
         if sender.find(">")!=-1 or ansto.find(">") != -1: continue
         
-        if stat.has_key(ansto):
-            stat[ansto] += 1
-        else: 
-            stat[ansto] = 1
+        inc_dic(stat_to, ansto)
 
         if not uselines:
             g.add_edge(pydot.Edge(sender, ansto))
@@ -112,12 +117,18 @@
               %s %s" % (subj,pic, pic))
 
 
+## Считаем глобальную статистику
+scores = {}
+
+for nick in stat_to:
+    scores[nick] = float(stat_to[nick])-stat_from[nick]
+
 ## Выводим статистику:
-m = max(stat.values())
-for nick, score in sorted(stat.items(), key=operator.itemgetter(1),
+max_score = max(scores.values())
+for nick, score in sorted(scores.items(), key=operator.itemgetter(1),
                           reverse=True):
-    score = score*100/m
-    if score < 50:
+    if score < 2:
         break
-    print '%s: %d%%' % (nick, score)
+    percent = int(score/max_score*100)
+    print '%s: %d%% (%d/%d)' % (nick, percent, stat_to[nick], stat_from[nick])
 

Davidov ★★★★
()
Ответ на: комментарий от PolarFox

Теперь w3m не выводит куку. Статистика более умная. Кстати, шрифт у меня не накладывается, не может найти.

Вообще рекомендую:

а) воспользоваться dvcs

б) почитать pep8 относительно именования функций, и стиля кода. http://www.python.org/dev/peps/pep-0008/ Прочитать один раз, зато потом меньше думать о мелочах.

Davidov ★★★★
()
Ответ на: комментарий от Davidov

davidov@theatre:~/tmp/tro$ python analizer.py "http://www.linux.org.ru/jump-message.jsp?msgid=3890998"
А "право читать" всё ближе...
convert: unable to read font `Times' @ magick/annotate.c/RenderType/1066.
convert: Non-conforming drawing primitive definition `�' @ magick/draw.c/DrawImage/3112.
Sherak: 100% (18/7)
iZEN: 63% (13/6)
Cancellor: 18% (10/8)

Davidov ★★★★
()
Ответ на: комментарий от Davidov

> почитать pep8 относительно именования функций, и стиля кода

Да ещё со всяких дотнетов тупая привычка ПисатьВотТак или вообщевоттак. Надо исправляться (:

PolarFox ★★★★★
() автор топика

Господа тролли, осильте optipng:

optipng -o7 out.png
OptiPNG 0.6.3: Advanced PNG optimizer.
Copyright (C) 2001-2009 Cosmin Truta.

** Processing: out.png
3056x1403 pixels, 4x8 bits/pixel, RGB+alpha
Reducing image to 2x8 bits/pixel, grayscale+alpha
Input IDAT size = 948275 bytes
Input file size = 949730 bytes

Trying:
zc = 9 zm = 9 zs = 0 f = 0 IDAT size = 475500
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 475379
zc = 9 zm = 9 zs = 1 f = 0 IDAT size = 443192
zc = 9 zm = 8 zs = 1 f = 0 IDAT size = 442956

Selecting parameters:
zc = 9 zm = 8 zs = 1 f = 0 IDAT size = 442956

Output IDAT size = 442956 bytes (505319 bytes decrease)
Output file size = 443027 bytes (506703 bytes = 53.34% decrease)

Итого в 2 раза размер файлов уменьшается.

EmStudio
()
Ответ на: комментарий от Davidov

> [ЖЖ] Ненавижу отступы в Питоне! http://omploader.org/iMjBuMA

> Сенсация-сенсация! iZEN и EmStudio толстые тролли.

Неа, там был не троллинг, а скорее понос негодования. Троллили меня.

/me щаслеф, что не видно IP-адресов

EmStudio
()
Ответ на: комментарий от EmStudio

> Господа тролли, осильте optipng:
может не делать комбайн, а выводить .png в stdout, а там уж по конвейеру его обрабатывать как вздумается?

lv ★★
()
Ответ на: комментарий от lv

Да комбайн и не нужен, оно нужно только перед аплоадом. А еще лучше генерить 1-битные картинки, тогда в 10 раз меньше объем.

EmStudio
()
Ответ на: комментарий от hizel

в догонку проценты по экстрасенсам:

Komintern: 100% (703/312)
Aora: 39% (206/51)
fura13: 31% (129/5)
Reset: 20% (192/111)
Chaoser: 8% (89/56)
RUS-42: 3% (17/4)
Umart: 3% (27/15)
one117: 2% (37/28)
Dimez: 0% (10/8)
abraziv_whiskey: 0% (3/1)

//устал ужо ждать когда этот png оптимизатор отработает ;(

hizel ★★★★★
()

Реквестирую выделение (цветом, или пофиг как) топикстартера. Просто жизненно необходимо.

anonymous4
()
Ответ на: комментарий от hizel

Вот надо подумать, может и неправильно, что
Komintern: 100% (703/312)
Aora: 39% (206/51)
fura13: 31% (129/5)

По идее, наверное, fura13 более крутой тролль, ведь на 5 коментов получил 129 реакций (хотя что-то мне кажется это неправдоподобным).

Господа, подскажите хорошую метрику. Сейчас количество ответов минус количество комментариев.

Davidov ★★★★
()
Ответ на: комментарий от Davidov

>Господа, подскажите хорошую метрику. Сейчас количество ответов минус количество комментариев.

Очевидно, что надо делить, а не вычитать.

anonymous4
()
Ответ на: комментарий от Davidov

да с учетом, если без учета топикстартера то ошибко:
$ ./trololo.py 'http://www.linux.org.ru/view-message.jsp?msgid=2023998' e1
!
Received cookie: JSESSIONID=24287223B4D978A1006E1251E69FE63B
Traceback (most recent call last):
  File "./trololo.py", line 85, in <module>
    scores[nick] = float(stat_to[nick])-stat_from[nick]
KeyError: 'MiDoS'

поставил условие чтобы пропускало:
hizel@hzwork:~/lor$ ./trololo.py 'http://www.linux.org.ru/view-message.jsp?msgid=2023998' e1
!
Received cookie: JSESSIONID=4D4F0E3779255B6B223CDBD46AE69982
Komintern: 100% (703/311)
Aora: 39% (206/51)
Reset: 21% (192/107)
Chaoser: 9% (89/52)
RUS-42: 3% (17/4)
Umart: 3% (27/14)
root_at_localhost: 2% (78/69)
one117: 2% (37/28)
fura13: 1% (9/5)
Dimez: 0% (10/8)
abraziv_whiskey: 0% (3/1)

ты бы посмотрел мой код, может я там что то неправильно скопипастил :-\

hizel ★★★★★
()
Ответ на: комментарий от zh

> Игнорируется: 0

странно, такое чувство, что должно быть:

Игнорируется: +inf

zh
()
Ответ на: комментарий от Davidov

> Господа, подскажите хорошую метрику. Сейчас количество ответов минус количество комментариев.
Ну так сам же и назвал - отношение запостил/получил отзыв - самая замечательная метрика. Вот по процентам не ясно - это проценты чего?

ИМХО, статистика интересна следующая (условные обозначения - Запостил/получил ответов - O/I)

Удельный вес троллей: (I-O)/O
то есть от
-1 - чего-то говорил, но всем пофиг...
0 - в явном троллинге не замечен
>0 - чем толще, тем значение выше.

lv ★★
()
Ответ на: комментарий от lv

> Удельный вес троллей: (I-O)/O

Нужно придумать какую-нибудь единицу измерения. Например 1 Гик.

Deleted
()
Ответ на: комментарий от Deleted

Ага.. что-то типа.. да ты в той теме на 3 гика натроллил :)
Может перед тем как называть - выявить чемпиона и уже тогда в его честь и вводить единицу измерения. Но при выявлении чемпиона стоит помнить, что программа не учитывает характер сообщений. И даже если откликов много, то это вовсе не значит, что объект именно тролль.. он может быть просто искренне тупым, кк например ent4jes и всех искренне возмущать своими постами. Ну и Гика я бы троллем не назвал - просто увлекающийся и принципиальный человек :)

lv ★★
()
Ответ на: комментарий от hizel

>ты бы посмотрел мой код, может я там что то неправильно скопипастил

Скопипастил неправильно. Но ещё у топикстартера парсилка странная. Сейчас чиню :) Это займёт время.

Davidov ★★★★
()
Ответ на: комментарий от lv

>Ну так сам же и назвал - отношение запостил/получил отзыв - самая замечательная метрика

Фиговая метрика: два ответа на один коммент, и ты уже тролль.

Davidov ★★★★
()
Ответ на: комментарий от Davidov

> Детектор срабатывает не на твои записи, а на бурную реакцию на них.

Все верно. Я высказал свое мнение, а меня пошли залпом валить, почуяв легкую добычу.

EmStudio
()
Ответ на: комментарий от Davidov

> Фиговая метрика: два ответа на один коммент, и ты уже тролль.
А как иначе? Можно, например считать троллем после 4 гиков.. то есть если тебе уж пятеро на один пост ответили, то запостил ты нечто очень трололошное..

lv ★★
()
Ответ на: комментарий от Davidov

в процентах нету geek-а, хотя его кол-во коментов было на уровне с моим. какие-то неправильные у вас проценты.

Komintern ★★★★★
()
Ответ на: комментарий от Komintern

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

Davidov ★★★★
()
Ответ на: комментарий от lv

> А как иначе? Можно, например считать троллем после 4 гиков.. то есть если тебе уж пятеро на один пост ответили, то запостил ты нечто очень трололошное..

Вы похоже меня не поняли. Вот это:

> Удельный вес троллей: (I-O)/O


выдаёт результат не в Гиках! Допустим, если 1 Гик = 100, то

(I-O)/O = 150 = 1,5 Гиков

Deleted
()

Раз уж вывод в gif было бы интересно сделать его динамическим, скажем масштаб времени 1 пост = 0.3 секунды. Т.е. с fps=3-4 кадра/cек. Один кадр - состояние на текущий момент времени (пост)

anonymous_incognito ★★★★★
()
Ответ на: комментарий от anonymous_incognito

Боюсь, будет жутко прыгать. При следующем посте graphviz может совсем по другому расставить узлы, в итоге получится мельтешение сплошное :(

anonymous4
()
Ответ на: комментарий от anonymous4

Взять координаты узлов от всей схемы, сохранить их отдельно, а потом по кусочку выводить их с известными координатами... Или такое оно не умеет?

EmStudio
()
Ответ на: комментарий от hizel

>экстрасены у меня на img.flashtux.org не влезают :(

И правильно делают. Этот флештукс для просмотра не удобен, ибо не зумится толком. Пользуйся picturepush.com , для больших изображений самое то.

По теме - идея потрясающа, реализации хороши.

yahoo ★★★
()
Ответ на: комментарий от lv

>Удельный вес троллей: (I-O)/O

Фигня получается:

davidov@theatre:~/my/trololo$ ./trololo.py 'http://www.linux.org.ru/jump-message.jsp?msgid=3888127'
!
lorhellboy: 2.00 (100%, 3 replies/1 comments)
Mystra_x64: 1.00 (50%, 2 replies/1 comments)
a3: 0.67 (33%, 5 replies/3 comments)
Dimez: 0.50 (25%, 3 replies/2 comments)
EmStudio: 0.46 (22%, 51 replies/35 comments)

Mystra_x64 почти не участвовал, но объявлен троллем. Нужна другая метрика.

Davidov ★★★★
()
Ответ на: комментарий от PolarFox

Классно. Хорошая штука. Надо только где-нибудь ссылку тут прикрепить или в вики закинуть в рубрику LOR-soft :)

f3ex ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.