2012-05-26 2 views
4

У меня есть предложения, которые я хочу разобрать. Вот что я имею и что мне нужно: у меня есть предложения, подобные этим:Есть ли какой-нибудь Фразовый головорез?

Я был в больнице.

Я еду из Канады.

Я хочу знать главу «в больнице», «из дома» и фразы «в Канаду».

Я использую парсер Беркли, но то, что он дает мне, является результатом синтаксического анализа всего предложения, и если я хочу извлечь главу фраз вручную, я должен разработать еще один парсер! Файл, который я хочу проанализировать, является очень большим файлом, поэтому, если я сам разработаю парсер, у него может быть много ошибок. Есть ли парсер, который может дать мне результат, который я ищу?

Кстати, поскольку разбор фраз отдельно может привести к разному анализу по сравнению с синтаксическим разбором предложения, я настаиваю на разборе предложений и извлечении фраз головок.

ответ

6

Индекс S tanford Parser и OpenNLP парсеры дадут вам Неполные из-Speech и информации о зависимости, которые вы можете использовать, чтобы определить голова фраз

Например, используя анализатор Stanford, вы получите:

(S 
    (NP (PRP I)) 
    (VP (VBD was) 
     (PP (IN in) 
      (NP (DT the) 
       (NN hospital))))) 

Который говорит вам, что предложение (S) состоит из именной фразы (NP) и глагольной фразы (VP); глагол-фраза - это глагол (V *) + предпозиционная фраза (PP), которая является предлогом в и именной фразой; вторая именная фраза является определителем (DT) и существительным (NN).

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

nsubj(was, I) 
prep_in(was, hospital) 
det(hospital, the) 

Это говорит о том, что слова было и I находится в номинальном СЮЖЕТНОМ nsubj отношение (I относится к объекту было); слова были и больницы находятся в предложении «in» (prep-in); слова «больница» и «the» находятся в определителе (det). Используя предыдущий синтаксический анализ и информацию о зависимостях, вы можете сказать, что голова первой фразы «Я» (тривиальная), а голова второй именной фразы - «больница» (так как это «верхняя», элемент отношений внутри именной фразы)

+0

Не могли бы вы дать мне дополнительную информацию. Я пытался их использовать, но это было нелегко! – user1419243

+0

@ user1419243 - см. Обновление – Attila

3

Вопрос о поиске головного слова во фразе не является тривиальным, как указано в ответе Аттилы. У профессора Майкла Коллинса есть список эвристик для поиска головного слова (его эвристика основана на наборе данных банка Penn Tree), и реализация этих эвристик доступна в Stanford CoreNLP Suite (я проверил в версии 20140104).

В ответе, предоставленном here, есть более подробная информация о классах в Stanford CoreNLP, которые находят для вас головное слово.

Смежные вопросы