![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| DYUMON |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 321 Регистрация: 17.6.2006 Где: Новосибирск Репутация: нет Всего: 3 |
Доброго всем времени суток. есть ли функци для определения содержание группы слов в тексте. я делаю анализатор прайсов и там разные прайсы содержащие позиции которые могут быть по разному записаны. конечно можно сделать базу кодов и по ним искать но это займет много времени. на данный момент у меня такая функция
думаю добавить сюда еще плавающую величину точности которая будет определятс количетвом слов в строке которую ищут. но может есть более эффективные алгоритмы поиска? |
|||
|
||||
| Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 9 Всего: 54 |
попробуй почитать про полнотекстовый поиск и релевантность
-------------------- Кольцов Виктор Владимирович |
|||
|
||||
| chip_and_dayl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 603 Регистрация: 22.4.2007 Где: Украина, Киев Репутация: 1 Всего: 9 |
Можно все реализовать через регулярные выражения
Добавлено @ 08:49 А вообще, было бы хорошо, если глянуть на два разных прайса, чтобы понять на сколько в них разница и как будет лучше анализировать. Ну и уточнить, что нужно с прайса выдергивать Это сообщение отредактировал(а) chip_and_dayl - 14.10.2010, 08:50 -------------------- Фсё будет хорошо!!! |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Думаю, что регулярками тут не обойтись. Нужен полнотекстный поиск. http://www.google.com/search?q=sphinx+delp...=ru&prmd=iv http://www.sql.ru/forum/actualthread.aspx?...784449&pg=1 |
|||
|
||||
| DYUMON |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 321 Регистрация: 17.6.2006 Где: Новосибирск Репутация: нет Всего: 3 |
вот смотрите есть искомая позиция "Артроцин тб 1,6г N36" в другом прайсе она записана как "АРТРОЦИН ТАБ. №36" или "Артроцин таб 1,6г х 36 БАД" я думаю сделать поуровневый поиск . допустим сначало ищем "артроцин" если нашли то проверяем на наличие "1,6" и "36"
|
|||
|
||||
| Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 9 Всего: 54 |
это так тебе для каждой позиции такие правила прописывать прейдется. что сперва искать что потом.
-------------------- Кольцов Виктор Владимирович |
|||
|
||||
| DYUMON |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 321 Регистрация: 17.6.2006 Где: Новосибирск Репутация: нет Всего: 3 |
да это проще мне надо то 70 позиций
|
|||
|
||||
| RomanEEP |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 424 Регистрация: 18.5.2006 Где: Коломна Репутация: 5 Всего: 8 |
В инете когда-то нашел такую функцию, которая неплохо работает для нечеткого поиска:
Использование:
где 4, 20 - экспериментальные коэффициенты в зависимости от нужд Это сообщение отредактировал(а) RomanEEP - 14.10.2010, 10:43 |
||||
|
|||||
| DYUMON |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 321 Регистрация: 17.6.2006 Где: Новосибирск Репутация: нет Всего: 3 |
RomanEEP, забыл приписать
|
|||
|
||||
| Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
Я в своей программе обработки прайсов сделал так: при загрузке прайса из экселя я создавал таблицу групп. В эту таблицу попали все первые слова названия. Т.е. примерный вид таблицы был таков:
Теперь пользователь может выбрать, что именно его интересует. Например, он выбрал тот же Артроцин и рядом, в другой таблице программа ему показывает все Артроцины. Программу писал очень давно. Это была моя одна из самый первых программ по обработке аптечных прайсов. Если есть желание, то могу отправить исходники. Но предупреждаю, что прога старенькая + работает с использованием BDE. Если её возродить и переписать под, например, Firebird, то было бы здорово. Раскрутить, выложить на сайт и ну получать небольшой профит Добавлено через 56 секунд Хотя программа до сих работает у заказчика и он не хочет от неё отказыватся |
||||
|
|||||
| cat512 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 438 Регистрация: 20.3.2007 Репутация: 7 Всего: 15 |
Смотри в сторону алгоритма дистанции Ливенштейна
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |