Перейти к содержимому

Фотография

Работа с распознованием строкв БД


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 9

#1
-Zen2004-

-Zen2004-
  • Завсегдатай
  • 136 сообщений
Вообщем хотелось узнать кто как такое делает????
Есть справочник номенклатуры (товара) есть прайсы поставщиков (присылают например их щтук 10 от разных поставщиков в xls)
Но вот не задача все бы ни че только у нас в номенклатуре есть название
"Валенки1Сорт" а у поставщика 1-го "ВаленкиСорт1" у 2-го "1СортВаленки" и т.д.
А задача программы посмотреть у кого есть эти валенки и самые дешевые
Пришлось создать справочник соответствий менеджер сам говорит что данное наименование соответствует нашему из номенклатуры и в следующий раз оно уже будет распознано.
Вообщем хотелось бы узнать кто с таким сталкивался есть ли другие способы распознавания
Видел как то на фирме dll которая как то разные наименования приводила к одному типу путем убирание пробелов и прочих знаков. :-)
  • 0

#2
Zulkar

Zulkar

    Читатель

  • В доску свой
  • 3 243 сообщений
Например как вариант - дробить "ВаленкиСорт1" - на "Валенки" "Сорт" "1" - либо по заглавным буквам, либо по словарю (предпочтительнее, но сложнее). Затем приводить к одному варианту - опять таки, с помощью языкового анализа (существительное, прилигательное и прочее - модули синтаксического анализа найти можно).
Просто, как мне кажется легко забыть что-то, и получить глюк в проге (ну не сработает она на какое-нибудь экзотическое название, или сокращенное, или написанное с ошибкой) и соответсвенно звиздюлей от начальства, когда выяснится что брали "Сапоги1сорт" за 1000 т вместо точно таких же "Сопоги-Первый-Сорт-Есть-Же" за 500 :-)
  • 0

#3
Borg

Borg
  • Частый гость
  • 93 сообщений
Да часто встречающийся гемор, из которого есть только 1 самый оптимальный выход - попытаться всех тех кто присылает вам xls заставить присылать вам всё в одинаковом виде, иначе 100% получите звездюлей по сценарию Зулкара :-).

Как выход напишите програмное обеспечение для забивания этих листов не в экселе, сделайте общие справочники и раздайте всем поставщикам. :-) Но тогда другой гемор синхронизация справочников, но это уже из другой оперы :(
  • 0

#4
RAWMIND

RAWMIND
  • Частый гость
  • 53 сообщений
Попробуйте использовать нечеткое сравнение строк. Существует достаточно большое количество готовых алгоритмов. Ваш случай с БД не уникален. Мне тоже приходилось сталкиваться с сортировкой таблиц, заполненных разными пользователями с неодинаковыми взглядами на мир.

В общих чертах: слова разбиваются на куски, и сравниваются. В зависимости от того, насколько похожи эти слова, функция возвращает результат в виде коэффицента (процента) схожести двух строк. Также существуют алгоритмы, которые позволяют учитывать разные точки вхождения одинаковых кусков. Здесь есть одна проблема - чем "интеллектуальнее" алгоритм, тем больше процессорного времени он жрет.

to Zulkar:
"Сопоги-Первый-Сорт-Есть-Же"
В таких случаях идущие подряд цифры заменяются строковыми вариантами (1-первый, 41-сорокодин). А по поводу Есть-Же - можно внедрить и мат фильтр, в словарик которого можно поместить конкретные слова, типа, же-есть-же, биратишка; и составить матрицу соответствий, вроде "ахуительный"-"лучший".

Вобщем, по нечеткому сравнению строк написано достаточное количество научных работ, реализаций математических алгоритмов на ЯП. Остается выбрать нужный и заточить его под себя.
  • 0

#5
Havoc

Havoc
  • Завсегдатай
  • 296 сообщений
Мораль сей басни такова: нормализуйте базу.
  • 0

#6
dwh

dwh
  • Гость
  • 5 сообщений
еще вариант сделать колонку "Корень" или группа в которой будет уникальная строка например "Вален" и тогда при каждом косяке, можно чистить БД
  • 0

#7
B.E.M.

B.E.M.
  • Гость
  • 12 сообщений

Мораль сей басни такова: нормализуйте базу.


+ 1024
  • 0

#8
Visual1

Visual1
  • В доску свой
  • 1 198 сообщений

Мораль сей басни такова: нормализуйте базу.

Прочитайте внимательно условие задачи. Объясните, как предлагаемая Вами нормализация базы позволяет распознавать вводимые пользователем "Валенки1Сорт", "ВаленкиСорт1" и "1СортВаленки"?

+ 1024

:spy:

Сообщение отредактировал Visual1: 21.09.2008, 11:30:01

  • 0

#9
Кими

Кими
  • В доску свой
  • 2 252 сообщений
кстати простое нечеткое сравнение тоже тут не поможет, ибо между "ВаленкиСорт1" и "ВаленкиСорт2" будет больше кофициэнт схожести чем между "ВаленкиСорт1" и "Валенки1Сорт" ... а должно быть наоборот
  • 0

#10
logo14

logo14
  • Постоялец
  • 303 сообщений

... простое нечеткое сравнение ... больше кофициэнт схожести ...

Ёпелемадрический БаБай! :D :-) :D

Не удивлюсь, если за этим аккаунтом, сидит директор нашего АИС.
  • 0


Количество пользователей, читающих эту тему: 1

пользователей: 0, неизвестных прохожих: 1, скрытых пользователей: 0

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.