Peter Norvigの有名なspellchecker(Java 8バージョンhere)は、その単語に近いものがトレーニング・データに含まれていると、単一の単語を訂正することができます。しかし、フレーズ全体を扱うためには、どうすればそれを適用できますか?例えば、私は、各フレーズが改行で区切られたファイルがある場合:私は'Platic'
を修正するためのアルゴリズムを伝える場合ピーター・ノービッヒのマルチ・マッチのスペル・チェッカー
Plastic box
Pencils and sketch
Romeo and Juliet
.
.
.
を、それが'Plastic box'
を返す必要があります。同様に、'Pencils'
を修正するように指示すると、'Pencils and sketch'
が返されます。
Stream.of(new String(Files.readAllBytes(dictionaryFile)).toLowerCase().replaceAll("[^a-z ]","").split(" ")).forEach((word) ->{
dict.compute(word, (k,v) -> v == null ? 1 : v + 1 );
});
Stream.of(new String(Files.readAllBytes(dictionaryFile)).toLowerCase().split("\n")).forEach((word) ->{
dict.compute(word, (k,v) -> v == null ? 1 : v + 1 );
});
に動作していないようでした。
スペルチェックやオートコンプリートの後にいますか? –