n-gramを生成するNgramCreator.javaを作った
JavaでString型の文からn-gramを生成したかったのですが,いい感じのものが見つからなかったので自作しました.
Gistにコードをあげたのでとりあえず貼っときます.
使い方は非常に簡単で,NgramCreator#createNgram(String text, int n)
を呼び出すだけです.
第1引数text
にはn-gramを生成したい文を,第2引数n
には何gramを生成するかを入れます.
このメソッドの返り値はMap<String, Integer>型で,keyにはn-gramが,valueには出現回数が格納されています.
上記コードにはテスト用のmainメソッドを用意してあるので,これを実行すると以下のように出力されます.
なお,入力テキストにはn-gram - Wikipediaを利用しました.
typically are collected 1 probability, an n-gram 1 is a contiguous 1 or speech corpus. 1 items can be 1 a given sequence 1 The n-grams typically 1 are collected from 1 contiguous sequence of 1 computational linguistics and 1 (以下略)
n-gramと,その出現回数が出力されます.
また,このメソッドでは半角スペースを単語の区切りとして扱います.
そのため,必要があれば予めテキストに前処理を施しておくといいでしょう.(特に日本語の場合)
よろしければ使ってみてください^^