テキストがあります。句読点で区切られていない単語のペアを抽出したい。これはコードです:
//n-grams
Pattern p = Pattern.compile("[a-z]+");
if (n == 2) {
p = Pattern.compile("[a-z]+ [a-z]+");
}
if (n == 3) {
p = Pattern.compile("[a-z]+ [a-z]+ [a-z]+");
}
Matcher m = p.matcher(text.toLowerCase());
ArrayList<String> result = new ArrayList<String>();
while (m.find()) {
String temporary = m.group();
System.out.println(temporary);
result.add(temporary);
}
問題は、いくつかの一致をスキップすることです。例えば
「私の名前はジェームズです」
、n = 3 の場合、一致する必要があります
「私の名前は」と「名前はジェームズ」
、代わりに最初のものだけに一致します。これを解決する方法はありますか?