0
我想用openNLP提取名詞短語。我有下面的Scala代碼。如何在Scala中使用OpenNLP提取名詞?
object ParserTest1 extends Serializable {
def apply(line: String): (String) = {
val is = new FileInputStream("/home/akshat/en-parser-chunking.bin")
val model = new ParserModel(is)
val parser = ParserFactory.create(model)
var nounPhrases = ""
val topParses = ParserTool.parseLine(line, parser, 1)
for (p <- topParses) {
getNounPhrases(p)
}
def getNounPhrases(p: Parse) {
if (p.getType == "NN" || p.getType == "NNS" || p.getType == "NNP" ||
p.getType == "NNPS") {
nounPhrases += p.getCoveredText + " "
}
for (child <- p.getChildren) {
getNounPhrases(child)
}
}
(nounPhrases)
}
}
我的代碼工作正常,但我只提取來自行前兩個名詞和停止尋找後,其他的名詞,基本上找到第一個兩個名詞後停止循環。 應該在代碼中做些什麼改變?