2013-06-11 2 views
1

Я хочу подсчитать количество pp/np/vp в тексте, но я не знаю, как идентифицировать PP-теги/NP-теги/VP-теги в chunker openNLP? Я пробовал этот код, но он не работает.Как определить PP-теги/NP-теги/VP-теги в chunker openNLP?

ChunkerModel cModel = new ChunkerModel(modelIn); 
ChunkerME chunkerME = new ChunkerME(cModel); 
String result[] = chunkerME.chunk(whitespaceTokenizerLine, tags); 
HashMap<Integer,String> phraseLablesMap = new HashMap<Integer, String>(); 
Integer wordCount = 1; 
Integer phLableCount = 0; 
for (String phLable : result) { 
    if(phLable.equals("O")) phLable += "-Punctuation"; //The phLable of the last word is OP 
    if(phLable.split("-")[0].equals("B")) phLableCount++; 
    phLable = phLable.split("-")[1] + phLableCount; 
    System.out.println(wordCount + ":" + phLable); 
    phraseLablesMap.put(wordCount, phLable); 
    wordCount++; 
} 

Integer noPP=0; 
Integer TotalPP=0; 
for (String PPattach: result) { 
    if (PPattach.equals("PP")) { 
     for (int i=0;i<result.length;i++) 
      TotalPP = noPP +1; 
     } 
    } 
System.out.println(TotalPP); 

Выход:

1:NP1 
2:VP2 
3:NP3 
4:NP3 
5:VP4 
6:PP5 
7:NP6 
8:NP6 
9:NP6 
10:NP6 
11:PP7 
12:NP8 
13:NP8 
14:NP8 
15:PP9 
16:NP10 
17:NP10 
18:PP11 
19:NP12 
20:NP12 
21:VP13 
22:VP13 
23:NP14 
24:NP14 
25:PP15 
26:NP16 
27:NP16 
28:Punctuation16 
0 

ответ

0

лучший способ заключается в использовании объектов пролетных, у них есть метод с GetType(), который возвращает тип куска.

просмотреть этот

grouping all Named entities in a Document

 Смежные вопросы

  • Нет связанных вопросов^_^