0

まず、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]);
                            }

しかし、運がありませんでした。

4

2 に答える 2

0

必要なことを行う Span オブジェクトへの組み込みの静的メソッドがあります。この回答を参照してください。 OpenNLP Name Entity Recognizer の出力

于 2013-12-19T12:23:33.407 に答える