- Регистрация
- 19.06.2020
- Сообщения
- 26
- Благодарностей
- 6
- Баллы
- 3
Термины:
1. Обработка естественного языка (NLP) сочетает в себе компьютерную лингвистику, машинное обучение и модели глубокого обучения для обработки человеческого языка.
2. Лемматиза́ция — процесс приведения словоформы к лемме — её нормальной (словарной) форме.
Нормальные формы
В русском языке нормальными формами считаются следующие морфологические формы:
Задача:
Есть огромная база заявок. Необходимо распределять заявки по категориям.
Пример:
Ремонт квартиры под ключ в новостройке --> Категория "Ремонт квартир"
Замена смесителя в ванной --> Категория "Сантехника"
Поменять электрический счётчик в щитке --> Категория "Электрика"
Ну и так далее.
В примерах рассмотрели лишь заголовки, в дальнейшем ещё понадобится обрабатывать описание к заявкам, но всё по порядку.
1. Работа с заголовками.
Обработка русскоязычного текста. Зачастую заголовки относящиеся к одной категории имеют различные вариации написания, так же не редки грамматические ошибки. Нам же необходимо учитывать все эти нюансы и сделать так, чтобы программа чётко понимала о чём идёт речь.
Как это вижу я. Создание некой базы со словами и категориями к ним. Программа берёт каждое слово из заголовка, приводит его к нормальной форме (Лемматизация), сверяет с базой и определяет к какой категории оно относится. (Это в двух словах. Понимаю что в заголовках могут быть одинаковые слова в различных категориях, нужно учитывать вероятность и т.д., но это позже)
Запнулся я на этапе лемматизации. Пробовал несколько готовых библиотек, но результат не устраивает.
Пожелания. Желательно чтобы это всё работало без использования нейронных сетей, в будущем подразумевается работа офлайн. Всё это должно работать в связке с Зеннопостером, либо на его базе.
Палки в колёсах.
- Большинство библиотек в данной сфере работает на net 5, зенка же переваривает максимум Framework 4.6.2, что порядком нас ограничивает.
- C#. Опять же ограничения зенки. На C# умные сети нынче не модно разрабатывать.
- Библиотеки что я пробовал применять, работают на нейронных сетях. Результат был не предсказуем, оказались они туповаты.
Заключение.
Возможно я не правильно рассуждаю, нужно смотреть на задачу шире, возможно нужен иной подход. Я не профи, адекватная критика приветствуется.
Может кто-то поделится своими наработками, может подскажут рабочую библиотеку, укажут направление в котором нужно двигаться. Жду любые идеи и предложения.
1. Обработка естественного языка (NLP) сочетает в себе компьютерную лингвистику, машинное обучение и модели глубокого обучения для обработки человеческого языка.
2. Лемматиза́ция — процесс приведения словоформы к лемме — её нормальной (словарной) форме.
Нормальные формы
В русском языке нормальными формами считаются следующие морфологические формы:
- для существительных — именительный падеж, единственное число;
- для прилагательных — именительный падеж, единственное число, мужской род;
- для глаголов, причастий, деепричастий — глагол в инфинитиве (неопределённой форме) несовершенного вида.
- кошками → кошка
- бежал → бежать
- боязненных → боязненный
Задача:
Есть огромная база заявок. Необходимо распределять заявки по категориям.
Пример:
Ремонт квартиры под ключ в новостройке --> Категория "Ремонт квартир"
Замена смесителя в ванной --> Категория "Сантехника"
Поменять электрический счётчик в щитке --> Категория "Электрика"
Ну и так далее.
В примерах рассмотрели лишь заголовки, в дальнейшем ещё понадобится обрабатывать описание к заявкам, но всё по порядку.
1. Работа с заголовками.
Обработка русскоязычного текста. Зачастую заголовки относящиеся к одной категории имеют различные вариации написания, так же не редки грамматические ошибки. Нам же необходимо учитывать все эти нюансы и сделать так, чтобы программа чётко понимала о чём идёт речь.
Как это вижу я. Создание некой базы со словами и категориями к ним. Программа берёт каждое слово из заголовка, приводит его к нормальной форме (Лемматизация), сверяет с базой и определяет к какой категории оно относится. (Это в двух словах. Понимаю что в заголовках могут быть одинаковые слова в различных категориях, нужно учитывать вероятность и т.д., но это позже)
Запнулся я на этапе лемматизации. Пробовал несколько готовых библиотек, но результат не устраивает.
Пожелания. Желательно чтобы это всё работало без использования нейронных сетей, в будущем подразумевается работа офлайн. Всё это должно работать в связке с Зеннопостером, либо на его базе.
Палки в колёсах.
- Большинство библиотек в данной сфере работает на net 5, зенка же переваривает максимум Framework 4.6.2, что порядком нас ограничивает.
- C#. Опять же ограничения зенки. На C# умные сети нынче не модно разрабатывать.
- Библиотеки что я пробовал применять, работают на нейронных сетях. Результат был не предсказуем, оказались они туповаты.
Заключение.
Возможно я не правильно рассуждаю, нужно смотреть на задачу шире, возможно нужен иной подход. Я не профи, адекватная критика приветствуется.
Может кто-то поделится своими наработками, может подскажут рабочую библиотеку, укажут направление в котором нужно двигаться. Жду любые идеи и предложения.
Последнее редактирование: