Câu trả lời này là một chút lỗi thời vì vậy tôi quyết định thêm của riêng tôi. Vì vậy, với phiên bản Stanford Parser 3.6.0 (maven phụ thuộc):
<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;
}
này sẽ trở lại I_PRP claim_VBP the_DT rights_NNS
cho 'I claim the rights'
Vì vậy, nếu bạn muốn để phát hiện động từ trong một cụm từ sử dụng java và stanford parser bạn có thể làm điều này:
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;
}
Nguồn
2016-02-28 22:20:00
Lp là gì? .... –
Một LexicalizedParser ... chỉnh sửa ở trên. –
@ChristopherManning Làm thế nào điều này có thể đạt được trong python –