[{{mminutes}}:{{sseconds}}] X
Пользователь приглашает вас присоединиться к открытой игре игре с друзьями .

Форум «Пит-стоп» / Частотка буквенных сочетаний.

Voronov Сообщение #1 25 марта 2015 в 21:39
Кибергонщик
54
Тренировка частотки слов - дело хорошее. Но ведь часто попадаются много однотипных слов, со схожими буквенными сочетаниями и они которые не являются топовыми по частоте употребления.

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

Выборки на основе анализа самого большого словаря русских слов (160 000+) слов.

Формат простой: слева кол-во совпадений в словах, справа само сочетание. Отсортированы по кол-ву совпадений.

5 букв
6 букв
7 букв
8 букв
oil2015 Сообщение #2 25 марта 2015 в 22:24
Новичок
42
Исходный большой словарь находится по этой ссылке. К слову, там 125723 строки (слова).
Словарь в UTF-8.


Для того что бы самостоятельно сгенерировать совпадение, обладатели unix tools, могут использовать такую конструкцию.

# Пример для пятибуквенных, можно поменять изменив аргумент у awk с N=5 на N=8 для 8 букв
wget -qO - 'http://m.uploadedit.com/ba3b/1427310725879.txt' |  awk -vN=5 '{for (i = 1; i <= length($0) - N; i++) {r[substr($0, i, N)]++ } END {for (i in r) {print i" "r[i]}' | sort -nrk2


В приведенных выше файлах присутствует баг алгоритма генерации, учитываются не все комбинации.

P.S. катайте обычку



Voronov Сообщение #3 25 марта 2015 в 23:03
Кибергонщик
54
# Пример для пятибуквенных, можно поменять изменив аргумент у awk с N=5 на N=8 для 8 букв
wget -qO - 'http://m.uploadedit.com/ba3b/1427310725879.txt' |  awk -vN=5 '{for (i = 1; i <= length($0) - N; i++) {r[substr($0, i, N)]++ } END {for (i in r) {print i" "r[i]}' | sort -nrk2

У кого это работает, отпишитесь

Оригинальный словарь тут: https://www.dropbox.com/s/40i3dfnicwookbl/pldb-win.txt?dl=1

проверить правильность словарей по ссылкам выши могут обладатели unix tools, использовать такую конструкцию
grep авший pldb-win.txt | wc -l

за место авший любую комбинацию букв из словарей по ссылкам.
цифра должна соответствовать количеству совпадений в них.

И да, учитываются все комбинации соответствующие условию.
Последний раз отредактировано 20 марта 2016 в 18:04 пользователем Voronov
buzzy Сообщение #4 29 марта 2015 в 17:35
Кибергонщик
41
Поставил на виртуалку Lubuntu.

Скрипт работает, но есть пара моментов.
1) Потерялись фигурные скобки перед END и перед закрывающий одиночной кавычкой (клавогоночный форум сжирает).
2) У awk на поставленной ОС какие-то лютые проблемы с кодировкой. UTF-8 оно в упор не воспринимает (особо не разбираюсь, но какие-то параметры locale подёргал, не помогло), поэтому и length, и substr работают с байтами, а не символами. Соответственно, ничего не работает. Как выяснилось, помимо awk существует еще и gawk, у которого таких проблем нет. Поэтому использовал gawk.

В итоге скрипт такой:
wget -qO - 'http://m.uploadedit.com/ba3b/1427310725879.txt' |  gawk -vN=5 '{for (i = 1; i <= length($0) - N; i++) {r[substr($0, i, N)]++ } } END {for (i in r) {print i" "r[i]} }' | sort -nrk2
oil2015 Сообщение #5 31 марта 2015 в 22:24
Новичок
42
buzzy писал(а):
Поставил на виртуалку Lubuntu.

Скрипт работает, но есть пара моментов.
1) Потерялись фигурные скобки перед END и перед закрывающий одиночной кавычкой (клавогоночный форум сжирает).
2) У awk на поставленной ОС какие-то лютые проблемы с кодировкой. UTF-8 оно в упор не воспринимает (особо не разбираюсь, но какие-то параметры locale подёргал, не помогло), поэтому и length, и substr работают с байтами, а не символами. Соответственно, ничего не работает. Как выяснилось, помимо awk существует еще и gawk, у которого таких проблем нет. Поэтому использовал gawk.

В итоге скрипт такой:
wget -qO - 'http://m.uploadedit.com/ba3b/1427310725879.txt' |  gawk -vN=5 '{for (i = 1; i <= length($0) - N; i++) {r[substr($0, i, N)]++ } } END {for (i in r) {print i" "r[i]} }' | sort -nrk2


Добро пожаловать в ботнет
buzzy Сообщение #6 2 апреля 2015 в 00:55
Кибергонщик
41
oil писал(а):
Добро пожаловать в ботнет

Злой ты. :/

Чтобы писать в форуме, нужно зарегистрироваться.


Связаться
Выделить
Выделите фрагменты страницы, относящиеся к вашему сообщению
Скрыть сведения
Скрыть всю личную информацию
Отмена