我是斯坦福 NLP 的新手。我正在使用词法解析器来解析文件的内容并提取名词短语。在解析行时,生成树结构需要更多时间。
我正在使用 Tregex 模式从一行中获取名词短语。
我正在使用 1 MB 文件进行解析,因此解析和提取名词短语需要两个多小时。
这是我正在使用的完整代码。
Tree x = parser.apply(line);
System.out.println("tree s=="+x);
TregexPattern NPpattern = TregexPattern.compile("@NP <@/NN.?/");
TregexMatcher matcher = NPpattern.matcher(x);
while (matcher.findNextMatchingNode()) {
Tree match = matcher.getMatch();
List<TaggedWord> tWord = match.taggedYield();
Iterator<TaggedWord> it = tWord.iterator();
String str="";
while(it.hasNext()){
TaggedWord word = it.next();
String taggedWord = word.tag();
if(taggedWord.equals("NN")||taggedWord.equals("NNS")||taggedWord.equals("NNP")){
str = str+word.value()+" ";
}
}
}
所以请帮助我如何提高性能或者是否有另一种方法来优化这段代码。
在此先感谢古斯。