前提・実現したいこと
javaを勉強中の者です。全文検索のn-gramをやってみたく、とりあえずトリグラムで文字を分割するクラスを作ってみたのですが、どうしても「後続の N-1 文字を含めた状態」の文字列の分割ができません。サロゲートペアに考慮したものを簡単に実装するには「正規表現」を使うのが簡単だったので、「正規表現」を使っていますが、javaの正規表現がよく分かっていないので、解決方法がわからず困っています。
該当のソースコード
java
1public class Zennbunnkennsaku{ 2 public static void Ngram(String str){ 3 Pattern p = Pattern.compile("[\s\S]{0,3}"); 4 Matcher m = p.matcher(str); 5 while (m.find()) { 6 System.out.println(m.group()); 7 } 8 } 9} 10
試したこと
現在の実装では、「今日の天気は晴れです。」と入力すると
今日の
天気は
晴れで
す。
になってしまいます。
補足情報(FW/ツールのバージョンなど)
https://qiita.com/macoshita/items/e92f8c74cb2469a3494e
「Java で任意の文字数で文字を分割」
文字を分割する仕組みは、上記のリンクのコードのままです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。