Итак, немного о моей проблеме.
TL; DR
Могу ли я использовать машинное обучение вместо Elastic Search для поиска результатов в зависимости от ввода текста пользователем? Это хорошая идея?
Я работаю над проектом автомобильных запчастей, и мы разделили автомобиль на 300 частей, которые мы храним в базе данных, с некоторыми данными для каждой детали (вес, доступность и т. Д.).
Когда клиент вводит текст своей детали, мы должны иметь возможность классифицировать деталь и сопоставить ее с одной в нашей базе данных.
В настоящее время люди, работающие в нашей команде, вручную сопоставляют текст клиента с частями в нашей базе данных, и мы хотим автоматизировать этот процесс.
Мы пытались использовать текстовый поиск MongoDB, но он часто был неточным, так как детали имеют разные названия в разных частях страны.
Итак, мы хотели получить что-то, что получало бы более точные результаты и улучшалось по мере того, как у нас было больше данных, мы сразу же рассмотрели TensorFlow, после некоторого исследования и участия в Ускоренном курсе машинного обучения Google , я дошел до та точка где указано:
Модели не могут учиться на строковых значениях, поэтому вам придется выполнить некоторую разработку функций, чтобы преобразовать эти значения во что-то числовое
Это было бы полезно в случае, если у нас есть ограниченное количество функций в виде строк, но мы не знаем, что пользователь будет вводить как текст.
Итак, мои вопросы:
1- Можем ли мы использовать машинное обучение для сопоставления ввода текста пользователем с некоторыми документами в нашей базе данных?
2 - Если мы сможем это сделать, будет ли хорошей идеей отдать предпочтение этому по сравнению с другими инструментами поиска, такими как ElasticSearch?
3- Может ли ElasticSearch улучшить свои результаты, чем больше у нас данных? Как?
4- Как бы вы решили эту проблему?
Примечание: я бы делал это в Node.js, и поскольку TensorFlow.js является новым, я склоняюсь к поиску других решений, но если толчок наступит, и результаты будут намного лучше, я бы определенно иди туда.