scholar_vit: (knot)
[personal profile] scholar_vit

[livejournal.com profile] peresedov задает вопрос, чего не было в "Прямой линии" Путина. Это вопрос, конечно, интересный, но методически правильнее, на мой взгляд, было бы спросить, что там было.

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

library("tm")
library("wordcloud")
putin <- Corpus(DirSource(pattern="putin.txt"))
putin <- tm_map(putin,content_transformer(tolower))
putin <- tm_map(putin,removePunctuation)
putin <- tm_map(putin,stripWhitespace)
putin <- tm_map(putin,removeWords,stopwords("russian"))
putin <- tm_map(putin,removeWords,c("владимир",
                                    "владимиром",
                                    "владимирович",
                                    "путиным",
                                    "путин",
                                    "линия",
                                    "прямая",
                                    "мситтель",
                                    "кклеймёнов",
                                    "клеймёнов",
                                    "впутин",
                                    "мситтель:",
                                    "это",
                                    "вопрос",
                                    "ещё",
                                    "очень",
                                    "который",
                                    "которая",
                                    "которые",
                                    "которое"))
wordcloud(putin, max.words=200,
          scale=c(5,0.5),
          random.order=FALSE,
          use.r.layout=FALSE,
          colors=brewer.pal(8, "Dark2"))

А вот что у меня получилось:

Update: Облако Путина после обрезания.

Date: 2015-04-16 11:49 pm (UTC)
From: [identity profile] malyj-gorgan.livejournal.com
Не разбираюсь в программном синтаксисе, потому спрошу: а что в облаке с падежами и склонениями? Вот, есть "россии", а "россия" или "россией"? Или там "идет", но не "идем". Хотя, есть и "люди", и "людей"..., что, действительно вот настолько сильный перекос в конкретных формах для конкретных слов?

Date: 2015-04-17 12:15 am (UTC)
From: [identity profile] scholar-vit.livejournal.com
Падежные формы воспринимаются как отдельные слова. Ср. "эта" и "этим"

Date: 2015-04-17 05:29 am (UTC)
From: [identity profile] profpr.livejournal.com
Никогда не работал с русским - наврняка ведь стеммер для него тоже существует? Понимать, конечно, будет труднее.

Date: 2015-04-17 06:13 am (UTC)
From: [identity profile] scholar-vit.livejournal.com
Существует - мне было лень разбираться. Ладно, завтра поиграюсь с Rstem.

Date: 2015-04-17 06:51 am (UTC)
From: [identity profile] r-l.livejournal.com
mystem рекомендую

Date: 2015-04-17 12:10 am (UTC)
From: [identity profile] spamsink.livejournal.com
Нам всё время нужно спасибо людей нашей России. Поэтому всё-таки, пожалуйста, давайте просто будем, действительно, делать добрый бизнес и деньги. Надеюсь, тысяч миллиардов процентов. Люди должны.

Date: 2015-04-17 12:20 am (UTC)
From: [identity profile] malyj-gorgan.livejournal.com
Точно. Wow!

Date: 2015-04-17 12:23 am (UTC)
From: [identity profile] balalajkin.livejournal.com
Красиво! Замечательно!

Date: 2015-04-17 12:51 am (UTC)
From: [identity profile] breqwas.livejournal.com
Идеи навскидку:

- инфинитивы можно с некоторой точностью получить mystem'ом
- пессимизировать тривиальщину можно частотным словарём (навскидку нашёлся этот)

Не станет ли результат интереснее?

Date: 2015-04-17 01:13 am (UTC)
From: [identity profile] breqwas.livejournal.com
$ ./mystem -nl putin.txt | perl -MEncode -lnwe 's/\|.+//; s/\?//; print if length(decode_utf8($_)) > 3' | sort | uniq -c | sort -n | tail -n20

81 владимир
82 знать
82 хотеть
86 давать
98 чтобы
103 свой
105 если
112 такой
115 очень
116 сказать
117 говорить
118 сейчас
122 путин
127 мочь
142 человек
167 вопрос
200 который
235 весь
239 этот
399 быть

