Как использовать синтаксический анализатор / тегер SyntaxNet с API spaCy?
Я использовал пакет Python spaCy для синтаксического анализа и тегирования текста, а также полученное дерево зависимостей и другие атрибуты для получения значения. Теперь я хотел бы использовать Partax McParseface от SyntaxNet для синтаксического анализа и тегирования зависимостей (что кажется лучше), но я бы хотел продолжать использовать spaCy API, потому что он очень прост в использовании и делает много вещей, которых не делает Parsey. SyntaxNet выводит POS-теги и теги / дерево зависимостей в формате CoNLL:
- Bob _ NOUN NNP _ 2 nsubj _ _
- принес _ VERB VBD _ 0 ROOT _ _
- _ DET DT _ 4 det _ _
- пицца _ NOUN NN _ 2 добь _ _
- _ ДОБАВИТЬ В _ 2 подготовительные _ _
- Алиса _ NOUN NNP _ 5 pojj _ _
- , _ ., _ 2 пункт _ _
и spaCy, кажется, в состоянии прочитать формат CoNLL прямо здесь. Но я не могу понять, где в API-интерфейсе spaCy используется строка, обработанная CoNLL.
3 ответа
Из блога spaCy:
Очевидно, что мы хотим построить мост между Parsey McParseface и spaCy, чтобы вы могли использовать более точную модель с более приятным spaCy API.
Тем не менее, похоже, что еще многое предстоит сделать, прежде чем это станет возможным.
Смотрите также ответ автора spaCy здесь.
Я не пробовал с spaCy, но мне удалось использовать вывод SyntaxNet внутри классов / структур Python NLTK, таких как DependencyGraph и Tree.
Вот полный пример:
Кому-нибудь уже удалось запустить SyntaxNet в качестве службы? Нет проблем с загрузкой аннотаций в spaCy. Проблема в том, что SyntaxNet - это, прежде всего, исследовательская система, и этого было достаточно для экспериментальных нужд, чтобы работать с пакетами текста с диска.
Если вы читаете с диска, проблем не должно быть - просто читайте в формате CoNLL, и тогда вы можете применять аннотации к объектам spaCy Doc.