В общем, вы не должны создавать свои собственные объекты IndexedWord.(Они используются для представления «токенов слов», т. Е. Определенных слов в тексте, а не «типов слов», и поэтому запрос слова «проблема» - тип слова - на самом деле недопустим; в частности,предложение может иметь несколько токенов этого типа.)
Существует несколько удобных методов, которые позволяют вам делать то, что вы хотите:
- sg.getNodeByWordPattern (String pattern)
- sg.getAllNodesByWordPattern (String pattern)
Первый является немного опасным, поскольку он просто возвращает первый IndexedWord, соответствующий шаблону, или ноль, если его нет.Но это именно то, о чем вы просили.
Некоторые другие методы для начала:
- sg.getFirstRoot (), чтобы найти (первый, обычно только) корень графаа затем перейти оттуда, например, с помощью метода sg.getChildren (root).
- sg.vertexSet (), чтобы получить все объекты IndexWord на графике.
- sg.getNodeByIndex (int), если вы уже знаете входное предложение и, следовательно, можете запрашивать слова по их целочисленному индексу.
Обычно эти методы оставляют вас при переборе узлов.Действительно, первые два метода get ... Node ... просто выполняют итерацию за вас.