Определить предмет, объект, глагол в английском предложении?

1

Я работаю в проекте машинного перевода. Мне нужно определить предмет, глагол, объект предложения, чтобы продолжить мою работу. В настоящее время я использую парсер Stanford NLP для анализа предложения. Но я не знаю, как извлечь SVO. Любые идеи, которые я могу рассмотреть?

Теги:
algorithm
nlp
stanford-nlp

2 ответа

1

Я думаю, что было бы довольно сложно, если бы вы хотели провести полный анализ английских предложений. Во-первых, вам нужен словарь, который дает все возможные части речи слова. Тогда вы построили структуру предложения в соответствии с несколькими правилами.

Некоторые из основных правил:

NP(Noun Phrase): N(Noun), 
                 Pronoun,
                 [any number of ADJP(Adjective Phrase)] + N,
                 NP + [any number of ADJP],
                 NP + CONJ + NP

ADJP(Adjective Phrase): ADJ(Adjective), 
                        [any number of ADVP(Adverb Phrase)] + ADJP,
                        PREP(Preposition) + NP

ADVP(Adverb Phrase): ADV(Adverb),
                     ADV + ADVP

VP(Verb Phrase):     Vi(Intransitive Verb),
                     Vt(Transitive Verb) + NP,
                     VP + [any number of ADVP],
                     VP + CONJ + VP,
                     [any number of ADVP] + VP


S(Sentence): NP(Noun Phrase) + VP(Verb Phrase),
             NP + AUX_V(Auxiliary Verb) + VP,
             VP(Verb Phrase) (<=imperative sentence),
             S + CONJ + S

Используя эти правила, можно проанализировать довольно много предложений, в том числе

    My dog runs very fast.

=>  ADJ N    Vi   ADV ADV
=> (ADJ N)  (Vi) (ADV ADVP)
=>   (NP)   (VP    ADVP  )
=>   (NP         VP)
=>         (S)

а также

    I    do   not really like snacks like chips or candy.

=>  N  AUX_V  ADV  ADV    Vt    N    PREP   N  CONJ  N
=>(NP)(AUX_V)(ADV)(ADV)  (Vt)  (NP) (PREP  (NP CONJ  NP))
=>(NP)(AUX_V)(ADV)(ADV)  (Vt)  (NP) (PREP       NP)
=>(NP)(AUX_V)(ADV)(ADV)  (Vt)  (NP      ADJP)
=>(NP)(AUX_V)(ADV)(ADV)  (Vt         NP)
=>(NP)(AUX_V)(ADVP ADVP         VP)
=>(NP  AUX_V            VP)
=>           (S)

но он все еще не может анализировать сложные предложения, такие как:

He is the one who won the Nobel Prize in 2014.

или

It is computers that brought the biggest change to our lives in history.

Вам нужно будет добавить правила о предложениях и союзах (например, "while", "when" и "if"). Вам также необходимо будет добавить правила для инфинитивов и герундов. Вам все равно нужно будет добавлять правила для глаголов, которые берут два объекта (например, "дать" и "рассказывать") и глаголы, которые принимают состояние объекта (например, "смотреть", "казаться" и "получать", в "Я тебя разозлил".)......

После того, как вы добавили все правила, представленные на английском языке, возникают сложные вещи. Например,

They are hunting dogs.

(Это предложение имеет две возможные структуры, создавая, таким образом, два разных значения: во-первых, "охотничьи собаки" - это ADJP, а другое - это NP.)

или

She told me that she loved me, which was a lie.

(В этом случае предложение ", которое было ложью" (ADJP) описывает NP "что она меня любила", но теоретически возможно, что в предложении описывается "я" (местоимение также является NP) или всей частью "Она сказала мне, что любит меня". Программа должна была бы как-то понять, что наиболее вероятный из них - первый.)

Поэтому я думаю, что я бы сделал что-то вроде графика, представляющего возможные структуры в соответствии с словарем и правилами, при обработке предложения по-словски, а затем применяя табу-поиск, чтобы уменьшить возможности, и, наконец, мне пришлось бы использовать статистическим способом или каким-то иным образом заставить компьютер понять ситуацию в реальном мире, чтобы выбрать наиболее вероятную структуру из нескольких оставшихся возможностей.

Кстати, синтаксис Стэнфорда дал неправильную структуру, когда я вошел в последний пример. Это дало "Она сказала мне, что любит [меня, это была ложь]". Подобным образом нелегко сделать работу такого рода безупречной.

  • 0
    Есть ли библиотека, которая делает то же самое и имеет много правил?
0

Для меня это кажется прямым: субъект является сокровенным в анализе с глаголом, и объект обычно является первым NP в глагольной фразе. Тем не менее, определение синтаксического статуса элементов необязательно является простой задачей для охвата всех случаев краев.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню