Вообщем хотелось узнать кто как такое делает????
Есть справочник номенклатуры (товара) есть прайсы поставщиков (присылают например их щтук 10 от разных поставщиков в xls)
Но вот не задача все бы ни че только у нас в номенклатуре есть название
"Валенки1Сорт" а у поставщика 1-го "ВаленкиСорт1" у 2-го "1СортВаленки" и т.д.
А задача программы посмотреть у кого есть эти валенки и самые дешевые
Пришлось создать справочник соответствий менеджер сам говорит что данное наименование соответствует нашему из номенклатуры и в следующий раз оно уже будет распознано.
Вообщем хотелось бы узнать кто с таким сталкивался есть ли другие способы распознавания
Видел как то на фирме dll которая как то разные наименования приводила к одному типу путем убирание пробелов и прочих знаков.
Работа с распознованием строкв БД
Автор -Zen2004-, 19.08.2008, 17:19
#2
Отправлено 19.08.2008, 17:34:23
Например как вариант - дробить "ВаленкиСорт1" - на "Валенки" "Сорт" "1" - либо по заглавным буквам, либо по словарю (предпочтительнее, но сложнее). Затем приводить к одному варианту - опять таки, с помощью языкового анализа (существительное, прилигательное и прочее - модули синтаксического анализа найти можно).
Просто, как мне кажется легко забыть что-то, и получить глюк в проге (ну не сработает она на какое-нибудь экзотическое название, или сокращенное, или написанное с ошибкой) и соответсвенно звиздюлей от начальства, когда выяснится что брали "Сапоги1сорт" за 1000 т вместо точно таких же "Сопоги-Первый-Сорт-Есть-Же" за 500
Просто, как мне кажется легко забыть что-то, и получить глюк в проге (ну не сработает она на какое-нибудь экзотическое название, или сокращенное, или написанное с ошибкой) и соответсвенно звиздюлей от начальства, когда выяснится что брали "Сапоги1сорт" за 1000 т вместо точно таких же "Сопоги-Первый-Сорт-Есть-Же" за 500
#3
Отправлено 19.08.2008, 18:47:34
Да часто встречающийся гемор, из которого есть только 1 самый оптимальный выход - попытаться всех тех кто присылает вам xls заставить присылать вам всё в одинаковом виде, иначе 100% получите звездюлей по сценарию Зулкара .
Как выход напишите програмное обеспечение для забивания этих листов не в экселе, сделайте общие справочники и раздайте всем поставщикам. Но тогда другой гемор синхронизация справочников, но это уже из другой оперы
Как выход напишите програмное обеспечение для забивания этих листов не в экселе, сделайте общие справочники и раздайте всем поставщикам. Но тогда другой гемор синхронизация справочников, но это уже из другой оперы
#4
Отправлено 21.08.2008, 23:27:44
Попробуйте использовать нечеткое сравнение строк. Существует достаточно большое количество готовых алгоритмов. Ваш случай с БД не уникален. Мне тоже приходилось сталкиваться с сортировкой таблиц, заполненных разными пользователями с неодинаковыми взглядами на мир.
В общих чертах: слова разбиваются на куски, и сравниваются. В зависимости от того, насколько похожи эти слова, функция возвращает результат в виде коэффицента (процента) схожести двух строк. Также существуют алгоритмы, которые позволяют учитывать разные точки вхождения одинаковых кусков. Здесь есть одна проблема - чем "интеллектуальнее" алгоритм, тем больше процессорного времени он жрет.
to Zulkar:
"Сопоги-Первый-Сорт-Есть-Же"
В таких случаях идущие подряд цифры заменяются строковыми вариантами (1-первый, 41-сорокодин). А по поводу Есть-Же - можно внедрить и мат фильтр, в словарик которого можно поместить конкретные слова, типа, же-есть-же, биратишка; и составить матрицу соответствий, вроде "ахуительный"-"лучший".
Вобщем, по нечеткому сравнению строк написано достаточное количество научных работ, реализаций математических алгоритмов на ЯП. Остается выбрать нужный и заточить его под себя.
В общих чертах: слова разбиваются на куски, и сравниваются. В зависимости от того, насколько похожи эти слова, функция возвращает результат в виде коэффицента (процента) схожести двух строк. Также существуют алгоритмы, которые позволяют учитывать разные точки вхождения одинаковых кусков. Здесь есть одна проблема - чем "интеллектуальнее" алгоритм, тем больше процессорного времени он жрет.
to Zulkar:
"Сопоги-Первый-Сорт-Есть-Же"
В таких случаях идущие подряд цифры заменяются строковыми вариантами (1-первый, 41-сорокодин). А по поводу Есть-Же - можно внедрить и мат фильтр, в словарик которого можно поместить конкретные слова, типа, же-есть-же, биратишка; и составить матрицу соответствий, вроде "ахуительный"-"лучший".
Вобщем, по нечеткому сравнению строк написано достаточное количество научных работ, реализаций математических алгоритмов на ЯП. Остается выбрать нужный и заточить его под себя.
#8
Отправлено 21.09.2008, 11:15:25
Прочитайте внимательно условие задачи. Объясните, как предлагаемая Вами нормализация базы позволяет распознавать вводимые пользователем "Валенки1Сорт", "ВаленкиСорт1" и "1СортВаленки"?Мораль сей басни такова: нормализуйте базу.
+ 1024
Сообщение отредактировал Visual1: 21.09.2008, 11:30:01
Количество пользователей, читающих эту тему: 1
пользователей: 0, неизвестных прохожих: 1, скрытых пользователей: 0