Как классифицировать текст с помощью нейронной сети?
Если знаний в компьютерной лингвистке чуть больше чем ноль, то задачу решить получится не скоро ...
Почему-то поголовное большинство разработчиков тешутся надеждой, что нейронные сети магическим образом решат любую задачу в области искусственного интеллекта.
А какими примерами обучать нейросеть? Ведь не голым текстом... Типа, говоришь нейросети: "глянь, тут человека упомянули". Так что-ли? Для компьютера текст - это лишь последовательность байтов, поэтому он не может понять что для нас-людей представляет интерес. Компьютеру нужно всё разжевать и объяснить на языке цифер.
Ведь как носители языка понимают, что в тексте речь о людях? Есть набор запомненных слов (словарь), которые человек прочтя или услышав, сравнивает со своим словарным запасом и тогда решает, к какой категории относится слово в данном контексте.
Чтобы, проанализировав текст, понять, что "ищут ли какого то человека, мастера", необходимо вычленить некоторые ключевые слова, взятые из словаря: "ищу", "помогите", "подскажите", "посоветуйте", "требуется" и т.д., в сочетании с упоминанием людей (синонимы) и профессий (словарь профессий).
Нейронная сеть на этом этапе не нужна. Она поможет в классификации при работе с цифрами, фактами (булева логика). Так что перед анализом текста нужно извлечь факты и связи из текста и затем скармливать ими классификатор. Помимо нейронных сетей есть другие виды классификаторов, более простых и лёгких в использовании, такие как байесовский классификатор. Нейросети могут быть как с обучением, так и без.
В качестве вводной части имеет смысл начать с лекции Яндекс - Малый ШАД - Лингвистика в поиске.pdf
По практической части: Что такое Томита-парсер, как Яндекс с его помощью ...
Возможно, задача решается проще и без нейросетей.
Такой шаблон вижу:(ищу|подскажите|где найти|помогите|требуется|нужен) (мастер|[[[профессия1]]]|[[[профессияN]]])