Phonetic algorithm for Russian
Фонетический алгоритм представляет собой алгоритм сравнения слов на основании их произношения.
Необходимы пакеты Numpy и Pandas
Пакет можно скачать при помочь команды pip или pip3
pip install phonetic-algorithmRu
import phonetic_algorithmRu
from phonetic_algorithmRu import transcription
>>> transcription.transcription('мама')
['м', 'а', 'м', 'ъ']
Осуществляет создание фонетической транскрипции для слова с заданным пользователем ударением (номер гласного с конца слова). Требование указания слога с конца слова обусловлено тем, что функция обходит строку с конца. Если аргумент ударения не заполнен, программа автоматически ставит ударение на слог по формуле
$$
\frac{Nvowls}{2} + 1
$$
word - слово на русском языке
stress - номер слога с конца слова, на который должно падать ударение
separate - представление результата в виде массива фонетических представлений. При separate=False, программа вернет строку.
stop - при значении True ударение на слово не ставится
vcd - позволяет озвончить последний гласный
>>> transcription('потчевать', stress=3, separate=False)
‘поч’ьвът’’
>>> transcription('потчевать', stress=3)
['п', 'о', 'ч’', 'ь', 'в', 'ъ', 'т’']
Преобразовывает в фонетическое представление строку любой длины, записанную кириллическими символами. При выборе ударения она ориентируется на данные Грамматического словаря русского языка А. А. Зализняка, что делает разбор более точным. В случае если в словаре было найдено несколько вариантов постановки ударения, будут выведены все возможные варианты. Если же слова нет в словаре, ударение определяется автоматически по формуле. Пользователь также может задать ударение самостоятельно.
text - текст на русском языке
stresses - массив номеров слогов с конца слова, на которые должны падать ударения
separate - представление результата в виде массива фонетических представлений. При separate=False, программа вернет строку.
>>> phrase_transformer('в комнате’)
[[['ф'], ['к', 'о', 'м', 'н', 'ъ', 'т’', 'ь']]]
>>> phrase_transformer('замок', separate=False)
[['замък'], [‘замок’]]
>>> phrase_transformer('Варкалось, хливкие шарьки пырялись по наве', stresses=[2, 3, 1, 2, -1, 1], separate=False)
[['варкалъс’', 'хл’ифк’ьь', 'шар’к’и', 'пыр’ал’ьс’', 'пъ', 'нав’е']]
Рассчитывает расстояние между двумя словами. Функция сравнивает две транскрипции, получившиеся в результате работы функции phrase_transformer, затем находит расстояние между ними с помощью функции lev_distance.Ударения могут быть прописаны пользователем.При наличии нескольких вариантов фонетического разбора слов, выводятся расстояния между всеми вариантами.
word1, word2 - слова на русском языке
stresses - массив номеров слогов с конца слова, на которые должны падать ударения
transcription - позволяет вывести фонетические представления слов
>>> phonetic_distance('замок', 'заминка')
[3.0, 2.475]
>>> phonetic_distance('замок', 'заминка', transcription=True)
[['замък', 'зам’инкъ', 3.0], ['замок', 'зам’инкъ', 2.475]]
>>> phonetic_distance('замок', 'замок', stresses=[1,2])
[0.25]