Скучно.
Что ж, попробую перевзвесить по словарю.
Edited Date: 2015-04-17 01:14 am (UTC)

Date: 2015-04-17 02:16 am (UTC)
From: [identity profile] breqwas.livejournal.com
$ join -i pmyst_sorted.txt freqs_uniq.txt | perl -lnawe 'print join "\t", sprintf("%.03f", $F[1] / $F[2]), $F[0]' | sort -n | tail -n30

2.286 данила
2.500 ворог
2.500 жульнический
2.500 многоконфессиональный
2.500 низковатый
2.500 нормандский
2.500 перерегистрировать
2.500 супердержава
2.500 тиранический
2.500 турбулентность
2.500 увековечивать
2.778 ксенофобия
2.857 макроэкономика
2.857 покритиковать
2.857 помечать
3.205 владимирович
3.333 субсидирование
3.523 должный
3.953 таки
4.286 паромный
4.444 забайкальский
4.444 космодром
5.000 морфин
5.000 регионал
5.882 юрьев
6.000 надой
6.000 обезболивание
6.818 донбасс
7.500 проиндексировать
7.500 сельхозпроизводство

Это вхождения, делённые на частоту. Так интереснее, конечно, но теперь тупо маргинальные слова лезут (супердержава, турбулентность, перерегистрировать - по одному вхождению). Если выкинуть все слова с менее чем 5 вхождениями, из 3400 останется 790, и топ такой:

0.955 спасибо
1.017 нибудь
1.053 минздрав
1.064 выплачивать
1.111 вынуждать
1.144 крым
1.149 отменять
1.275 путин
1.304 рублевый
1.373 иранский
1.477 поставлять
1.579 подрастать
1.589 санкция
1.628 фермер
1.667 минский
1.795 курсовой
1.935 триллион
1.951 госслужба
2.000 ипотека
2.000 ушаков
2.286 данила
2.778 ксенофобия
3.205 владимирович
3.333 субсидирование
3.523 должный
3.953 таки
4.444 космодром
5.882 юрьев
6.000 надой
6.818 донбасс

Вооот. Вот об этом он, наверное, и говорил. Ну, за вычетом оказавшихся в словаре имён-фамилий.
Это, понятно, только словарные слова, как правильно взвесить несловарные - я навскидку не придумал.

Ещё пробовал делить не на частотность, а на логарифм частотности. Топ всё так же был непримечательным набором частотных банальностей, но всплыли слова "россия", "донбасс" и "процент". :)

В исходном файле - и вопросы, и ответы, просто копипаст стенограммы. Из списка слов выкинул все короче четырёх букв (ещё на первом шаге), из частотного словаря - омографы по частям речи, в качестве частотности оставлял максимальную. Про инфинитивы верил mystem'у.


NB: я, несмотря на место работы, ничего не понимаю в том, как правильно анализировать тексты.
Edited Date: 2015-04-17 02:26 am (UTC)

Date: 2015-04-17 02:48 am (UTC)
From: [identity profile] breqwas.livejournal.com
И ещё подход. Попробовал отрезать от словаря "клюв", 100 самых частотных слов, и делить вхождения на логарифм частотности:

$ join -i pmyst_sorted.txt freqs_sin100.txt | perl -lnawe 'print join "\t", sprintf("%.03f", $F[1] / log(2.72 + $F[2])), $F[0]' | sort -n | tail -n30

7.354 крым
7.569 тоже
7.668 поставлять
7.710 сделать
7.754 малый
7.905 бизнес
7.971 потому
8.286 экономика
8.332 санкция
8.411 работать
8.678 космодром
9.414 донбасс
9.630 миллиард
9.726 проблема
9.978 пожалуйста
10.033 много
10.551 нужно
10.646 украина
11.071 здесь
11.193 процент
11.835 страна
12.351 конечно
12.663 спасибо
14.520 давать
15.426 владимир
18.555 таки
20.587 должный
22.987 владимирович
24.943 вопрос
26.584 путин

