Skip to content

Stoneberry/Phonetic_AlgorithmRu

Repository files navigation

Phonetic_AlgorithmRu

Phonetic algorithm for Russian

Фонетический алгоритм представляет собой алгоритм сравнения слов на основании их произношения.

Необходимые пакеты для работы программы

Необходимы пакеты Numpy и Pandas

Установка

Пакет можно скачать при помочь команды pip или pip3

pip install phonetic-algorithmRu

Импорт

import phonetic_algorithmRu
from phonetic_algorithmRu import transcription

>>> transcription.transcription('мама')
	['м', 'а', 'м', 'ъ']

Функции модуля transcription

transcription(word, stress=False, next_word=False, separate=True, stop=False, vcd=False)

Осуществляет создание фонетической транскрипции для слова с заданным пользователем ударением (номер гласного с конца слова). Требование указания слога с конца слова обусловлено тем, что функция обходит строку с конца. Если аргумент ударения не заполнен, программа автоматически ставит ударение на слог по формуле

$$
\frac{Nvowls}{2} + 1
$$

Аргументы

word - слово на русском языке
stress - номер слога с конца слова, на который должно падать ударение
separate - представление результата в виде массива фонетических представлений. При separate=False, программа вернет строку.
stop - при значении True ударение на слово не ставится
vcd - позволяет озвончить последний гласный

>>> transcription('потчевать', stress=3, separate=False)
		‘поч’ьвът’’
>>>  transcription('потчевать', stress=3)
		['п', 'о', 'ч’', 'ь', 'в', 'ъ', 'т’']

phrase_transformer(text, stresses=False, separate=True)

Преобразовывает в фонетическое представление строку любой длины, записанную кириллическими символами. При выборе ударения она ориентируется на данные Грамматического словаря русского языка А. А. Зализняка, что делает разбор более точным. В случае если в словаре было найдено несколько вариантов постановки ударения, будут выведены все возможные варианты. Если же слова нет в словаре, ударение определяется автоматически по формуле. Пользователь также может задать ударение самостоятельно.

Аргументы

text - текст на русском языке
stresses - массив номеров слогов с конца слова, на которые должны падать ударения
separate - представление результата в виде массива фонетических представлений. При separate=False, программа вернет строку.

>>> phrase_transformer('в комнате’)
		[[['ф'], ['к', 'о', 'м', 'н', 'ъ', 'т’', 'ь']]]
>>> phrase_transformer('замок', separate=False)
		[['замък'], [‘замок’]]
>>> phrase_transformer('Варкалось, хливкие шарьки пырялись по наве', stresses=[2, 3, 1, 2, -1, 1], separate=False)
		[['варкалъс’', 'хл’ифк’ьь', 'шар’к’и', 'пыр’ал’ьс’', 'пъ', 'нав’е']]

phonetic_distance(word1, word2, stresses=False, transcription=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]

About

Phonetic algorithm for Russian

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages