Я работаю над проектом с разрешением анафоры по алгоритму Хоббса. Я проанализировал свой текст с помощью анализатора Stanford, и теперь я хотел бы манипулировать узлами, чтобы реализовать свой алгоритм.Получить определенные узлы из дерева Parse
На данный момент, я не понимаю, как:
доступа узел на основе его POS-тега (например, мне нужно начинать с местоимения - как я могу получить все местоимения?).
Использование посетителей. Я немного нуб Java, но на C++ мне нужно было реализовать функтор Visitor, а затем работать над его перехватами. Хотя я не мог найти много для структуры дерева Стэнфордского Парсера. Это jgrapht? Если да, можете ли вы предоставить мне некоторые указатели на фрагменты кода?
Спасибо! Метод .children() для меня достаточно, чтобы написать на нем итератор BFS, но для будущей ссылки, почему я не совместим с jgrapht? Я читал, что вы использовали эту библиотеку для создания своей древовидной структуры, поэтому я подумал, что это должно быть! Последнее, что мне нужно, это получить слово, помеченное тегом POS - скажем, у меня есть t = (PRP he). С t.label(). Value() Я могу получить PRP, как мне получить «он»? Еще раз спасибо! =) – Tex
О, это получилось. Это был только ребенок. Все хорошо! : D – Tex
В классе Tree не используется jgrapht. (Хотя он был модифицирован по-разному, например, с внедрением Iterable, класс Tree был первоначально написан против JDK 1.1, до того, как существовал jgrapht, и каким-то образом показывает его возраст ....) Мы ранее использовали jgrapht за нашими графиками зависимостей , но недавно отошли от него.Наше впечатление заключалось в том, что многие люди предпочитали меньше библиотечных зависимостей. Чтобы получить слово, вы направляетесь на один уровень вниз 'subtree.firstChild(). Label(). Value()'. –