Авторский алгоритм поиска рифмы.
Код написан для quickpoeterGUI, но алгоритм можно использовать как самостоятельную консольную утилиту, можно — как Rust-библиотеку для своих приложений (с GPL-лицензией). Почти весь функционал (за исключением удаления из рассмотрения частей речи) доступен в quickpoeterGUI.
USAGE:
quickpoeter.exe [OPTIONS] <TO_FIND>
ARGS:
<TO_FIND> What to find (use ' to mind the stress)
OPTIONS:
-d, --debug Print all subdistances
-h, --help Print help information
-m, --measure <MEASURE> Measure distance to given word (primarly for debug purposes)
-n, --top-n <TOP_N> Number of returned best matches (doesn't affect speed) [default: 100]
-r, --rps <RPS> Remove some parts of speech separated with "+"
List of available parts of speech:
с существительное
п прилагательное
мс местоимение-существительное
мс-п местоименное-прилагательное
г глагол
н наречие
числ числительное
числ-п счётное прилагательное
вводн вводное слово
межд межометие
предик предикатив
предл предлог
союз союз
мс местоимение-существительное
мс-п местоименное-прилагательное
г глагол
н наречие
числ числительное
числ-п счётное прилагательное
вводн вводное слово
межд межометие
предик предикатив
предл предлог
союз союз
сравн сравнительная степень
част частица
? куски фразеологизмов и т.п.
-t, --theme <THEME> Mean theme name (one from config/themes.yaml)
-V, --version Print version information
Построен на следующих метриках:
- Расстояние между соответствующими гласными
- Расстояние между всеми возможными парами согласных (чем дальше в слове, тем меньше вес) и их наличие в слове.
- Расположение согласных относительно гласных в слове
- Длина (фильтр слишком коротких/длинных)
- Популярность (фильтр устаревших/редко используемых слов)
- Часть речи (штраф на глагольные/прилагательные)
- Значение слова (указывается через "тематику")
Больше подробностей (вместе с формулами) можно найти в комментариях в файле настроек config.yaml (файл можно и рекомендуется редактировать для своих нужд).
Использованные словари основаны на словарях Зализняка, распространяются под лицензией GPL, поэтому мои модифицированные словари в формате .pkl
(питоновский pickle
) также распространяются под лицензией GPL. В них также входят данные тренировки word2vec
на открытых литературных источниках.