powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Фонетический поиск
9 сообщений из 9, страница 1 из 1
Фонетический поиск
    #32473025
Фотография Vw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги не подскажите кто сталкивался с проблеммой
приближенного фонетического поиска.
Это типа : найти в таблице Иванов
но чтоб возвращалось несколько скожих значений
Ванов
Ивашкин
Нованов
...
Знаю для Inglish этот алгоритм есть и называется Soundex.
Приминительно к русскому не знаю.
...
Рейтинг: 0 / 0
Фонетический поиск
    #32473031
Фотография Alexander G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Был как-то чем-то схожий вопрос тут
...
Рейтинг: 0 / 0
Фонетический поиск
    #32473063
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо искть алгоритм либо самому реализововать подобие SOUNDEX из MS SQL. Где-то я это видел в каком-то журнале. Давно.
...
Рейтинг: 0 / 0
Фонетический поиск
    #32473138
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Фонетический поиск
    #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
Фонетический поиск
    #32473465
Фотография Gyslik.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Vw:
Есть готовый пример, если хотите, могу на мыло кинуть.
:-)
...
Рейтинг: 0 / 0
Фонетический поиск
    #32473481
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
давай
...
Рейтинг: 0 / 0
Фонетический поиск
    #32473493
Alex112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Gyslik.

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

alex_serv СОБАКА softhome.net

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

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

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


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