middleman-blog で類似記事を表示する
middleman-blog で類似記事を取得する機能拡張を作りました :boom:
View middleman-blog-similar on GitHub.
gem 'middleman-blog-similar'
gem 'levenshtein-ffi', :require => 'levenshtein'
h2 Similar Entries
ul
- similar_articles.first(5).each do|article|
li= link_to article.title, article.url
similar_articles
ヘルパーメソッドか Middleman::Blog::BlogArticle#similar_articles
インスタンスメソッドで、類似エントリー一覧を取得できます。
現在、類似検索エンジンとして、levenshtein-ffi と levenshtein, damerau-levenshtein をサポートしています。
ただ、あまり精度が良くないみたいなので、tf-idf-similarity ライブラリを使ったエンジンを追加しようとしています。
Pull request: [wip] tf*idf support #2
config.rb
に以下の様に記述して、類似検索エンジンを指定でるようになる予定です。
# Levenshtein distance function:
activate :similar # , :algorithm => :levenshtein by default.
# Damerau–Levenshtein distance function:
activate :similar, :algorithm => :damerau_levenshtein
# Term Frequency-Inverse Document Frequency function:
activate :similar, :algorithm => :tf_idf
# Okapi BM25 ranking function:
activate :similar, :algorithm => :bm25