RDF представление предложений - PullRequest
5 голосов
/ 24 апреля 2010

Мне нужно представлять предложения в формате RDF.

Другими словами, «Джон любит кокс» будет автоматически представлен как:

Subject : John
Predicate : Likes
Object : Coke

Кто-нибудь знает, с чего мне начать? Есть ли программы, которые могут делать это автоматически или мне нужно делать все с нуля?

Ответы [ 2 ]

10 голосов
/ 25 апреля 2010

Похоже, вы хотите типизированные зависимости предложения, например, для John likes coke:

 nsubj(likes-2, John-1)
 dobj(likes-2, coke-3)

Я не знаю ни одного парсера зависимостей, который напрямую создает RDF.Однако многие из них производят синтаксический анализ в стандартизированном представлении с ограничением табуляции, известном как CoNLL-X , и преобразование из CoNLL-X в RDF не должно быть слишком сложным.

Синтаксические анализаторы с открытым исходным кодом

Существует несколько синтаксических анализаторов на выбор, извлекающих типизированные зависимости, включая следующие современные опции с открытым исходным кодом:

Stanford Parser включает предварительно обученную модельдля разбора английского.Чтобы получить типизированные зависимости, вам нужно использовать флаг -outputFormat typedDependencies.

Для MaltParser вы можете скачать английскую модель здесь .

MSTParser включает в себя небольшой обучающий набор по 200 предложений на английском языке, который можно использовать для создания собственной модели анализа английского языка.Однако обучение этим небольшим данным повредит точности получаемого синтаксического анализатора.Таким образом, если вы решите использовать этот анализатор, вам, вероятно, лучше использовать модель предварительной подготовки, доступную здесь .

Все приведенные выше модели предварительной подготовки производят синтаксический анализ в соответствии с формализмом зависимости Стэнфорда ( ACL paper и manual ).

Из этих трех Stanford Parser является наиболее точным.MaltParser является самым быстрым, с некоторыми конфигурациями этого пакета, способными анализировать 1800 предложений всего за 8 секунд .

2 голосов
/ 25 апреля 2010

Один из вариантов - использовать вывод из Link Parser , доступный по лицензии, совместимой с GPL. При необходимости вы можете определить уровень перевода между этими выходными данными и вашими узлами RDF.

Проверьте это демо на вашем примере "John Like Coke"!

...