|
1 / 1 / 0
Регистрация: 30.04.2019
Сообщений: 89
|
||||||||||||||||
Задача разбора предложения естественного языка01.08.2019, 23:32. Показов 2597. Ответов 2
Метки нет (Все метки)
Здравствуйте!
Есть задача написать парсер предложений русского языка. Я взял корпус, написал КС-грамматику, составил дерево разбора. На односоставных предложениях парсер работает отлично.
Я использую восходящий LR-разбор: парсер работает по принципу автомата с магазинном - идет слева направо и пытается найти правило, если находит - происходит свертка и дереве появляется новый узел. Проблема в том, что если парсер будет идти по предложению "Он сказал, что Иван приедет завтра", то
Но правильно будет, если второе S (Иван приедет) будет левым потомком VP (сказал что). Вкратце: я хочу получать вложения одного предложения в другое, а не просто набор предложений. Добавлено через 2 минуты Вероятно я не совсем ясно описал ситуацию. Задачу можно переформулировать на языке теории формальных языков, с некоторой поправкой на особенности естественного языка. Если кто-то может порекомендовать туториал или литературу - буду благодарен.
0
|
||||||||||||||||
| 01.08.2019, 23:32 | |
|
Ответы с готовыми решениями:
2
Обработка естественного языка на Python. Задача на программирование Обработка естественного языка Обработка естественного языка |
| 03.08.2019, 00:46 | |
|
constantin_01, Сразу предупреждаю, что я не знаю, как Вам помочь. Просто хочу уточнить Вашу проблему, как я ее понимаю. Вы хотите создать парсер содержательного текста, по аналогии с парсингом сайтов. Я начал было изучать парсинг сайтов, думая, что с его помощью можно будет парсить произвольный сайт. Но углубившись в эту проблему понял, что на текущий момент под каждый сайт пишется свой парсер. И это охладило мой пыл. Понятно, что существуют шаблоны, которые можно использовать, что бы из них писать парсеры для конкретных сайтов. Но что бы программа сама писала парсер под произвольный сайт, такой технологии я не нашел.
По аналогии, я думаю у Вас та же проблема, Вы создаете парсер под конкретное предложение, но Ваша программа не может автоматически создавать парсер для предложений любого типа. Я думаю что эта задача уже относится к области искусственного интеллекта. Один из разделов искусственного интеллекта, это понимать смысл написанного предложения. И подраздел этого раздела, это автоматически анализировать структуру предложения, что собственно и пытаетесь делать Вы. Попытайтесь найти какую либо информацию в тематике, посвященной искусственному интеллекту и в частности относящуюся к анализу текста (разбору текста). Путин обозначил создание искусственного интеллекта, как первоочередную задачу на сегодняшний день. Поэтому искрене желаю Вам удачи в разработке этой тематики. Кстати Garry Galler, в теме Перевод текстовых числительных в натуральную форму рассказал что в Python есть морфоанализатор pymorphy2. Это не совсем то, чем занимаетесь Вы, но тоже относится к анализу содержания текста, а именно отдельных слов из текста. Объединение морфологического анализа текста и Вашего анализа структуры текста, как раз и решает частично задачу анализа смыслового содержания текста. Добавлено через 10 минут Кстати у меня появилась мысль, что один из подходов создания искусственного интеллекта, это процесс обучения компьютера, по аналогии, как обучают ученика в школе. Так же последовательно вкладывать в него знания, как они вкладываются школой в ученика.
0
|
|
|
1 / 1 / 0
Регистрация: 30.04.2019
Сообщений: 89
|
|
| 03.08.2019, 22:11 [ТС] | |
|
Viktorrus, спасибо за ответ!
Я знаю, что данная задача может быть решена без привлечения ИИ, например, stanford NLP использует статистические и КС-грамматику для разбора предложений (на английском). Статистические методы я использовать не могу, так как недостаточно материала (помеченных текстов на русском). Что касается pymorphy2, то я использую как тот же API к корпусу, то есть на уровне морфологии - та же технология. Проблема просто в бедности грамматики наверное или алгоритма. А что касается вашей аналогии обучения компьютера с обучением ребенка, то на эту тему сейчас есть много статьей. Например, на Хабре есть одна такая (перевод с англ.), где мать будучи IT специалистом сравнивает опыт воспитания и обучения детей с опытом обучения компьютера. Называется "Воспитание ребенка VS машинное обучение ... "
0
|
|
| 03.08.2019, 22:11 | |
|
Помогаю со студенческими работами здесь
3
Задача 4: Обработка естественного языка Перевод естественного языка Перевести с естественного языка на язык предикатов Перевести с естественного языка на язык предикатов Перевод с естественного языка на язык логики Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|