?

Log in

No account? Create an account

Previous Entry | Next Entry

Облако Путина

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: Облако Путина после обрезания.

Comments

breqwas
Apr. 17th, 2015 01:13 am (UTC)
$ ./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 at 2015-04-17 01:14 am (UTC)
breqwas
Apr. 17th, 2015 02:16 am (UTC)
$ 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 at 2015-04-17 02:26 am (UTC)
breqwas
Apr. 17th, 2015 02:48 am (UTC)
И ещё подход. Попробовал отрезать от словаря "клюв", 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 путин
breqwas
Apr. 17th, 2015 03:00 am (UTC)
...заодно, раз уж машиночитаемый словарь под рукой, решил найти ответ на вопрос, мучивший ещё с детства: какое самое длинное слово в русском языке? Ответ: их два, "высокопревосходительство" и "человеконенавистнический", по 24 буквы. Самостоятельно найденное классе в седьмом "высококвалифицированный" - на букву короче, и это третье по длине слово в языке. Неплохо!
r_l
Apr. 17th, 2015 06:52 am (UTC)
сверхчеловеконенавистнечиский
greenkrokodilla
Apr. 17th, 2015 07:54 am (UTC)
сверхнедочеловеконенавистнический.
Посмотрись в зеркало
r_l
Apr. 17th, 2015 07:57 am (UTC)
ПЕПКА, ПРЫГНИ!
breqwas
Apr. 17th, 2015 09:47 am (UTC)
Нет такого слова в словарях, и в интернете нет :) Ну, почти нет.
Так-то "стасемидесятипятимиллимитровый" и "меламинокарбамидоформальдегидный" тоже длинные, но это же явное читерство.

Profile

knot
scholar_vit
scholar_vit

Latest Month

August 2018
S M T W T F S
   1234
567891011
12131415161718
19202122232425
262728293031 

Tags

Page Summary

Powered by LiveJournal.com
Designed by Paulina Bozek