我試圖提取使用的規則,如對文本下面提及的那些,其已經POS標籤如何編寫提取名詞短語的高效代碼?
1)NNP短語 - > NNP( - >表示隨後) 2)NNP - > CC - > NNP 3)VP - > NP etc ..
我已經用這種方式編寫代碼了,有人能告訴我怎樣才能以更好的方式做。
List<String> nounPhrases = new ArrayList<String>();
for (List<HasWord> sentence : documentPreprocessor) {
//System.out.println(sentence.toString());
System.out.println(Sentence.listToString(sentence, false));
List<TaggedWord> tSentence = tagger.tagSentence(sentence);
String lastTag = null, lastWord = null;
for (TaggedWord taggedWord : tSentence) {
if (lastTag != null && taggedWord.tag().equalsIgnoreCase("NNP") && lastTag.equalsIgnoreCase("NNP")) {
nounPhrases.add(taggedWord.word() + " " + lastWord);
//System.out.println(taggedWord.word() + " " + lastWord);
}
lastTag = taggedWord.tag();
lastWord = taggedWord.word();
}
}
在上面的代碼,我已經做只爲NNP其次NNP提取,我怎麼能概括它,這樣我可以添加其他的規則了。我知道有這樣的庫可用來做這件事,但是想要手動做到這一點。
是的。正如我之前所說的,想要手動執行而不使用這些庫進行短語檢測。 –
是的,對不起。我沒有閱讀完整的問題。一旦我嘗試手動做這個。我創建了一個可以識別葡萄牙語NP的有限狀態機。與使用機器學習相比,結果並不好。 – wcolen