|
Быстрый алгоритм наибольших общих подстрок | ☑ | ||
---|---|---|---|---|
0
Garykom
гуру
22.09.16
✎
00:00
|
Требуется среди множества строк найти наибольшие общие подстроки с начала/конца строк.
Задачка осложняется что некоторые строки могут не содержать требуемых общих подстрок и требуется разделение всех строк на некие "группы" для которых существуют требуемые общие подстроки. Типовой алгоритм https://ru.wikipedia.org/wiki/Наибольшая_общая_подстрока слишком медленно работает, т.к. сравнивает строки только попарно. И когда исходных строк от сотен до десятков тысяч получаем полный затык. Пример: Товар1 арт1 зеленый Товар2 арт2 красный Товар3 арт3 синий Товар1 арт4 серый Ищем общие подстроки "справа" для: ("Товар1 ", "Товар2 ", "Товар3 ", "Товарр1 ") Находим: "р1 " - 2 совпадения и " " - 4 совпадения И общие подстроки "слева" для: (" зеленый", " красный", "синий", " серый") Находим: " " - 4 совпадения и " с" - 2 совпадения Зачем это нужно? А чтобы разделять длинные одностроковые (наименования) на составляющие построки для выделения характеристик. Вывод: вероятнее всего " " и " " являются "разделителями" характеристик. Теоретически разделителями может быть что угодно - ";", "," "(", ")" и "символ табуляции" и т.д. |
|||
1
Torquader
22.09.16
✎
00:07
|
Для сравнения товара в разных базах нужно ?
Я это делал так - делил строки на слова - если слово заканчивается точкой, то его в "исключения" (при сравнении отбросить продолжнения). Далее, каждому элементу приписываем номера слов в него входящих по возрастанию. При сравнении, сравниваем номера по максимальному совпадению, а далее - просто пытаемся сопоставить слова с наименьшей заменой (то есть сколько нужно заменить-вставить символов, чтобы одно было положе на другое). И всё получается. |
|||
2
Garykom
гуру
22.09.16
✎
00:10
|
(1) Угу для заведения номенклатуры "по правилам" и сопоставления автоматического.
Простое деление на слова по " " (пробелу) не катит, потому что любят такое делать: "Товар1 арт. 45454 (4545454;валвла-алвалв,ава23) - оуаова" |
|||
3
Garykom
гуру
22.09.16
✎
00:14
|
(2)+ Думал задать список/справочник "ключевых слов" (часто встречающиеся служебные слова или характеристики типовые).
Искать их в наименованиях и то что слева/справа от ключевых делать разделителями. |
|||
4
GedKo
22.09.16
✎
00:17
|
не проще исходные данные привести к порядку? например использовать разделители
|
|||
5
Torquader
22.09.16
✎
00:18
|
(3) Это тогда им форму нужно рисовать для сбора наименования.
Просто, если к этому вопросу правильно подойти, то у товара вообще наименования быть не должно - только тип товара и дополнительные свойства, зависящие от типа - а по ним уже система сама наименование строит. |
|||
6
Garykom
гуру
22.09.16
✎
00:21
|
(5) Да так и есть в правильной базе оно все так, у товаров есть только наборы реквизитов/свойств из готовых справочников.
Но чтобы сделать загрузку авто в эту правильную базу для сравнения из кривых "прайсов" требуется решить эту задачку. И все осложняется тем что каких то одинаковых артикулов по факту нету (( Уникальный артикул/ШК производителя/поставщика это то что не распозналось "по справочникам". |
|||
7
Torquader
22.09.16
✎
00:24
|
(6) Проблема ещё в том, что для одного и того же у поставщика могут быть не только различные наименования, но и штрих-коды - просто из-за того "что так получилось".
|
|||
8
Garykom
гуру
22.09.16
✎
00:25
|
(4) Вот это и хочу сделать как результат, но что поделать если данные исходные только в таком виде доступные есть?
Чтобы было понятнее зачем то банально заходим на Али или другие подобные "барахолки" типа Авито и видим полный изврат. Когда чтобы нормально найти что то приходится извращаться с разными наборами ключевых слов. Потому что продаваны сволочи и слово "телефон"/"phone" к примеру засовывают во все подряд (( |
|||
9
Garykom
гуру
22.09.16
✎
00:27
|
(7) Угу вот и хочу по "набору свойств" классифицировать, чтобы потом натравить туда ИНС и получить какой то результат.
|
|||
10
Garykom
гуру
22.09.16
✎
00:31
|
Пример 1-й место (у меня) с али по поиску "телефон"/"phone" это
Wireless IP Camera WiFi Micro SD Network 2 Ways Audio Security Camera Family Video Surveillance HD CCTV Support Smart Phone View Человек понимает что это "беспроводная камера с поддержкой просмотра на телефоне" - как объяснить это компьютеру? |
|||
11
Garykom
гуру
22.09.16
✎
00:32
|
А потом продать эту AI хрень самому али... ))
|
|||
12
Garykom
гуру
22.09.16
✎
00:36
|
(10)+ Пример с разделителями "/" или " ":
"3.5mm Audio Plug Wired Mini Microphone Portable Stereo Condenser Mic for Chatting/Karaoke/PC/Phone/Ipad etc with Lavalier Clip" |
|||
13
Torquader
22.09.16
✎
00:37
|
(11) Так это тебе нужно машину обучить человеческому языку - задача, которая до сих пор не решена.
В твоём примере, сначала нужно найти фразу Support Smart Phone View, а потом разобрать на составляющие, чтобы понять, что главное слово здесь View, а все остальные его характеристики. |
|||
14
Garykom
гуру
22.09.16
✎
00:39
|
(13) Верно! Но сначала надо "разделить" это на составляющие "подстроки-слова".
Потом по "набору слов рядом" можно уже распознавать "фразы". |
|||
15
Garykom
гуру
22.09.16
✎
00:40
|
(14)+ К примеру вместо фразы "Support Smart Phone View" может быть фраза-аналог "Support View on/with Smart Phone"
|
|||
16
Torquader
22.09.16
✎
00:41
|
(14) Для начала, нужно разделить на глаголы и существительные.
|
|||
17
Torquader
22.09.16
✎
00:42
|
(15) Ещё не забывай, что там пишут люди, которые не очень хорошо знают английский язык.
Слова on with for и т.п. как раз позволят делить на части выражение. Существительные же читаются справа налево как прилагательные к основному. |
|||
18
Garykom
гуру
22.09.16
✎
00:43
|
(16) Еще более не решаемая задачка (( Все типовые распознавалки изначально предполагают задачу разделения на слова уже решенной.
Ибо если искать все "ключевые слова" в тексте это просто нереальная задача. |
|||
19
Garykom
гуру
22.09.16
✎
00:48
|
Кстати пример с "али" это просто самый наглядно-фиговый. Реально нужно для некоторых крупных аггрегаторов-поставщиков типа Мерлиона и еще по канцелярке клиент готов заплатить для разных файликов/тетрадочек.
Вот как оно у мерлиона выглядит http://merlion.com/catalog/list/1333/ |
|||
20
Garykom
гуру
22.09.16
✎
00:48
|
(19)+ В смысле мой мелкие клиентики просят им "нечто придумать", а то счас менагеры на заказах зашиваются при поиске по каталогам разным.
|
|||
21
Garykom
гуру
22.09.16
✎
00:52
|
(19)+ Сорри пример не совсем правильный, с техникой оно попроще (хотя расходка это пипец) а вот такое http://merlion.com/catalog/list/1186/,
где "Скрепки Alco 458-26 пластиковая оболочка домик 26мм ассорти (упак.:500шт) пластиковая коробка". И в системе которая доступ по API оно только в таком виде и все. |
|||
22
Torquader
22.09.16
✎
00:56
|
(21) У мерлиона проще - там получается сначала название - потом в скобках артикул, а далее - описание упаковки.
|
|||
23
Garykom
гуру
22.09.16
✎
01:00
|
(22) Да согласен, но не мерлионом единым ))
Хочется то изобрести и реализовать некий единый универсальный алгоритм/сервис. И чтобы можно было его гибко настраивать и на что угодно натравливать. |
|||
24
Torquader
22.09.16
✎
01:03
|
(23) RegExp называется ^_^
|
|||
25
Garykom
гуру
22.09.16
✎
01:05
|
(24) Отличная штука, но на изучение слишком много времени уходит (( Простых юзверей этому трюку не обучить.
В отличие от: Возьмите несколько примеров и разберите их вручную, попробуйте как оно само разбирает прочие наименования. Повторяйте до требуемого результата на не правильно разобранных. |
|||
26
Garykom
гуру
22.09.16
✎
01:10
|
(25)+ Сейчас уже сваяна некая альфа-версия этого дела но она дико тормозная и приходится сначала пользователю указывать вручную "разделители" на примерах.
И оно зараза не верно часто делит когда "-" или "/" это не разделитель а внутри сущности/признака. |
|||
27
Torquader
22.09.16
✎
01:11
|
Вообще-то, в данной теме курят сначала большие данные, а потом - машинное обучение - тогда система сама будет учиться вместе с пользователем.
|
|||
28
Garykom
гуру
22.09.16
✎
01:12
|
(27) Ага вот где бы кластер/суперкомп только добыть? Уже и вычислениями/субд на GPU даже озадачился от отчаяние что алгоритму не придумать.
|
|||
29
Torquader
22.09.16
✎
01:12
|
(26) Ты ещё не забывай что через слеш некоторые варианты пишут.
|
|||
30
Torquader
22.09.16
✎
01:16
|
(28) Возможность проверки, что это слово или не слово - есть ?
|
|||
31
Garykom
гуру
22.09.16
✎
01:16
|
(29) Угу хотел то чтобы пользователь указывал только "варианты", которые заносятся в справочники нужные.
Затем простая разбивка на слова и поиск слов в справочниках на полное соответствие без "like". Далее банально битовый хеш по признакам-словам в наименованиях и вот они вместе родимые и шустро. |
|||
32
Garykom
гуру
22.09.16
✎
01:17
|
(30) Слишком медленно полный поиск, реально не выходит применять.
|
|||
33
Torquader
22.09.16
✎
01:18
|
Ты ещё про сокращения не забывай - часто, например, вместо пластмассовый пишут пласт. и т.п.
|
|||
34
Garykom
гуру
22.09.16
✎
01:19
|
Если обычный полнотекстовый индекс для всех "прайсов" то он строится медленнее чем прайсы обновляются ))
|
|||
35
Garykom
гуру
22.09.16
✎
01:19
|
(33) А вот это банально, юзеры при указании "признаков" могут занести в справочник как новый или как синоним.
|
|||
36
Torquader
22.09.16
✎
01:21
|
Прайсы-то обновляются, только вот новых позиций в них не так уж и много - если с прошлого раза сохранить, то искать новое нужно будет только то, чего в прошлый раз не было.
|
|||
37
Злопчинский
22.09.16
✎
01:35
|
(15) такие фразы будут сильно похожи и отловятся обычным нечетким поиском
|
|||
38
Злопчинский
22.09.16
✎
01:39
|
Я так и не понял какую задачу надо решить???
Манагер натоптал какую-то фразу-наименование и надо понять есть ли ЭТО в каком-то большом списке? |
|||
39
Garykom
гуру
22.09.16
✎
01:46
|
(38) Ближе к натоптал фразу и она ищется в нескольких огромных списках.
Обычная задача для менагера найти у кого (из поставщиков) есть данный товар (требуемый клиенту или для пополнения на склад). Причем предполагается что товары еще с нашим товаром не сопоставлены каким то образом. Задачка в лоб через нечеткое сравнение строк решается отвратительно и очень долго. Метод N-грамм и прочие которые применяют крупные поисковики (гугл, яндекс и т.д.) очень хороши но требуется исключение не нужных результатов. Ищет менагер бумагу белую, та ему не нужно не белую а цветную показывать, причем он не говорит/перечисляет все ненужные слова (цветная, зеленая) |
|||
40
Злопчинский
22.09.16
✎
01:50
|
(39) в лоб через нечеткое сравнеие долго - это сколько? Пять-двадцать секунд на ответ - это много?
|
|||
41
Torquader
22.09.16
✎
01:51
|
(39) Ну, цвета тебе точно придётся в отдельный список выносить, а ещё, наверняка, нужно будет понимать, что серый равно серебристый для одного товара, и не равно для другого.
|
|||
42
Garykom
гуру
22.09.16
✎
01:52
|
(39)+ И вот чтобы эту задачку решить нуна научиться быстро разделять "наименования" на "слова". Причем когда они разделяются не простыми " " (пробелами) а разными "-", "/" и прочими скобками и другими символами или даже несколькими символами.
К примеру " арт. " это бесполезная штук и просто разделитель. |
|||
43
Злопчинский
22.09.16
✎
01:52
|
ну тут надо видимо понимать что если ищем и хотим хорошего совпадения по тремпятидесятиспискам и каждый список размером сто тыщ или четыреста тыщ строк - то наверное надо озаботиться в первую очередь железом???? Гугл и яндекс ониж не на наших серверах крутятся???
|
|||
44
Torquader
22.09.16
✎
01:53
|
(42) Это как раз очень полезная штука, так как после неё идёт слово или набор слов, который товар не характеризует, а является его уникальным (или псевдо уникальным) ключом внутри прайса.
|
|||
45
Garykom
гуру
22.09.16
✎
01:53
|
(40) Дико много и проблема когда реальные каталоги номенклатуры то там уже минуты на ответ, менагер помрет ждать.
И нечеткое оно слишком нечетко результат выдает, нужна точность почти как человек может. |
|||
46
Torquader
22.09.16
✎
01:54
|
(43) И яндекс и google сайты уже обработали и в момент поиска ищут по своей базе.
|
|||
47
Garykom
гуру
22.09.16
✎
01:54
|
(44) Дык согласен что это "разделитель" или ключевой указатель для "признака" рядом.
|
|||
48
Злопчинский
22.09.16
✎
01:54
|
(42) не взлетит
Сначала надо нормализовать исходные списки - тупо пробежаться по ним и выкинуть все незначимые символы и сочетания которые не несут нагрузки Далее ищем нечетким поиском Полученное подмножество результатов обрабатываем уже более предметно |
|||
49
Torquader
22.09.16
✎
01:55
|
Нужно, видимо, как yandex - готовить прайсы под поиск и не забывать их вовремя обновлять.
|
|||
50
Garykom
гуру
22.09.16
✎
01:55
|
(46) Да можно делать с предварительной обработкой но размеры индексов полнотекстовых такие дикие выходят что простого диска легко не хватит.
|
|||
51
Torquader
22.09.16
✎
01:56
|
(50) Тут уже придётся что-то сокращать.
Хотя, дисков-то можно и докупить - они сейчас не очень-то и дорогие. |
|||
52
Garykom
гуру
22.09.16
✎
01:57
|
(48) Согласен но это уже целая служба и штаты сотрудников. Хочу их заменить умным софтом.
К примеру когда то нужен был переводчик чтобы понять текст на китайском... сча можно просто Хром поставить. |
|||
53
Garykom
гуру
22.09.16
✎
01:57
|
(52)+ * человеческий переводчик с зарплатой
|
|||
54
Torquader
22.09.16
✎
01:58
|
(52) На самом деле - прайс - ни о чём - надо парсить сайты и искать характеристики товара, который находится в прайсе - тогда можно понять, о чём идёт речь, и что является основным, а что является характеристиками.
|
|||
55
Garykom
гуру
22.09.16
✎
01:59
|
(51) Но от идеи программы на компе клиента придется тогда отказаться, это уже целый тормозной комплекс для крупняка и он у них уже есть. И делать только сервис с дорогой поддержкой/обслуживанием.
|
|||
56
Garykom
гуру
22.09.16
✎
01:59
|
(54) Верно! Но чтобы правильно искать сначала нужно решить задачку (0) - "разделить на слова".
|
|||
57
Torquader
22.09.16
✎
02:00
|
(55) Проще сделать готовый сервис, так как программу всё равно как-то нужно будет обучать.
Тут получается так - что сервис - это одна база для всех, а если программа у клиента - то у каждого - своя база. |
|||
58
Torquader
22.09.16
✎
02:01
|
(56) Я просто с техническими прайсами по электротехнике сталкивался - так там вообще понять, что в нём записано, можно только после того, как увидишь описание - так как сплошные аббревиатуры и сокращения.
|
|||
59
Злопчинский
22.09.16
✎
02:01
|
(45) нормально оно выдает
Чем длиннее поисковая фраза тем нечеткий поиск ищет лучше Потому что если задать поиск Белая бумага То туда попадет и Обои с белой бумагой А вот когда получил подмножество нечетким поиском его можно уже дополнительно просеивать более формальными методами чем нечеткий поиск |
|||
60
Злопчинский
22.09.16
✎
02:03
|
(58) я делал такую хрень для магазина радиодеталей
Там все радиодетали похожи на все по маркировке Но даже на этом буквенноцифровом абракадабре нечеткий с последующей эмпирической обработкой давал вполне приемлемые результаты |
|||
61
Garykom
гуру
22.09.16
✎
02:03
|
(58) Угу аббревиатуры и сокращения они везде. Но поднятие подобного сервиса уже не потяну никак.
Попробовал и тупо времени не хватает на все задачки не выходит расклонироваться. |
|||
62
Злопчинский
22.09.16
✎
02:04
|
а если вы хотите найти иголку в стоге сена или других похожих иголок - сорри, но тут видимо упирается вопрос в баланс качества такого поиска и имеющихся ресурсов
|
|||
63
Garykom
гуру
22.09.16
✎
02:05
|
(59) Чтобы просеивать формальными методами один фиг нужно разделить. И фишка что я то хотел получить ускорение за счет предварительного разделения.
А не после того как ждали полминуты-минуту на поиск и потом еще ждем когда прочие методы отработают. |
|||
64
Torquader
22.09.16
✎
02:06
|
(63) Если всё делать параллельно, то будет быстрее - прочие методы начинают обрабатывать уже полученный результат, хотя он не полностью получен.
|
|||
65
Garykom
гуру
22.09.16
✎
02:08
|
Смысл что искать нечетким поиском похожие длинные фразы хуже, чем тем же нечетким или даже четким по синонимом найти 10 слов.
И по % совпадений слов, причем с исключением лишних слов (когда ищем белую, автоматом выкидыватся из поиска/подбора цветная|зеленая|красная), шустро подбираем что нуна. |
|||
66
Злопчинский
22.09.16
✎
02:08
|
(63) не взлетит
|
|||
67
Garykom
гуру
22.09.16
✎
02:09
|
(66) Уже давно взлетело, попробуй поиск в 2гис ))
|
|||
68
Torquader
22.09.16
✎
02:10
|
(65) Вся проблема в том, что у поставщика в прайсе будет указано "SvetoCopy A4" - и все алгоритмы идут в лес.
|
|||
69
Garykom
гуру
22.09.16
✎
02:10
|
(67)+ Но у них четкая отрасль/ограничение: только объекты/здания/фирмы на карте.
|
|||
70
Garykom
гуру
22.09.16
✎
02:11
|
(68) Если ищем А4 то автоматом уже не найдутся "SvetoCopy A3" так что не совсем в лес.
А простой нечеткий выдаст все с "SvetoCopy АX". |
|||
71
Garykom
гуру
22.09.16
✎
02:13
|
(70)+ т.е. при справочники они имеют признак альтернативности и если указан "А4" то все прочие из этого справочника размера из результата исключаются автоматом.
|
|||
72
Torquader
22.09.16
✎
02:13
|
(70) Просто, первым этапом он должен найти все SvetoCopy, так как это слово "основное", а потом уже по ним выбирать формат.
|
|||
73
Garykom
гуру
22.09.16
✎
02:14
|
(71)+ А справочник "марок" типа "SvetoCopy" это аналоги для просто "бумага".
|
|||
74
Злопчинский
22.09.16
✎
02:14
|
(65) ээээ дружище.... Ты белую увязываешь с зеленым и красным чтобы разделить, поэтому сначала надо обобщить подмножество чегото чтобы потом по этому подмножиству делить
Если ты ищешь белую бумагу и не привязываешься к грамматике и всякой семантике То белая линованная мелованная в зеленой пачке с серым оттенком бумага - у тебя выпадет из поиска, так как отфильтруется и по зеленому и по серому с учетом того что слово бумага гораздо ближе к слову зеленая и серая чем к слову белая И это ты знаешь что к бумаге надо фильтровать по цвету А что то другое по критерию веса тяжелая легкая Затрахаешься Если делать универсально то все равно придешь к тем же самым нечетким поискам |
|||
75
Torquader
22.09.16
✎
02:14
|
(71) Мыши A4Tech очень обидятся, так как некоторые их пишут A4 Tech
|
|||
76
Злопчинский
22.09.16
✎
02:17
|
(67) дай ссылку и пример
|
|||
77
Garykom
гуру
22.09.16
✎
02:17
|
(74) Немного не так но да )) суть алгоритма более хитрая в последущем. Оно делит все сущности/объекты/конретную номенклатуру на некие "классы" для которых задаются допустимые сочетания признаков.
Получается весьма сложная структура которая затем используется для подбора/поиска. Фишка что хочу чтобы не программист программил эту структуру. А сами юзвери когда загружают "прайс", причем обычные менагеры. А вот прога уже почти все сама сделает по "классификации" на основе обучения по примерам. |
|||
78
Злопчинский
22.09.16
✎
02:17
|
(69) вот именно
|
|||
79
Злопчинский
22.09.16
✎
02:19
|
(72) здрасте вам в люлю
Вот есть такая фраза Daster mhgdas yjkiop dxrtyhret Какое здесь слово основное? |
|||
80
Злопчинский
22.09.16
✎
02:20
|
(75) пофиг
Пробел на поиск не влияет ибо он не звучит фонетически Поэтому перед поиском нормализуем все |
|||
81
Garykom
гуру
22.09.16
✎
02:21
|
(80) да это https://ru.wikipedia.org/wiki/Soundex
|
|||
82
Torquader
22.09.16
✎
02:21
|
(80) Только A4Tech и A4 Tech - будут разные понятия - никто же не знает, что можно склеивать как угодно слова.
|
|||
83
Garykom
гуру
22.09.16
✎
02:23
|
(82) Вот и мне некогда и не хочется предусматривать все варианты кривого написания. Хочу чтобы юзеры сами сказали что "A4Tech"="A4 Tech" и что " " тут не разделитель а часть "слова".
|
|||
84
Злопчинский
22.09.16
✎
02:24
|
(77) так или иначе видимо придется делать некую кластеризацию
То есть сначала определить для вашей конторы базовые кластеры И далее както считать признаки, у которых расстояние до кластера минимальные Для кластера бумага весомыми будут признаки цветов Для кластера школьных ранцев весомыми будут признаки материала И так далее |
|||
85
Garykom
гуру
22.09.16
✎
02:25
|
(83)+ Т.е. "Мышь A4 Tech Серая USB" разделитель будут "ь " и " С"
|
|||
86
Torquader
22.09.16
✎
02:26
|
(85) Он должен найти основное слово "мышь" - точнее - оно должно быть задано заранее.
|
|||
87
Злопчинский
22.09.16
✎
02:26
|
(83) да пофиг точно также будут выкидываться всякие # % N
Все в итоге сведется к этому самому расстоянию ливенгука или как там его... |
|||
88
Garykom
гуру
22.09.16
✎
02:27
|
(85)+ Ну или разделители "ь A" и "h С" но что части этих "разделителей" включатся в "признаки" слева и справа по нужному числу символов.
Разделитель имеет (длину, значение, символы признака слева, символы признака справа) |
|||
89
Garykom
гуру
22.09.16
✎
02:28
|
(88)+ (3,"ь A",1,1) и (3,"h С",1,1)
|
|||
90
Garykom
гуру
22.09.16
✎
02:29
|
(86) Хотел чтобы это слово "Мышь" прога подсказала юзеру, а он уже только сказал в какой это справочник засунуть или даже правильно засунули к "Клавиатура" или нет?
|
|||
91
Злопчинский
22.09.16
✎
02:29
|
(86) и как оно будет задано заранее?
Все равно приходишь к некоторым формальным требованиям если необходимо усилить качество Типа того что главное слово то есть предмет поиска должно стоять первым Тогда Мышь серая И Серая мышь При поиске будут давать принципиально разные результаты Ибо во втором случае На серую мышь больше похожа серая бумага чем черная мышь |
|||
92
Torquader
22.09.16
✎
02:29
|
(87) Ну, не всегда это хорошо, так как Хлопок 40% выглядит куда лучше чем без процента.
|
|||
93
Torquader
22.09.16
✎
02:31
|
(91) Нужно знать значения всех слов - просто компьютер не всегда глагол от существительного отличит (например "печь")
|
|||
94
Garykom
гуру
22.09.16
✎
02:31
|
>На серую мышь больше похожа серая бумага чем черная мышь
вот именно и простой нечеткий поиск тут врет дико, в отличие от сопоставления по отдельным словам |
|||
95
Злопчинский
22.09.16
✎
02:31
|
(90) ответь на (79)
|
|||
96
Garykom
гуру
22.09.16
✎
02:32
|
(93) У нас алфавит и словарь ограничены ))
|
|||
97
Torquader
22.09.16
✎
02:32
|
(95) Там у тебя одни артикулы - а они или повторяются точно также или вообще нигде больше не встречаются.
|
|||
98
Torquader
22.09.16
✎
02:33
|
У меня просто была идея - сделать машину, которая человеческую речь понимает и как-то может охарактеризовать и свернуть - но это было во студенчестве и несколько деревьев языка уже в памяти не помещались - сейчас машины стали мощнее, и можно попробовать.
|
|||
99
Garykom
гуру
22.09.16
✎
02:34
|
(95) >Daster mhgdas yjkiop dxrtyhret
для системы не важно какое слово основное )) оно сделает основным то слово которое скажет юзер к примеру "mhgdas" и автоматически получит еще 3 слова "Daster", "yjkiop" и "dxrtyhret" по которым и будет работать. |
|||
100
Злопчинский
22.09.16
✎
02:35
|
(94) фиг тебе
Нечеткий сработает лучше есть список Мышь серая Серая бумага Ищем Серый мыщь Нечеткий поиск стопудово первым похожим дасть Мышь серая а потом серая бумага |
|||
101
Garykom
гуру
22.09.16
✎
02:36
|
(98) Для простых формальных или искусственных языков без неопределенностей эта задача уже решена.
Сча пытают на естественных языках для перевода между языками. |
|||
102
Torquader
22.09.16
✎
02:36
|
А что делать, когда описывается комплект - например - "mini-компьютер EEPC клавиатура мышь в комплекте".
|
|||
103
Злопчинский
22.09.16
✎
02:37
|
(99) юзер у тебя затрахается говорить какое слово основное, и какие к нему признаки подходят
Потому сто для разных областей одно и то же слово может быть основным и неосновным |
|||
104
Garykom
гуру
22.09.16
✎
02:38
|
(100) А вот и нифига )) потому что
блабла Мышь ляля серая бумбум блабла Серая бумбум бумага ляля и ищем Серый мыщь )) - ибо по расстояние Левенштайна меньше ибо меньшее число перестановок/вставок |
|||
105
Garykom
гуру
22.09.16
✎
02:39
|
(103) Это уже проблемы пользователя )) фишка что хорошо обученная база в дальнейшем в пользователе не нуждается.
Цель перенести задачу "обучения" с прога на юзера. |
|||
106
Злопчинский
22.09.16
✎
02:39
|
(101) прорыва сейчас гугл достиг за счет того что он смотрит в каком окружающем статистическом контексте встречается переводимая фраза слово и отсюда и тащит - была хорошая статья на жту тему - простые статистические методы без всякой привязки к языку позволили существенно повысить качество перевода
|
|||
107
Злопчинский
22.09.16
✎
02:42
|
(104) а вот и фига, потому что в тоем этом приере мышь и бумага не являются главными для нечеткого поиска эти две фразы означают почти одно и тоже потому что блабла бумбум ляля, а то что жто мышь или бумага - несущественно
|
|||
108
Garykom
гуру
22.09.16
✎
02:47
|
(107) Дык суть что в своем алгоритме хочу выделить слова, найти их в готовых справочниках, понять главные они или нет.
И уже откинув все "блабла", "ляля" и "бумбум" искать только по "мышь" и "серая". Это мгновенно будет! Никаких десятков секунд (или минут) на нечеткий поиск для одной фразы. |
|||
109
Garykom
гуру
22.09.16
✎
02:50
|
(108)+ Причем комп уже будет знать что если ищем "мышь" то "бумагу" искать не нуна.
Пользователь ему это неявно между делом объяснил когда первоначально данные разносил. Ведь "мышь" и "бумага" ни в одном примере вместе никогда не встретились... |
|||
110
Злопчинский
22.09.16
✎
02:53
|
(105) ага я подлерживаю, но малоэффективно
Ибо юзеры и самито не особо способны учиться а уж учить Не проще ли Автоматом гоним нечеткое сравнение прайсов с нашей базой Запомнили высокие совпадения Далее подсовываем юзверю высокие совпадения по убыванию - он либо подтверждает либо отвергает Подтверждения ставим в привязку Отвергнутые прогоняем снова по базе за исключением сделанных привязок, снова подтверждаем или отвергаем Возможен также вариант что позицию из прайса отмечаем как ненужную Тяжело первый прайс делать Далее каждый последующий прайс прогоняем не только по нашей базе но и по уже сделанным привязкам Менеджеры снова подтверждают или отвергают С каждым последующим прайсом автопривязки будут все более релевантными. Когда у поставщика меняется прайс он не меняется кардинально, ушла бумага кнауф появилась бумага Белла, а с учетом что коротких наименований я думаю всетаки мало прогон через автопривязку снрва сработает Если такие прогоны делать часто - будет автоопределение новинок, автоопределение мусора Мой опыт работы по такой технологии показал что вполне рабочая. Особенно если контора занимается какимто болееменее определенным направлением. Если контора занимается ВСЕМ - то булет проблематично, потому что это огромная КУЧА - а ничего лучше поисковых машин пока не придумали |
|||
111
Злопчинский
22.09.16
✎
02:55
|
(108) понимаешь в чем проблема
Менеджер будет искать в первую очередь мышь, а потом окажется что усб не подходит А сисадмину определяющим словом будет не просто "мышь" а "мышь усб" |
|||
112
Злопчинский
22.09.16
✎
02:57
|
(109) а если в товаре мышь встретится слово бкмага как поясняющее - такая мышь отвалится из поиска ибо бумага, но в жтом контексте бумага не является значимым, а комто это как поймет?
|
|||
113
Злопчинский
22.09.16
✎
03:01
|
(109) по сути ты все равно определяешь некие "слова"
Которые должны обязательно встретиться в поиске Но стоит чуть криво будет и как оно тогла? Ну вот определил ты что к мышам относится все что имеет в себе Слова рядом или нерядом "мышь" и "бордовая" А в прайсе будет Устройство позиционирования куросра бордовое Или мщь брдвая И что? |
|||
114
Garykom
гуру
22.09.16
✎
03:02
|
(112) Ну у меня задачка немного проще/иная.
Взять эту гору разных кривых наименований и создать на их основе некий специализированный каталог с набором справочников для описания объектов. И этот справочник с привязками к кривым наименованиям разных поставщиков выдавать в пользование. |
|||
115
Злопчинский
22.09.16
✎
03:03
|
Если был бы такой алгоритм, который бы стопудово соотносил фразы одна с другой - на таком сервисе можно было бы поднять миллиарды
Но я такого сервиса не видел |
|||
116
Garykom
гуру
22.09.16
✎
03:04
|
(113) Это будет указывать пользователь в случае не верного сопоставление слов - справочникам.
Моя задача облегчить по максимуму это сопоставление. (115) Думаешь я откажусь от лярдов? )) |
|||
117
Garykom
гуру
22.09.16
✎
03:05
|
У меня как бы в (0) маленькая подзадачка огромной целой задачищи
|
|||
118
Злопчинский
22.09.16
✎
03:06
|
(114) не взлетит
Ибо прайсы поставщиков постоянно дышат Тебе придется чтобы пользователь постоянно сидел и учил систему Та же самая задача что я описал со своей схемой работы по нечеткому поиску Но проблема в том, что ты больше опираешься на мнение пользователя - а это люди они устают, им надоедает и тд |
|||
119
Garykom
гуру
22.09.16
✎
03:07
|
(118) Вот вот, прекрасно это понимаю и хочу по максимум убрать с пользователей задачу тыкать.
Оставить только задачу смотреть/проверять глазками правильно ли работает система и тыкать только когда "не правильно". |
|||
120
Garykom
гуру
22.09.16
✎
03:08
|
(119)+ А система чтобы сама обучалась...
|
|||
121
Злопчинский
22.09.16
✎
03:09
|
могу быть неправ
По существу темы Но если сделаешь такой инструментарий - дай попробовать. У мння есть лавочник с чехлами аксессуарами для телефонов Можно будет на нем погонять Я на нем гонял привязки по нечеткому поиску - в подавляющем колве случаев привязка в полуавтоматическом режиме работала на ура. Для позиции из прайса наша нужная позиция практически всегда нахожилась на первом экране похожих позиций в первой пятерке |
|||
122
Garykom
гуру
22.09.16
✎
03:10
|
(120)+ И да самая суть что за счет лени пользователей лишний раз тыкнуть будет минимизация ошибок кривого распознавания.
Потому что один не тыкнул, так другой тыкнет и сделает правильно что пропустил 1-й. А вот оба они меньше раз тыкнут не туда куда нуна. |
|||
123
Злопчинский
22.09.16
✎
03:13
|
(119) подмена понятий
Так как тыкать глазками придется НА ВСЕ - чтобы найти неправильное В итоге задача сводится к моей схеме работы Делаешь первоначальные привязки Дальше ставишь порог Дальше при появлении непривязанных позиций Все что выше порога - очень высокая вероятность что автопривязка сработала правильно - это сверяется очень быстро Низкие значения автопривязки - это либо забиваешь болт либо проверяешь в посл. Очередь |
|||
124
Garykom
гуру
22.09.16
✎
03:14
|
Кста сча гугл вовсю это юзает за счет обучения с помощью своего браузера Хрома.
Фишка что пользователь ищет что то по ключевым словам а затем отслеживаются переходы на сайты из поисковой выдачи и сколько времени там провел пользователь который искал. Если выдали не то то пользователь почти сразу закрывает сайт и гугл его минусует для слов запроса. А если долго на сайте просидел то плюсует для слов. И самое веселое что он это настраивает индивидуально для юзеров )) Т.е. разная выдача по одинаковым слова для разной истории поиска и серфинга... |
|||
125
Garykom
гуру
22.09.16
✎
03:15
|
(123) Хочу максимально исключить понятие "порог".
|
|||
126
Злопчинский
22.09.16
✎
03:15
|
(122) то что пропустил первый это как раз не проблема
А вот если первый тыкнул неправильно - а ведь онто как раз рисует правила путем тыканья - у тебя случится попа |
|||
127
Злопчинский
22.09.16
✎
03:17
|
(125) не выйдет
В том или ином виде он будет имхо Если в качестве поиска я топчу Бумага - я что ищу? Любую бумагу А если я втопчу Бумага зеленая - значит ли это что мне не надо выдавать бумагу салатовую? |
|||
128
Garykom
гуру
22.09.16
✎
03:18
|
(126) Угу, особенно если 2-й это не заметит (или 1-й сам) и не исправит.
Есть такая проблема у нейронных сетей и прочих алгоритмов машинного обучения как "переобучение". |
|||
129
Garykom
гуру
22.09.16
✎
03:20
|
(127) >Бумага зеленая - значит ли это что мне не надо выдавать бумагу салатовую?
Если при первоначальном обучении когда разбирали признаки сказали что "зеленая"<>"салатовая" то да не покажет и исключит. Но оно при обучении (или 1-й раз встретилась) про салатовую спросит и если занесут как синоним к зеленой то все ок будет и даже супер. |
|||
130
Злопчинский
22.09.16
✎
03:20
|
Имхо все равно не туда пошли
Загони свои прайсы тупо на какойнить свой сайт-классификатор И для поиска соответствия используй поисковую машину яндекса, ограничив ее область поиска этим своим сайтом И все |
|||
131
Garykom
гуру
22.09.16
✎
03:22
|
(129) Можно заставить юзера печатать заново слова, а не просто добавлять тыком как новое.
Т.е. сначала предложит выбрать синоним и если нету синонима то уже заносим как новый признак. Но тут еще думать и думать. |
|||
132
Злопчинский
22.09.16
✎
03:23
|
(129) затрахаетесь
Придется обучать или исключать комбинации всех со всеми Потому что Бумагу зеленую и бумагу салатовую следует считать равными А бумагу зеленую с бумагой салатовой с красноватым оттенком следует не считать одинаковыми |
|||
133
Garykom
гуру
22.09.16
✎
03:24
|
(130) Гениальная идея особенно если заставить яндекс/гугл через апи еще и этот сайт "доклассифицировать" ))
|
|||
134
Garykom
гуру
22.09.16
✎
03:26
|
(132) Игру кит или кот знаем? Ну или http://ru.akinator.com/
|
|||
135
Злопчинский
22.09.16
✎
03:26
|
(131) я над аналогичной задачей уже гдето с год вяло думаю
У меня лавочник хочет свой товары описывать произвольным набором характеристик с произвольными значениями жтих характеристик и чтобы при жтом при поиске вот клиент хочет чегото такого - чтобы выдавалось именно то что клиенту надо |
|||
136
Злопчинский
22.09.16
✎
03:29
|
(133) не понял какой смысл ты вложил в слово доклассифицировать?
Ты пополнил свой сайт новыми позициями спсков - через день или два или неделю робот яндекса это доиндексирует хочешь быстрее - заплати яндексу - он будет тебя хоть каждый час индексировать |
|||
137
Garykom
гуру
22.09.16
✎
03:32
|
(134)+ Кста попробовать загадать если Злопчинский то интересно угадает?
|
|||
138
Злопчинский
22.09.16
✎
03:33
|
(134) хрен там
Загадал гендальфа из властелина колец И нихрена не отгадали Так как на впрос Играл ли персонаж во властелине колец мой ответ нет Гендальф не играл во властелине колец Ибо это не фильм |
|||
139
Garykom
гуру
22.09.16
✎
03:33
|
(136) Сопоставить неклассифицированный хлам к уже классифицированным четким детально расписанным позициям.
|
|||
140
Garykom
гуру
22.09.16
✎
03:34
|
(138) У них база переобучена)) Гендальф был во Властелине Колец )))
|
|||
141
Злопчинский
22.09.16
✎
03:36
|
Но если отвечать дальше то вообщем угадал, да и то потому что в тех вопросах где я сомневался я давал более положительные моменты
|
|||
142
Злопчинский
22.09.16
✎
03:37
|
(140) гендальф в фильме - не был
Фильм был про гендальфа Разн цу чувствуешь? Это как про бумагу, которая не главная |
|||
143
Garykom
гуру
22.09.16
✎
03:46
|
(142) Угу, но главное чтобы это чувствовали юзеры ))
Понятно что даже простое нечеткое сопоставление можно легко криво напривязывать, но да это сложнее сделать чем с таким продвинутым как хочу я. Но это продвинутое для умного/грамотного но ленивого пользователя )) |
|||
144
Garykom
гуру
22.09.16
✎
03:49
|
(143)+ В смысле когда обучение идет, пользоваться готовыми то уже кто угодно сможет.
Кста если сохранять привязки юзеров и высчитывать % правильности причем делать дубляж для одного и того же. То будет интересная система самомодерирования и самоисправления для базы. Когда неправильная оценка плохого юзера будет перебиваться хорошими оценками хороших юзеров )) |
|||
145
Torquader
22.09.16
✎
11:03
|
(144) В общем - проще сделать сайт, где хорошо продуманный классификатор товаров - и предложить и покупателям и продавцам пользоваться этим классификатором - тогда точно взлетит.
|
|||
146
Garykom
гуру
22.09.16
✎
11:25
|
(145) Чтобы сделать сайт все равно нужен некий алгоритм чтоб операторы могли быстро и удобно создавать/править/привязывать номенклатуру.
И да типовой каталог (онлайн) публичный пусть будет а монетизация на привязках (к другим каталогам) и api. |
|||
147
Лефмихалыч
22.09.16
✎
11:27
|
(0) гугл целый глобальный бизнес на таком алгоритме построил, а ты хочешь им какие-то сцаные наименования формировать. Узко мыслишь :)
|
|||
148
Loky9
22.09.16
✎
20:50
|
"Типовой алгоритм https://ru.wikipedia.org/wiki/Наибольшая_общая_подстрока слишком медленно работает, т.к. сравнивает строки только попарно."
Там только примеры для двух строк, а сам алгоритм работает с произвольным их количеством. |
|||
149
Garykom
гуру
22.09.16
✎
20:54
|
(148) Каким образом если не секрет?
Если в виде реализации вместо "private static String longestCS(String a, String b)" будет "private static String longestCS(ArrayList<String> a)" то просто замечательно бы... |
|||
150
Garykom
гуру
22.09.16
✎
21:01
|
(149)+ Все не надо, сам дотумкал, можно же матрицу многомерную (по числу строк) делать.
|
|||
151
Злопчинский
22.09.16
✎
21:09
|
(144) да, что-то похожее у меня было
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |