Этот ответ немного устарел, поэтому я решил добавить свой. Так с версией Stanford Parser 3.6.0 (зависимости maven):
<dependency>
<groupId>edu.stanford.nlp</groupId>
<artifactId>stanford-parser</artifactId>
<version>3.6.0</version>
</dependency>
<dependency>
<groupId>edu.stanford.nlp</groupId>
<artifactId>stanford-corenlp</artifactId>
<version>3.6.0</version>
</dependency>
<dependency>
<groupId>edu.stanford.nlp</groupId>
<artifactId>stanford-corenlp</artifactId>
<version>3.6.0</version>
<classifier>models</classifier>
</dependency>
private static MaxentTagger tagger = new MaxentTagger(MaxentTagger.DEFAULT_JAR_PATH);
public String getTaggedString(String someString) {
String taggedString = tagger.tagString(someString);
return taggedString;
}
Это вернет I_PRP claim_VBP the_DT rights_NNS
для 'I claim the rights'
Итак, если вы хотите обнаружить глаголы во фразе, используя анализатор java и stanford, вы можете сделать это:
public boolean containsVerb(String someString) {
String taggedString = tagger.tagString(someString);
String[] tokens = taggedString.split(" ");
for (String tok : tokens){
String[] taggedTokens = tok.split("_");
if (taggedTokens[1].startsWith("VB")){
return true;
}
}
return false;
}