私はスタンフォード NLP の初心者です。ファイルの内容を解析し、名詞句を抽出するために語彙化されたパーサーを使用しています。行を解析している間、ツリー構造を生成するのに時間がかかります。
行から名詞句を取得するために Tregex パターンを使用しています。
解析に 1 MB のファイルを使用しているため、解析と名詞句の抽出に 2 時間以上かかります。
これが私が使用している完全なコードです。
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()+" ";
}
}
}
パフォーマンスを向上させる方法を教えてください。または、このコードを最適化する別の方法があります。
よろしくお願いします。