Date: 2015-04-17 03:00 am (UTC)
From: [identity profile] breqwas.livejournal.com
...заодно, раз уж машиночитаемый словарь под рукой, решил найти ответ на вопрос, мучивший ещё с детства: какое самое длинное слово в русском языке? Ответ: их два, "высокопревосходительство" и "человеконенавистнический", по 24 буквы. Самостоятельно найденное классе в седьмом "высококвалифицированный" - на букву короче, и это третье по длине слово в языке. Неплохо!

Date: 2015-04-17 06:52 am (UTC)
From: [identity profile] r-l.livejournal.com
сверхчеловеконенавистнечиский

Date: 2015-04-17 07:54 am (UTC)
From: [identity profile] greenkrokodilla.livejournal.com
сверхнедочеловеконенавистнический.
Посмотрись в зеркало

Date: 2015-04-17 07:57 am (UTC)
From: [identity profile] r-l.livejournal.com
ПЕПКА, ПРЫГНИ!

Date: 2015-04-17 09:47 am (UTC)
From: [identity profile] breqwas.livejournal.com
Нет такого слова в словарях, и в интернете нет :) Ну, почти нет.
Так-то "стасемидесятипятимиллимитровый" и "меламинокарбамидоформальдегидный" тоже длинные, но это же явное читерство.

Date: 2015-04-17 05:32 am (UTC)
From: [identity profile] greenkrokodilla.livejournal.com
Правильно, так в стандартном анализе
и делают - находят слова, имеющие
отличную от средней по языку частотность.
Они несут смысл - тему текста и/или
особенности речи автора.

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

Date: 2015-04-17 08:01 am (UTC)
From: [identity profile] r-l.livejournal.com
Блядь, ну нельзя же таким наглым быть. Я понимаю, жиды виноваты, но популярные пособия никто не отменял. Одно дело - когда человек честно говорит, что ничего в этом не понимает, другое - когда Пепка приходит этого человека учить.
Считается не средняя по языку частотность, а средняя частотность ближайшего контекста. Для отдельной речи - это другие речи того же автора, для корпуса политика - речи других политиков-современников - и так далее. Сравнение с общеязыковыми частотами ничего не дает практически никогда.

OMG

Date: 2015-04-17 01:48 pm (UTC)
From: [identity profile] greenkrokodilla.livejournal.com
OMG.
Why don't you go practice something your halfbrain can handle, like
sitting on a chair or switching a TV set on or off?

Image

OMG

Date: 2015-04-17 01:49 pm (UTC)
From: [identity profile] greenkrokodilla.livejournal.com
OMG.
Why don't you go practice something your halfbrain can handle, like
sitting on a chair or switching a TV set on or off?

sunnylol. com/ images/ 2012/ July/ 1 /4ff0401e03825.jpg

Re: OMG

Date: 2015-04-17 06:07 pm (UTC)
From: [identity profile] r-l.livejournal.com
ПЕПКА, ПРЫГНИ!

Date: 2015-04-17 01:18 am (UTC)
From: [identity profile] dmpogo.livejournal.com
Там было про собаку ! Про это целая статья на ББС

Date: 2015-04-17 01:48 am (UTC)
From: [identity profile] scholar-vit.livejournal.com
Параметр max.words=200 убил собаку

Date: 2015-04-17 01:37 am (UTC)
From: [identity profile] vgramagin.livejournal.com
Что характерно, миллиона нет. Или миллиарды, или тысячи...

Date: 2015-04-17 03:19 am (UTC)
From: [identity profile] Лев Горенштейн (from livejournal.com)
Ты крут.

Date: 2015-04-17 03:26 am (UTC)
From: [identity profile] scholar-vit.livejournal.com
Круты те, кто эти пакеты написали: Ingo Feinerer, Kurt Hornik, Ian Fellows. Я просто учусь разным новым для меня инструментам.

