0 / 0 / 1
Регистрация: 29.01.2016
Сообщений: 117
1

Машинное обучение или комбинаторика

08.11.2018, 14:45. Показов 2071. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. хотелось бы получить совет
Задача такая, например есть БД в которой хранятся организации с наименованиями, пользователь вводит наименование организации, но при этом организации фильтруется по ид пользователя в вк.
Живой пример: пользователи вводят наименование организации, например "Московская РАЙПО", но такой организации нет запрос ее не находит, но есть организация "РАЙПО Московское". Есть ли методы перебора комбинаций путями SQL, или необходимо подключать машинное обучение? Слышал про нейросети, но никогда их не реализовывал и не сталкивался. Подскажите, пожалуйста, добрыми советами в какую сторону копать? Может я слишком глубоко залез и можно решить это средствами SQL. Есть ли живые примеры по реализации данной логики, чтобы наглядно посмотреть, как работает и с чего начать. Заранее спасибо
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.11.2018, 14:45
Ответы с готовыми решениями:

Машинное Обучение
Доброго времени суток уважаемые читатели, хочу услышать Ваше экспертное мнение в области машинного...

Машинное обучение
вот допустим заполненность емкости в литрах и в процентах 120л - 60% 140л - 70% 150л - 75%...

Машинное обучение
Приветствую всех Делаю проект по биометрической верификации, только начал погружаться в машинное...

Машинное обучение
Здравствуйте. Прочитал на Хабре несколько статей по машинному обучению и решил немного...

Keras. Машинное обучение
Приветствую, занимаюсь проектом по машинному обучению и задался вопросом... Какой алгоритм обучения...

9
Эксперт Python
5419 / 3843 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
08.11.2018, 16:42 2
Цитата Сообщение от DenisLTB Посмотреть сообщение
можно решить это средствами SQL
Это решается полнотекстовым поиском, который есть в СУБД MySQL\Postgres и др.
0
0 / 0 / 1
Регистрация: 29.01.2016
Сообщений: 117
08.11.2018, 16:56  [ТС] 3
Сталкивался с полнотекстовым поиском, но не думал, что он может находить "подобные" словосочетания. Почитал в гугле конструкция 'LIKE', но если я пишу LIKE '%Московская%', то явно не найдет словосочетания "МосковскОЕ", или я ошибаюсь?
0
Эксперт Python
5419 / 3843 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
08.11.2018, 17:12 4
LIKE это не полнотекстовый поиск, а поиск по примитивному шаблону.
Для полнотекстового поиска есть свои операторы и БД должна иметь индекс типа FULLTEXT (MySQL) или GIN(Postgres).

Добавлено через 9 минут
Цитата Сообщение от DenisLTB Посмотреть сообщение
но если я пишу LIKE '%Московская%', то явно не найдет словосочетания "МосковскОЕ"
Кстати, найдет, если написать правильно. И использовать RLIKE. НО fulltext search имеет куда более богатые возможности.
Это поиск почти как в яндексе\гугле.
1
0 / 0 / 1
Регистрация: 29.01.2016
Сообщений: 117
08.11.2018, 17:34  [ТС] 5
Да, я то напишу, а вот пользователи....
0
931 / 692 / 270
Регистрация: 10.12.2016
Сообщений: 1,707
08.11.2018, 18:58 6
Цитата Сообщение от DenisLTB Посмотреть сообщение
Живой пример: пользователи вводят наименование организации, например "Московская РАЙПО"
в данном случае ключевое слово - РАЙПО, а потом уж Московск(ая/ое/ую)
0
Эксперт Python
5419 / 3843 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
08.11.2018, 20:14 7
Пример fulltext search из Postgres:

Вектор пользовательского запроса:

Oracle 11 SQL
1
2
3
4
5
postgres=# SELECT plainto_tsquery('russian','московскАЯ РаЙпО');
   plainto_tsquery
---------------------
 'московск' & 'райп'
(1 строка)
Вектор документа
Oracle 11 SQL
1
2
3
4
5
postgres=# SELECT to_tsvector('russian','РАЙПО московское находится у черта на куличках');
                     to_tsvector
-----------------------------------------------------
 'куличк':7 'московск':2 'наход':3 'райп':1 'черт':5
(1 строка)

Результат поиска: True
Oracle 11 SQL
1
2
3
4
5
6
postgres=# SELECT to_tsvector('russian','РАЙПО московское находится у черта на куличках')
postgres-# @@  plainto_tsquery('russian','московскАЯ РаЙпО') AS match;
 match
-------
 t
(1 строка)
Добавлено через 4 минуты
P.S. Разумеется, подобную векторизацию, лемматизацию\стемминг и поиск по векторам (bag-of-words) слов можно делать и прямо в Python.
Но это требует специфических познаний.
1
0 / 0 / 1
Регистрация: 29.01.2016
Сообщений: 117
09.11.2018, 12:37  [ТС] 8
Рассмотрел библиотеку PyStemmer, интересно поможет решить проблему или нет, а так про стемминг вчера поговорил с ребятами, говорят может помочь.

Добавлено через 1 минуту
ну слово "райпо" образно, у нас "райпо" более 300 организаций, проблема выделить ключевое слово, так как пользователь может ввести любое словосочетание
0
Эксперт Python
5419 / 3843 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
09.11.2018, 12:53 9
Лучший ответ Сообщение было отмечено DenisLTB как решение

Решение

Если делать через python, то лучше использовать лемматизацию, а не стемминг (postgres из коробки умеет только стемминг). Стемминг просто выделяет корневую основу без учета морфологии и эта основа может запросто совпасть с кучей других слов. А лемматизация это приведение слова к нормальной форме - единственное число именительный падеж.
Это умеет делать pymorphy2.
1
0 / 0 / 1
Регистрация: 29.01.2016
Сообщений: 117
12.11.2018, 10:34  [ТС] 10
Принципе стемминг в сочетании с комбинаторикой, на выходе все возможные комбинации словосочетаний и подстановка их в запрос решают мою проблему, спасибо всем
0
12.11.2018, 10:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.11.2018, 10:34
Помогаю со студенческими работами здесь

Машинное обучение на булиновых данных
Всем привет, Новичок в ML. Есть задача кластеризировать данные, представляющие собой: 2000...

Машинное обучение для предсказания ренты
Делаю лабу по машинному обучению. Но честно говоря не до конца все понимаю. Нужно прогнозировать...

Машинное обучение. Оценки качества моделей регрессии
Добрый день. У меня табличные данные, т.е. задача ререссии. Для прогнозирования использую модели -...

Машинное обучение: распознавание текстур кожи методом KNN
Всем привет! Провожу исследование распознания текстур кожи методом ближайших соседей на Python....

Машинное обучение, нужны ответы на несколько теоретических заданий
1) Градиентный-бустинг. Каким образом рассчитывается ответ градиентного-бустинга. 2) Градиентный...

Сделать программу на python которое использует машинное обучение (регрессия)
Пусть имеется информация о средней сумме продуктовой корзины каждого посетителя магазина и сведения...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru