![]() #скриптики
Искал что-нибудь для статистического анализа текста, но толком не нашёл. Кстати, если кто посоветует пригодный софт или сайт с автоматом на нём, буду признателен. В общем, в итоге скачал Mystem и к этому допилил короткий скрипт на Перле: use strict; use warnings; my %count; while (<>) { $count{$_}++ for /(?<={)[^|}]+/g; } my $sum = 0; foreach my $str (sort keys %count) { $sum ++; } $count {"Total dictionary"} = $sum; printf "%-31s %s\\n", $_, $count{$_} for sort { $count{$b} <=> $count{$a} || $a cmp $b} keys %count; Ничего особенного, в общем-то, но если прогнать текст через Mystem, а результат — через скрипт (можно всё в один пайп засунуть), то в итоге получится список слов с числом повторений. В первой строке выводится общее число разных слов (активный словарный запас) cat text.txt | mystem -e cp1251 | perl frequency.pl > out.stat Выход Mystem выглядит примерно так: он{он}продолжал{продолжать}завтрак{завтрак} То, что нужно считать — в фигурных скобках, причём иногда бывает и так: это{это|этот} Первая строка в while находит все слова между { и } или между { и | и для каждого из этих слов делает инкремент счётчика в хэше. Собственно, на этом и всё. Цикл foreach считает число записей в хэше и затем добавляет ещё одним элементом. Последующий printf сортирует хэш по счётчику и печатает пару из ключа и значения. 25 октября 2015
|
![]() |
|
... примеры оксюморонов: "живой труп", "квадратный треугольник", "самодокументирующийся Perl"...
1 |
![]() |
|
Да ну, здесь же комменты писать не на что :)
Сейчас добавлю. |
![]() |
|
pskovoroda
Я про синтаксис в целом =-) ИМХО, Perl недалеко ушел от brainfuck-а. Шутка, конечно, но... |
![]() |
|
О, так поэтому я от него в таком восторге. Иногда программирование на нём вполне заменяет полноценный коитус.
1 |
![]() |
|
*возоржал под лавкою*
|
![]() |
|
Для русского или для какого применяться будет?
Какой именно анализ нужен? Возможных функций дофига. |
![]() |
|
pskovoroda
Типа такого? Иначе, если хочется самодельное - в Python есть NLTK, лемматизатор лучше использовать PyMorphy, с MWE всё так себе даже в английском, а в русском и подавно, так что можно не заморачиваться. |
![]() |
|
Cheery Cherry, спасибо.
Первое имеет ограничения и не делает того, что нужно. Второе вполне неплохо делается Mystem, но уже сразу из консоли и без Питона ;) Моей конечной целью было получить цифру для активного словарного запаса и статистику для того, чтобы эту цифру увеличить за счёт наиболее употребимых мною слов и выражений. Цифры теперь у меня есть, и я могу к ним приделать словарь сининимов. Потом прогнать проверку по уже использованным синонимам и вставить в текст предлагаемые варианты. Потом пройтись по всему этому человеком, естественно. |
![]() |
|
Чую-чую, велосипедьим духом пахнет :)
|
![]() |
|
На самом деле, есть такое:
https://fantlab.ru/article374 И вроде доступно, но для того, чтобы анализ работал, нужно размещать тексты на том сайте :( А мне хочется, чтобы они лежали, где лежат. Поэтому — не просто велосипед, а практически колесо ;) |
![]() |
|
Если уж быть совсем точным, то хотелось бы, чтобы это всё работало в ГуглДокс, сразу подсвечивая нужные слова и предлагая варианты.
Мечты, мечты... |