Questa risposta è un po 'obsolete così ho deciso di aggiungere la mia. Quindi, con la versione Stanford Parser 3.6.0 (dipendenze 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;
}
Ciò restituirà I_PRP claim_VBP the_DT rights_NNS
per 'I claim the rights'
Quindi, se si desidera rilevare i verbi in una frase utilizzando Java e stanford parser puoi fare questo:
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;
}
fonte
2016-02-28 22:20:00
Che cos'è lp? .... –
Un LexicalizedParser ... modificato in precedenza. –
@ChristopherManning Come si può ottenere questo in python –