Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Фонетический поиск / 9 сообщений из 9, страница 1 из 1
08.04.2004, 09:18
    #32473025
Vw
Vw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фонетический поиск
Коллеги не подскажите кто сталкивался с проблеммой
приближенного фонетического поиска.
Это типа : найти в таблице Иванов
но чтоб возвращалось несколько скожих значений
Ванов
Ивашкин
Нованов
...
Знаю для Inglish этот алгоритм есть и называется Soundex.
Приминительно к русскому не знаю.
...
Рейтинг: 0 / 0
08.04.2004, 09:24
    #32473031
Alexander G
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фонетический поиск
Был как-то чем-то схожий вопрос тут
...
Рейтинг: 0 / 0
08.04.2004, 09:43
    #32473063
Senin Viktor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фонетический поиск
Надо искть алгоритм либо самому реализововать подобие SOUNDEX из MS SQL. Где-то я это видел в каком-то журнале. Давно.
...
Рейтинг: 0 / 0
08.04.2004, 10:22
    #32473138
IgorM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фонетический поиск
...
Рейтинг: 0 / 0
08.04.2004, 12:30
    #32473441
Alex112
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фонетический поиск
Похоже, тот же алгоритм, ссылку на который дал IgorM. Где нашел не помню:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
'Функция нечёткого сравнения использует в качестве аргументов две строки и
'параметр сравнения - максимальную длину сравниваемых подстрок.
'Результатом работы функции является число, лежащее в пределах от 0 до 1.
'0 соответствует полному несовпадению двух строк, а
'1 - полной (в определённом ниже смысле) их идентичности.
'
'Алгоритм
'Функция сравнения составляет все возможные комбинации подстрок
'с длинной вплоть до указанной (если длина 0 или есть строка с
'длинной меньше указанной длинны, то выбирается минимальная длина строк)
'и подсчитывает их совпадения в двух сравниваемых строках. Количество совпадений,
'разделённое на число вариантов объявляется коэффициентом схожести строк и
'выдаётся в качестве результата работы функции.

Option Explicit

Public Function Compare(ByVal s As String, ByVal sOrig As String, Optional ByVal lLength As Long) As Double
    Compare = fStatL(s, sOrig, lLength)
End Function

Private Function fStatL(ByVal s As String, ByVal sOrig As String, ByVal lLength As Long) As Double
If Len(s) < lLength Or Len(sOrig) < lLength Or lLength =  0  Then If Len(s) < Len(sOrig) Then lLength = Len(s) Else lLength = Len(sOrig)

Dim l As Long
Dim lHits As Long
Dim lCount As Long
For l =  1  To lLength
    lHits = lHits + fStatIn(s, sOrig, l)
    lCount = lCount + Len(s) + Len(sOrig) -  2  * l +  2 
Next l
If lCount =  0  Then fStatL =  0  Else fStatL = lHits / lCount
End Function

Private Function fStatIn(ByVal s As String, ByVal sOrig As String, ByVal lLength As Long) As Long
Dim l As Long
For l =  1  To Len(s) - lLength +  1 
    If Not InStr(sOrig, Mid(s, l, lLength)) =  0  Then fStatIn = fStatIn +  1 
Next l

For l =  1  To Len(sOrig) - lLength +  1 
    If Not InStr(s, Mid(sOrig, l, lLength)) =  0  Then fStatIn = fStatIn +  1 
Next l
End Function
...
Рейтинг: 0 / 0
08.04.2004, 12:39
    #32473465
Gyslik.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фонетический поиск
2 Vw:
Есть готовый пример, если хотите, могу на мыло кинуть.
:-)
...
Рейтинг: 0 / 0
08.04.2004, 12:43
    #32473481
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фонетический поиск
давай
...
Рейтинг: 0 / 0
08.04.2004, 12:48
    #32473493
Alex112
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фонетический поиск
2 Gyslik.

А мне можно пример на

alex_serv СОБАКА softhome.net

?
...
Рейтинг: 0 / 0
08.04.2004, 13:10
    #32473553
Gyslik.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фонетический поиск
Пример взят с сайта leadersoft.ru , просто сейчас, вроде у них нельзя бесплатно скачать примеры.

Для "Фонетического поиска" см. пункт 3
"Как создать контекстный поиск?"

Пример можно взять с адреса
primer_access@rambler.ru
пароль 12345
пример лежит в папке "Отправленные".
:-)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Фонетический поиск / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]