まず、OpenNLP を使用していますが、それに関する知識は必要ありませんが、役に立つかもしれません。
FindNameメソッドに文字列を入力する
String input = "Billy Smith the chicken crossed the road to visit Fred Jones";
これはトークナイザーによって処理され、namefinder への入力が提供されます。
String[] tokenized = "Billy","Smith","the","chicken","crossed","the","road","to","visit","Fred","Jones";
名前を検索すると、結果は「for」ループで生成される2つの文字列として与えられます
"[0..2) person","[9..11) person"
元の名前 ("Billy Smith" と "Fred Jones") を arraylist または同様の文字列配列に入れるにはどうすればよいですか?
これまで私は試しました:
for(Span s: nameSpans){
numbers = s.toString().replace("[", "");
//is "[0..2) person" and "[9..11) person"
sect = numbers.split("\\) ");
}
int x;
for(x=0;x<sect.length;x++){
if(x%2 == 0){
String[] numb = sect[x].split("..");
int n;
int first, second;
first = Integer.parseInt(numb[0]);
second = Integer.parseInt(numb[1]);
for(n=first;n<second;n++){
if(sentence.hashCode() == n){
name.add(sentence[n]);
}
しかし、運がありませんでした。