Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Список использованных источниковСодержание книги Поиск на нашем сайте
1. Дональд Э. Кнут. Искусство программирования. Т. 3. Сортировка и поиск. М.: Издат. дом «Вильямс», 2005. 2. Каньковски П. «Как ваша фамилия», или Русский MetaPhone // Программист. 2002. №8. С. 36-39. 3. Гешвинде Э., Шениг Г. Разработка Web-приложений на PHP и PostgreSQL. 4. Лиманов Н. И., Седов М. Н. Метод автоматизированного поиска персональных данных на основе нечеткого сравнения // Информационные технологии. 2009. №11. С. . Бойцов Л.М. Использование хеширования по сигнатуре для поиска по сходству // Прикладная математика и информатика. 2000. №7. . Федоркова Г.О. Применение метода нечеткого поиска в операции соединения реляционных таблиц баз данных. Электронный журнал «Исследовано в России, 2004. . Международный журнал Программные продукты и системы в выпуске журнала №1 за 2011 год. . Кнут Дональд. Искусство программирования, том 1: Пер. с англ. / Дональд Кнут. - М.: Вильямс, 2000. - 690 с. . Марков А.А. Теория алгоритмов / А.А. Марков, Н.М. Нагорный. - М.: Наука. Главная редакция физико-математической литературы, 1984. - 432 с. . Цыганов Н.Л. Обзор алгоритмов нечёткого сопоставления записей применительно к задаче исключения дублирования персональных данных [Электронный ресурс]/ Н.Л. Цыганов, М.В. Марковский. - Московский инженерно-физический институт, 2006. - Режим доступа: http://www.library.mephi.ru/data/scientific-sessions/2006/t15/1-1-25.doc
Приложение Программа для АЛГОРИТМА METAPHONE
#include <stdio.h> #include <string.h> #include <ctype.h> #define TRUE (1) #define FALSE (0) #define NULLCHAR (char *) 0*VOWELS="AEIOU", *FRONTV="EIY", *VARSON="CSPTG", *DOUBLE=".";*excpPAIR="AGKPW", *nextLTR ="ENNNR";*chrptr, *chrptr1;phonetic(name,metaph,metalen) char *name, *metaph;metalen; {ii, jj, silent, hard, Lng, lastChr;curLtr, prevLtr, nextLtr, nextLtr2, nextLtr3;vowelAfter, vowelBefore, frontvAfter;wname[60];*ename=wname;= 0;(ii=0; name[ii]!= '\0'; ii++) {(isalpha(name[ii])) {[jj] = toupper(name[ii]);++; } }[jj] = '\0';(strlen(ename) == 0) return;((chrptr=strchr(excpPAIR,ename[0]))!= NULLCHAR) {= nextLTR + (chrptr-excpPAIR);(*chrptr1 == ename[1]) strcpy(ename,&ename[1]); }(ename[0] == 'X') ename[0] = 'S'; if (strncmp(ename,"WH",2) == 0) strcpy(&ename[1], &ename[2]);= strlen(ename);= Lng -1;(ename[lastChr] == 'S') {[lastChr] = '\0';= strlen(ename);= Lng -1; } for (ii=0; ((strlen(metaph) < metalen) && (ii < Lng)); ii++) { curLtr = ename[ii];= FALSE; prevLtr = ' ';(ii > 0) {= ename[ii-1];(strchr(VOWELS,prevLtr)!= NULLCHAR) vowelBefore = TRUE; }(ii == 0 && (strchr(VOWELS,curLtr)!= NULLCHAR)) {(metaph,&curLtr,1);; }= FALSE; frontvAfter = FALSE; nextLtr = ' ';(ii < lastChr) {= ename[ii+1];(strchr(VOWELS,nextLtr)!= NULLCHAR) vowelAfter = TRUE;(strchr(FRONTV,nextLtr)!= NULLCHAR) frontvAfter =TRUE;(curLtr == nextLtr && (strchr(DOUBLE,nextLtr) == NULLCHAR)) continue;= ' ';(ii < (lastChr-1)) nextLtr2 = ename[ii+2];= ' ';(ii < (lastChr-2)) nextLtr3 = ename[ii+3];(curLtr) {'B': silent = FALSE;(ii == lastChr && prevLtr == 'M') silent = TRUE;(! silent) strncat(metaph,&curLtr,1);;'C': if (! (ii > 1 && prevLtr == 'S' && frontvAfter))(ii > 0 && nextLtr == 'I' && nextLtr2 == 'A')(metaph,"X",1);(frontvAfter)(metaph,"S",1);(ii > 1 && prevLtr == 'S' && nextLtr == 'H')(metaph,"K",1);(nextLtr == 'H')(ii == 0 && (strchr(VOWELS,nextLtr2) == NULLCHAR))(metaph,"K",1);(metaph,"X",1);(prevLtr == 'C')(metaph,"C",1);(metaph,"K",1);;'D': if (nextLtr == 'G' && (strchr(FRONTV,nextLtr2)!= NULLCHAR))(metaph,"J",1);(metaph,"T",1);;'G': silent=FALSE; /* SILENT -gh- except for -gh and no vowel after h */((ii < (lastChr-1) && nextLtr == 'H') && (strchr(VOWELS,nextLtr2) == NULLCHAR))=TRUE;((ii == (lastChr-3)) && nextLtr == 'N' && nextLtr2 == 'E' && nextLtr3 == 'D')=TRUE;((ii == (lastChr-1)) && nextLtr == 'N') silent=TRUE;(prevLtr == 'D' && frontvAfter) silent=TRUE;(prevLtr == 'G')=TRUE;=FALSE;(!silent)(frontvAfter && (! hard))(metaph,"J",1);(metaph,"K",1);;'H': silent = FALSE;(strchr(VARSON,prevLtr)!= NULLCHAR) silent = TRUE;(vowelBefore &&!vowelAfter) silent = TRUE;(!silent) strncat(metaph,&curLtr,1);;'F':'J':'L':'M':'N':'R': strncat(metaph,&curLtr,1);;'K': if (prevLtr!= 'C') strncat(metaph,&curLtr,1);;'P': if (nextLtr == 'H')(metaph,"F",1);(metaph,"P",1);;'Q': strncat(metaph,"K",1);;'S': if (ii > 1 && nextLtr == 'I' && (nextLtr2 == 'O' || nextLtr2 == 'A'))(metaph,"X",1);(nextLtr == 'H')(metaph,"X",1);(metaph,"S",1);;'T': if (ii > 1 && nextLtr == 'I' && (nextLtr2 == 'O' || nextLtr2 == 'A'))(metaph,"X",1);(nextLtr == 'H')(ii > 0 || (strchr(VOWELS,nextLtr2)!= NULLCHAR))(metaph,"0",1);(metaph,"T",1);(! (ii < (lastChr-2) && nextLtr == 'C' && nextLtr2 == 'H'))(metaph,"T",1);;'V': strncat(metaph,"F",1);;'W':'Y': if (ii < lastChr && vowelAfter) strncat(metaph,&curLtr,1);;'X': strncat(metaph,"KS",2);;'Z': strncat(metaph,"S",1);;; }metaphone(argc)argc; {name[128];metaph[50];(argc!= 1) {(stderr, "metaphone: argc!= 1\n");("");(1); }(name, sizeof(name));[0] = '\0';(name,metaph,20);(metaph);(1); }
|
||
|
Последнее изменение этой страницы: 2020-03-02; просмотров: 186; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.15 (0.006 с.) |