N-gram ってなに…。

def ngram(target, n)
    analyzed = []

    keywords = target.split(//u)

    keywords.size.times do |i|
        keyword = keywords[i, n].delete_if { |i| i.nil? || i.blank? || i.match(/^\s+$/) }
        next if keyword.size < n
        analyzed << keyword.join
    end

    analyzed.join(" ")
end

なんか作ってくださいって言われたので作った。文字列を n 文字で分割したものを作ればいいのかなくらいしか理解してない!無知でほんとうにごめんなさい。

他の人の作ったメソッドを見てみると、もっと長かったり、いろいろなことをしてたので、これじゃダメなのかなーと思いました。

あと、Ruby 久しぶりすぎて、delete_if のあたりとか一発でできるメソッドありそう…。