Определение типа существительного в Java - PullRequest
2 голосов
/ 18 декабря 2011

В настоящее время я работаю над проектом, в котором мне нужно создать возможные ответы на вопрос WH на основе данного предложения.

Пример предложения:

Anna went to the store.

Мне нужно создать возможныеответы на следующие вопросы.

Who went to the store?
Where did ana go?

Я уже применил POST-тегирование слов, и теперь я знаю часть речи этого слова.

Мне было трудно определить, чтотип существительного - это слово, если оно является существительным, поэтому я могу создать шаблон для своего ответа.

Пример:

Anna - noun - person: possible answer to question who.

Store - noun - place: possible answer to question where.

Я хочу реализовать это с помощью Java

Ответы [ 2 ]

3 голосов
/ 18 декабря 2011

Не следует пытаться вывести возможные вопросы и их ответы из существительных, присутствующих в предложении. Вместо этого вы должны определить тип вопросов, которые вы можете задать из упражнения, описанного глаголом. В вашем примере система должна сделать вывод о том, что для движения требуется субъект, который уходит (возможный ответ на вопрос «кто»), место, куда уходит субъект (возможный ответ на вопрос «куда»), а также время, когда предмет пошел туда (возможный ответ на вопрос «когда») и, возможно, больше (откуда, с кем, с помощью каких средств, каким путем и т. д.). Затем следует проверить, какие ответы приведены в вопросе. В вашем примере предоставлены ответы на вопросы «кто» и «где», а «когда» - нет. Другими словами, у вас должно быть отображение глаголов на вопросы, которые имеют смысл для каждого глагола.

Тогда для каждого вопроса, применимого к глаголу, вы должны хранить предлоги, которые используются для обозначения этого ответа в предложении. Например, ответу на вопрос «где» часто предшествует «к», а ответу на «когда» часто предшествует «в» или «вкл». Обратите внимание, что субъект (здесь ответ на вопрос «кто») нуждается в особом подходе. Кроме того, за некоторыми глаголами может сразу следовать объект без предлогов, и ваш набор данных глаголов должен указывать на вопрос, на который они составляют ответ. Например, после глагола «войти» может следовать объект, который отвечает на вопрос «где / что», как в слове «Анна вошла в комнату». Кроме того, некоторые существительные являются исключениями и никогда не предшествуют предлогу. Например, «домой», как в «Анна пошла домой». Вы должны относиться к ним особенно хорошо. Еще одна вещь, на которую стоит обратить внимание, это идиоматические выражения типа «Анна пошла на многое». Опять же, требуется особое лечение.

Как правило, существительные в английском языке не имеют достаточной структуры, чтобы позволить вам определить, какой тип вещи (например, место, объект, человек, понятие и т. Д.) Они обозначают. Вам нужно иметь большой набор данных, который разбивает все известные системе слова на разные категории. Если вы используете такой набор существительных, он должен играть вспомогательную роль для повышения точности системы.

Использование глаголов и предлогов намного более гибко, поскольку позволяет системе обрабатывать неизвестные выражения. Например, кто-то может сказать: «Анна пошла к Бобу», но «Боб» не место. Система, которая выводит роль каждого элемента из глагола и предлога, по-прежнему обрабатывает эту ситуацию и правильно воспринимает «Боба» как правильный ответ на вопрос «где».

0 голосов
/ 19 декабря 2011

Я сосредоточусь только на вашей проблеме при определении типов существительных, а не на подходе к ответу на фактоидные вопросы.

SuperSense Tagger - это один ресурс / инструмент, который предоставляет более конкретную информацию о типе / смысле для POS. Вы можете проверить категории токенов, которые включают существительное: персона и существительное: местоположение. Есть обертки для Java (вы можете просто найти их).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...