Исследование фонетических алгоритмов
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
все повторяющиеся соседние буквы, за исключением буквы C.
2.Начало слова преобразовать по следующим правилам:> N> N> N> E> R
3.Удаляем на конце букву B, если она идет после M.
4.Заменяем C по следующим правилам
На Х: CIA > XIA, SCH > SKH, CH > XH
На S: CI > SI, CE > SE, CY > SY
На K: C > K
5.Заменяем D по следующим правилам
На J: DGE > JGE, DGY > JGY, DGI > JGY
На T: D > T
6.Заменяем GH > H, если это буквосочетание стоит не в конце и не перед гласной.
7.Заменяем GN > N и GNED > NED, если эти буквосочетания стоят в конце.
.Заменяем G по следующим правилам
На J: GI > JI, GE > JE, GY > JY
На K: G > K
9.Удаляем все H, идущие после гласных, но не перед гласными.
10.Выполняем последующие преобразования по правилам:
CK > K
PH > F
Q > K
V > F
Z > S
11.Заменяем S на X:
SH > XH> XIO> XIA
12.Заменяем T по следующим правилам
На X: TIA > XIA, TIO > XIO
На 0: TH > 0
Удаляем: TCH > CH
13.В начале слова преобразовать WH > W. Если после W нет гласной, то удалить W.
14.Если X в начале слова, то преобразовать X > S, иначе X > KS
.Удалить все Y, которые не находятся перед гласными.
.Удалить все гласные, кроме начальной.
Приведем примеры работы алгоритма Metaphone
AKXN > Агашин, Акаченок, Акишин, Аксионенко, Аксионов, Акчунаев, Акшанов, Акшенцев, Акшинский, Акшинцев, Акшонов.> Василишин, Васильчак, Васильченко, Васильчик, Васильчиков, Васильченко, Васильчук, Василющенко.> Серафимов, Серафимский, Серафимчук, Церейфман.
Одно и то же значение кода Metaphone имеют в среднем 6 фамилий.Metaphone (2000 год) несколько отличается от других фонетических алгоритмов, генерируя из исходного слова не один, а два кода (оба длиной до 4 символов) - один отражает основной вариант произношения слова, другой же - альтернативную версию. Он имеет большое количество различных правил, учитывающих, помимо всего прочего, различное происхождение слов, уделяя внимание восточно-европейским, итальянским, китайским словам и так далее. Правила преобразований достаточно многочисленны. (Приложение).
Примеры работы этого алгоритма> Гишаров.
KKRF > Гагаров, Кагаров, Качаровский, Качеровский, Качуривский, Качуров, Качуровский, Кичеров, Кокарев, Кокоуров, Кокоуров, Кочаров, Кочуров, Кукарев, Цакиров, Цокуров, Цугров.> Гишаров, Гочаров, Качеров, Качеровский, Кашаревский, Кочаров, Кочерев, Кочеряев, Кочураев, Кошарев, Кошеров.> Бановский, Бахновский, Биневский, Бинявский, Буйновский, Буяновский, Паневский, Пановский, Пановских, Пеньевский, Пиневский, Пиуновский, Пихновский.Metaphone сопоставляет в среднем 8-9 фамилий одному и тому же коду.
2.5 Алгоритм Caverphone
Алгоритм фонетического сравнения Каверфон (Caverphone) был создан в рамках Кавершамского проекте в университете Отаго в Новой Зеландии в 2002 году. Алгоритм позволяет акценты присутствующие в изучаемой зоне (южная часть города Дунедин, Новой Зеландия).
Новая версия Каверфон 2.0 была предложена для более общего фонетического сравнения.
Алгоритм вычисления кода Caverphone
1.Преобразовать имя или фамилию в нижний регистр (алгоритм чувствителен к регистру).
2.Удалить буквы e на конце.
.Преобразовать начало слова по следующей таблице (актуально для местных новозеландских имен и фамилий). При этом цифра 2 означает временную метку для согласной буквы, которая впоследствии будет удалена.
.Провести замены символов по следующей таблице:
Таблица 2.2 - Замена символов в алгоритме Caverphone
cqcicecytchcvdgtiotiadphbsh2qsisesy2chkf2gsiosiatfhps2
5. Заменить все гласные в начале слова на A, в остальных случаях на 3. Таким образом, цифра 3 служит временной меткой для гласной буквы, которая будет использоваться в последующих преобразованиях, а затем будет удалена. После, необходимо провести замены по следующим таблицам (условные обозначения: s+ - несколько идущих подряд символов, ^h - символ в начале строки, w$ - символ на конце строки):
. Удалить все цифры 2. Если на конце слова осталась цифра 3, то заменить её на A. Затем удалить все цифры 3.
. Обрезать слово до 10 символов, либо же дополнить до 10 символов единицами.
Пример работы данного алгоритма> Габрелян, Габриэлян, Габриэльян, Капарулин, Капралин, Капрелян.> Мейзерович, Мисарович, Мисюревич.> Балалаев, Балалиев, Балалуев, Билалиев, Билалов, Билялов, Болелов, Палилов, Полилов, Полуляхов.сопоставляет одному и тому же коду около 4-5 фамилий.
.6 Выводы
фонетический транскрипция алгоритм код
Большая часть этих алгоритмов реализована на множестве языков, в том числе на C, C++, Java, C# и PHP. Некоторые из них, например Soundex и Metaphone, интегрированы или реализованы в виде плагинов для многих популярных СУБД, а также используются в составе полноценных поисковых движков, например, Apache Lucene . Область их применения довольно специфична, ведь значительного повышения удобства для пользователей можно добиться лишь при поиске фамилий, но тем не менее грамотное их использование - это плюс для поисковых систем.
3. Фонетические алгоритмы для русского языка
.1 Описание алгоритма Фонетик
Фонетик получает на вход исходную строку и на основе правил, учитывающих произношение букв и слогов в русском языке, вырабатывает на выходе новую строку, называемую ключом для исходной строки. Ключ имеет переменную длину; из одной строки можно получить только один ключ.
Алгоритм включает следующие шаги.
. Преобразование строки в верхний регистр (это позволяет уменьшить алфавит в 2 раза и отсечь ошибки, связанные со случайными заглавными буквами в середине слова