Date: 2015-04-17 03:51 am (UTC)
From: [identity profile] Лев Горенштейн (from livejournal.com)
Посмотрел статью про tm (http://www.jstatsoft.org/v25/i05/paper). Впечатлился. Но ты все равно крут ;-)

А корреляции в term-document matrix (рис. 6 в статье) не пытался рисовать? И сравнить с http://scholar-vit.livejournal.com/409889.html?thread=16389921#t16389921 ;-)

Date: 2015-04-17 03:54 am (UTC)
From: [identity profile] scholar-vit.livejournal.com
Нет, не рисовал... Я еще только учусь.

Date: 2015-04-17 04:15 am (UTC)
From: [identity profile] prostak-1982.livejournal.com
Читал в свое время про другую форму смыслового анализа.
Берется текст, потом из него выкидываются все существительные, прилагательные и прочее, оставляют только глаголы. Потом подсчитывают, сколько в тексте глаголов, которые можно назвать глаголами действия (сделать, построить, выполнить), а сколько глаголов, которые можно назвать глаголами состояния (думать, обсудить, рассмотреть).
Edited Date: 2015-04-17 04:15 am (UTC)

Date: 2015-04-17 06:56 am (UTC)
From: [identity profile] r-l.livejournal.com
Глаголы fucking многозначны, без дизамбигуации это превратится в цирк с конями.

Date: 2015-04-17 04:22 am (UTC)
From: [identity profile] brother2.livejournal.com
Нам всё нужно! Нам всё время нужно! - вполне тянет на нацидею.

Date: 2015-04-17 04:26 am (UTC)
From: [identity profile] vlkamov.livejournal.com
Странно, что вас это волнует.

Date: 2015-04-17 06:10 am (UTC)
From: [identity profile] scholar-vit.livejournal.com
Вообще-то text mining действительно далек от моих занятий, но мне в последнее время стало интересно, как они это делают.

Date: 2015-04-17 05:19 am (UTC)
From: [identity profile] greenkrokodilla.livejournal.com
Я не могу сказать, что сильно люблю Путина.
Однако я еще и разбираюсь в языках и в
программировании, помимо прочето, а потому
могу объяснить: то, что вы сделали - очень
дешевая и лживая пропаганда

Дело в том, что распределение слов в языках
сильно неравномерно. Есть некое частотное
ядро (и я выдумал нестандартный и более
быстрый способ учить языки, зная это).
Самые-самые частые слова (в любых - как
минимум европейских - языках) - предлоги,
союзы, прочие "служебные" или "грамматические"
слова.
Если хорошо знать их, язык начинаешь понимать
как в известном примере Щербы (глокая
куздра ... - ни одного слова не знаем, но
"всё" понятно).
Затем идет несколько "слоёв" слов, без
четких границ.
Ядро языка покрывает 85-90 процентов
общих текстов. А оставшиеся десятки тысяч
слов - длинный хвост распределения, попадающихся
в среднем раз на десятки тысяч слов текста.

Вы - будучи членом секты фанатиков-террористов,
которая каждый божий день ВОЮЕТ с народами,
внутри которых она живет - не озабочены
представлением реальности.
Потому вы взяли частотное распределение
НЕ ОТРЕЗАВ грамматические слова, потому что,
попробовав так и этак, вы решили, что
вот такая картинка выглядит наиболее издевательски.

'Смотрите, вот он Путен - "безусловно, эта,
этим, хотя, этих, далее" - хахаха, какой
обсос, видите? Да? да? да?


Что и было вашей целью (как это всегда является
целью любых еврейских воинов с людьми по
всему миру)

Очень интересная получилась шутка еврейского
юмора, животики надорвешь.


П.С. на днях наблюдал по ссылке из блога
Шнайера еще одного еврейского юмориста,
который (понятно, ненавидя Сноудена как
предателя "страны, которой владеют наши",
т.е. США) пришел его унизить, заставив
разговаривать про свой еврейский хуй.

Понятно, что другие, кто также тайно
Сноудена ненавидит, вроде брюса шнайера,
тут же объявили это интервью самым великим
из всех: ну это же "коомик", он объяснил
простым американцам на понятном им языке,
что такое NSA. На примере их собственного
хуя.

Date: 2015-04-17 05:26 am (UTC)
From: [identity profile] greenkrokodilla.livejournal.com
П.С. И еще - раз вы "учитесь пользоваться
новыми пакетами" (хотя эти задачи решаются
несколькими строчками на пёрле, без пакетов),
то - если не читаете книг - я вам раскрою
стандартную процедуру анализа речи.

Найдя частотное распределение его СРАВНИВАЮТ
С ОБЩИМ СРЕДНИМ частотным распределением
по большой массе подобного языка (сегодня
для этого есть "корпусы" языков).

И значимыми особенностями являются
СЛОВА, ИМЕЮЩИЕ ЧАСТОТНОСТЬ, ЗАМЕТНО
ОТЛИЧНУЮ ОТ ОБЩЕГО СРЕДНЕГО РАСПРЕДЕЛЕНИЯ.

А не то, что вы нам тут нарисовали.

Date: 2015-04-17 05:57 am (UTC)
From: [identity profile] profpr.livejournal.com
Было бы интересно сравнить результат с правильным "облаком Путина", сделанным профессионалом. Должно быть легко - ведь для него это просто несколько строчек на перле, без пакетов?

Date: 2015-04-17 07:49 am (UTC)
From: [identity profile] sidorow.livejournal.com
Интересно было бы сравнить вообще облака разнообразных граждан, и политиков в т.ч. Или где-то есть такие данные?

Date: 2015-04-17 06:55 am (UTC)
From: [identity profile] r-l.livejournal.com
О, настоящий олдфаг, оловянный солдат антижидовского фронта, давно таких не видал!

Date: 2015-04-17 07:16 am (UTC)
From: (Anonymous)
это же виртуал эмдрона

Date: 2015-04-17 07:52 am (UTC)
From: [identity profile] greenkrokodilla.livejournal.com
Ну, совсем недавно Боря "А-Вешать-
Мы-Их-Будем-Потом" Филатов жалостно
блеял о моем "антисемитизме", после
комментария где я назвал его надлежащим
именем.

Если жаловаться начинают даже такие
еврейские фашисты, это значит, что
что-то я понимаю очень правильно.
Феерическое было зрелище: преступник
против человечества (кстати: не
"человечности", а "человечества"),
военный преступник без срока давности,
жалится на то, что его оскорбляют
антисемиты.


Теперь в моей коллеции есть и ваш
автограф - в одной коробке с вашим
подельниками жидобандеровцами.
Good.

Date: 2015-04-17 07:54 am (UTC)
From: [identity profile] r-l.livejournal.com
Я как-то упустил Ваши трансформации, но добрый анонимус меня просветил. В это говно я уже вступал, ага.

Date: 2015-04-17 07:55 am (UTC)
From: [identity profile] r-l.livejournal.com
Кто, кстати, жаловался? Я просто отметил чистоту и незамутненность, вот эти вот все переносы строк, касплоки, сноуден, все, как мы любим.

Date: 2015-04-17 06:03 am (UTC)
From: [identity profile] vilomaxus.livejournal.com
Здравствуйте! Спасибо, за инфографику. Вопрос не совсем по теме поста - вы пользовались сервисом www.infogr.am? Как вам он?

Date: 2015-04-17 07:55 pm (UTC)
From: [identity profile] scholar-vit.livejournal.com
Нет, не пользовался.

Date: 2015-04-17 07:45 am (UTC)
From: [identity profile] sidorow.livejournal.com
А чего ты хотел, собссно?
В любой речи любого политика будет что-то в этом роде.
Что же до речи нормального человека - так в быту будет ещё и похлеще при соответствующей длины выборке.
From: [identity profile] ab-s.livejournal.com
Есть еще старый пионерский способ: берется исходная песня (стихотворение, параграф из учебника физики, речь Брежнева...) и после каждого нечетного предложения вставляется "в штанах", а после каждого четного -- "без штанов".

"Облако -- в штанах! -- Путина -- без штанов!"

:)

Profile

scholar_vit: (Default)
scholar_vit

January 2019

S M T W T F S
  12345
678 9101112
13141516171819
20212223242526
2728293031  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 23rd, 2025 04:20 am
Powered by Dreamwidth Studios