Ответ 1
Вероятно, лучше, если вы в первую очередь используете дерево разбора на основе элементов, а не зависимости. Зависимости будут полезны, но только после завершения основной работы! Я собираюсь объяснить это в конце моего ответа.
Это объясняется тем, что анализ синтаксического анализа основан на грамматической структуре фразы, что наиболее важно, если вы хотите извлечь предложения из предложения. Это может быть сделано и с использованием зависимостей, но в этом случае вы, по сути, будете восстанавливать структуру фразы - начиная с корня и глядя на зависимые узлы (например, ABC
и facts
являются номинальным объектом и прямым объектом глагол cites
и т.д.).
Однако полезно визуализировать дерево разбора. В вашем примере эти предложения обозначаются тегом SBAR, который является предложением, введенным (возможно, пустым) субординирующим соединением. Все, что вам нужно сделать, это следующее:
- Определите узлы без полномочий root в дереве синтаксического анализа
- Удалить (но сохранить отдельно) поддеревья, внедренные в эти клаузуальные узлы из главного дерева.
- В главном дереве (после удаления поддеревья на шаге 2) удалите любые висячие предлоги, подчиненные союзы и наречия.
В шаге 3, что я подразумеваю под "зависанием", является то, что любые предлоги и т.д., зависимость которых была удалена на этапе 2. Например, из "ABC ссылается на то, что" вам нужно удалить предлог/соединение "что", потому что его зависимый node "запрет" был удален на шаге 2. Таким образом, у вас будет три независимых предложения:
- химические добавки запрещены во многих странах (удаление SBAR на этапе 2).
- они могут быть запрещены и в этом состоянии (удаление SBAR на шаге 2)
- ABC ссылается на факт (шаг 3)
Единственная проблема здесь - это соединение ABC. Для этого обратите внимание, что как "запрещенные", так и "чувственные" являются дополнениями глагола "цитирует", и, следовательно, имеют тот же предмет, который является "ABC"! И вы сделали. Когда это будет сделано, вы получите четвертое предложение: "ABC чувствует", что вы можете или не хотите включать в свой окончательный результат.
Список всех клаузуальных тегов (и, фактически, всех тегов Penn Treebank), см. в этом списке: http://www.surdeanu.info/mihai/teaching/ista555-fall13/readings/PennTreebankConstituents.html
Для онлайн-визуализации синтаксического анализа вы можете использовать онлайн-версию парсера Berkeley. Это помогает в формировании лучшей интуиции. Здесь изображение, сгенерированное для вашего примера:
Предостережение
- Даже самые лучшие парсеры не всегда правильно разбирают предложения, поэтому имейте это в виду.
- Кроме того, многие сложные предложения включают right node raise, который почти никогда не разбирается в большинстве парсеров.
- Вам может потребоваться немного изменить алгоритм, если предложение имеет пассивный голос.
Помимо этих трех ошибок, приведенный выше алгоритм должен работать довольно точно.