Вы когда-нибудь задумывались, как Amazon Echo понимает, что вы говорите, даже если вы спросили его иначе, чем ваш супруг? Откуда он знает, что вы имеете в виду, когда говорите: «Какая погода будет завтра?» против «Скажите, пойдет ли дождь позже»?
Возможно, вы хотели иметь такую же возможность поиска в своем приложении или программном решении и наткнулись на этот пост, в котором ищите способ решить эту проблему, не нанимая инженера по машинному обучению. Или, возможно, вам просто интересно, как решается этот тип поиска. Технологическая динамика, лежащая в основе этих возможностей, называется обработкой естественного языка.
Вы можете подумать, что существующие решения просто прослушивают ключевые слова, а затем выполняют поиск по этим словам. И в каком-то смысле вы были бы правы. Но традиционный поиск по регулярным выражениям не работает, когда вы пытаетесь придать релевантность и контекст. Например, слова «позже» и «завтра» на самом деле могут означать одно и то же. Вам необходимо программное обеспечение для машинного обучения и обработки естественного языка, чтобы понимать контекст этих слов, их взаимосвязь и способы их использования для предоставления ответа пользователю.
Чтобы создать модель НЛП, вам нужно подумать о таких вещах, как морфологическая сегментация, теги частей речи, синтаксический анализ, предложения, терминология и т. Д. Вам нужно решить такие вещи, как сходство слов. Например, поиск по слову «лягушка» должен возвращать результаты со словом «жаба» до того, как они возвращают результаты со словом «стул». По сути, вы должны сделать это со всем английским языком. Затем вам нужно понять разницу между людьми, временем, порядковыми номерами, местами, местоположениями и т. Д. Поиск «фотографий Парижа» имеет много контекста, который необходимо понимать, чтобы получить результаты. Прежде всего, вам нужны изображения, поэтому ваша поисковая система должна отображать только изображения в качестве результатов. Затем изображения определенного места могут использовать метаданные, такие как «location = Paris», а не «name = Paris». Ваш пользователь увидит гораздо более релевантные результаты, если будет использоваться обработка естественного языка.
Как вы понимаете, понимание текста, связанного с поиском, имеет множество вариантов использования. Существует несколько программных решений, которым не нужно обрабатывать огромное количество неструктурированного текста для индексации и поиска. Использование обработки естественного языка имеет решающее значение для своевременного получения релевантных результатов.
Существует множество API-интерфейсов обработки естественного языка, которые можно попробовать, с разной степенью точности и затрат. Всегда помните, что вы будете анализировать значительный объем данных и делать тонны и тонны вызовов API, поэтому выберите сервис, который сможет справиться с нагрузкой и не обанкротить ваш банк. Возможно, вы захотите рассмотреть Textbox или Machine Box. Его действительно легко использовать, не требуется никаких знаний в области машинного обучения. Его также можно масштабировать, чтобы удовлетворить огромные потребности в обработке и анализе большого количества текста. Он работает где угодно, интегрируется в любую среду и стоит одинаково, независимо от того, сколько вы его используете.
Что такое Machine Box?
Machine Box помещает современные возможности машинного обучения в контейнеры Docker, поэтому разработчики, такие как вы, могут легко включить обработку естественного языка, распознавание лиц, распознавание объектов и т. Д. В свои собственные приложения очень быстро.
Ящики созданы для масштабирования, поэтому, когда ваше приложение действительно набирает обороты, просто добавьте еще ящиков по горизонтали, до бесконечности и дальше. Да, и это намного дешевле, чем любой из облачных сервисов (а они могут быть лучше)… и ваши данные не покидают вашу инфраструктуру.
Поиграйте и дайте нам знать, что вы думаете.