Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Алгоритм поиска похожих слов 
:(
    Опции темы
Dimich
Дата 7.10.2004, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 25.8.2004
Где: Брянск

Репутация: нет
Всего: 7



Подскажите пожалуйста алгоритм поиска похожих слов
"МАЛИНА" = "КАЛИНА" = "МАЛИНКА"
--------------------
Не работает - исправь, работает - не трогай!!!
PM MAIL ICQ Jabber   Вверх
Akina
Дата 7.10.2004, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Код
If (Len(CommonSubString(Word1,Word2))/(Len(Word1+Word2) > Criteria) Then Msgbox "IMHO похожи"


biggrin.gif


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Dimich
Дата 7.10.2004, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 247
Регистрация: 25.8.2004
Где: Брянск

Репутация: нет
Всего: 7



А как реализована CommonSubString () ? Что она делает и как?
--------------------
Не работает - исправь, работает - не трогай!!!
PM MAIL ICQ Jabber   Вверх
Akina
Дата 7.10.2004, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Ищет общую подстроку максимальной длины...
http://algolist.manual.ru/search/index.php


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
maxim1000
Дата 7.10.2004, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



можно использовать динамическое программирование biggrin.gif
впрочем смайлик еще не означает, что это шутка
как-то в институте меня попросили сделать программку, иллюстрирующую применение принципа динамического программирования, ну предполагалась какая-то абстрактная задача, а я сделал вот что:
программа набирает словарь из некоторого количества слов, а потом при вводе одного из них пытается исправить такие ошибки:
1. пользователь промахнулся, попал по другой букве
2. пользователь слишком слабо нажал на кнопку (пропала буква)
3. пользователь попал по двум кнопкам одновременно (появилась лишняя буква)
если под искажениями слов понимается описанная выше группа из трех случаев, то, возможно, пригодится следующая идея:
при вводе слова оно по очереди сравнивается со всеми словами из словаря, выбирается наиболее близкое
мера отличия строится следующим образом:
1. делаем двумерный массив, по вертикали пишем введенное слово, по горизонтали - слово из словаря
2. в каждую ячейку записываем меру отличия соответствующей буквы введенного слова от буквы из словарного словаря
3. ищем кратчайший путь от точки (1,1) к точке (n,N) с таким свойством: из каждой ячейки можно двигаться вправо, вверх и вправо-вверх (сооветственно: лишняя буква, пропущенная буква, искаженная буква)
если взглянуть на этот рисунок, все становится понятно:
user posted image
и вот ссылочка по более полному описанию применения динамического программирования:
http://www.dcs.shef.ac.uk/~stu/com326/

Это сообщение отредактировал(а) maxim1000 - 7.10.2004, 11:38


--------------------
qqq
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0458 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.