Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

И вновь закинул старик невод…

Anna | 16.06.2014 | нет комментариев
Примерно месяц назад я опубликовал пост Возвратился невод с тиной морскою…, речь там шла о сопоставлении частотных словарей Википедии и Башорга. В комментах было много идей насчёт того, как это сделать верно, а так же просьб распарсить другие сайты — Луркмор и безусловно же Програпрогр.

По ссылке частотные слова из комментариев Програ, которые никогда не встречались в постах Програ (осмотрительно, достаточно много ненормативной лексики):
docs.google.com/file/d/0B-1U-yPHh8eSbk52bW84NXFyYm8/edit?usp=sharing

Ещё за недолгое время нахождения тут, я не мог не подметить любовь здешних обитателей к созданию и употреблению «програслов», захотелось оценить масштабы явления.
Програслова (вернее словоформы, стеммингом не занимался) отсортированные по частоте употребления:
docs.google.com/file/d/0B-1U-yPHh8eST3l6M0tuZzVEOFE/edit?usp=sharing
Они же, но отсортированные в лексикографическом порядке:
docs.google.com/file/d/0B-1U-yPHh8eSaFVsYTdJaGtlQUU/edit?usp=sharing

Немножко кода:

#этот велосипед я использую неизменно для приобретения необходимых мне кусков html-а
def generic_get(soup,search_tag,condition):
    l=[]
    for e in soup.findAll(search_tag):
        d=dict(e.attrs)
        if condition(d):
            l.append(e)
    return l

#получаем текст поста
def get_post_text(main_soup):
    return generic_get(main_soup,
                       "div",
                       lambda d:d.get("class",[''])[0]=="post")[0].text

#получаем текст всех комментов
def get_comments_text(main_soup):
    return ' '.join([x.text for x in generic_get(main_soup,
                                                 "div",
                                                 lambda d:d.get("class",[''])[0]=="message")])

К примеру, для приобретения текста этого поста, необходимо сделать следующее:

>>> import BeautifulSoup
>>> import urllib
>>> bs=BeautifulSoup(urllib.urlopen("http://habrahabr.ru/post/192670/"))
>>> print get_post_text(bs)
И получим

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

Апдейт
В комментариях выложили частотный словарь Башорга — habrahabr.ru/post/192670/#comment_6692542

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

Источник: programmingmaster.ru
Оставить комментарий
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB