タグ

2017年12月20日のブックマーク (4件)

  • FRILの商品検索をnGramから形態素解析にした話 - mosowave

    この記事はElasticsearch Advent Calendar 2015の7日目のエントリです。 こんにちは、ファッションフリマアプリFRILを運営しているFablicでエンジニアをしている@sinamon129です。 FRILの商品検索はElasticsearchを使っていて、最近nGramベースだったものを形態素解析ベースに変更しました。 その経緯やどういう手順で行ったかを書こうと思います。 主にユーザー辞書とsynonym辞書の構築の話がメインです。 どうしてnGramベースから形態素解析ベースに変更することになったか 関係ないものがなるべくひっかからないようにしたい nGramだとファーで検索したときに、ローファーやローリーズファームが引っかかり、当に検索したかったものが出てこないという問題がありました。 (実際は出ているのだけども、埋もれてしまっている状態) 同じ意味の単

    FRILの商品検索をnGramから形態素解析にした話 - mosowave
  • WikipediaのデータからElasticsearch用類義語辞書をつくる - Qiita

    Elasticsearchには類義語によるクエリ拡張機能があります。これを適用すると まどマギ と検索したときに まどかマギカ と書かれた文書もヒットするようになります。 (LuceneやSolrにもありますがここではElasticsearchの話だけします) この類義語辞書は、人手で作ること (e.g., FRILの商品検索をnGramから形態素解析にした話 - mosowave) もできますが、今回はなるべく手間をかけたくないのでWikipediaのリダイレクトデータから自動で類義語辞書を作る方法を紹介します。 (自動といってもノイズも含まれてるので実用的に使うにはある程度人手でフィルタリングする必要があります。それでも一から人手で作るよりは手間が少ないと思います) (ElasticsearchではWordNetでの類義語検索に対応しているようですが、これを書いてる2015年12月時点

    WikipediaのデータからElasticsearch用類義語辞書をつくる - Qiita
  • Ruby 2.5 は引数に &block を書いても速い!!! - onk.ninja

    Ruby 2.5 は引数に &block を書いても速い!!! #megurorb Meguro.rb#10 で「引数に &block を書いても速い!!!」という素晴らしい改善について話してきた。 b.r-l.o の issue で言うとこちら。 Feature #14045: Lazy Proc allocation for block parameters 前提知識 block の呼び出し方 3 パターン block をメソッドで使う場合、大きく分けてこの 3 パターンがあると思う。 # block を引数で受け取って、call で呼ぶ def block_call_with_block_arg(&block) block.call end # block を引数で受け取らずに yield で呼ぶ def yield_without_block_arg yield end # 引数で

    Ruby 2.5 は引数に &block を書いても速い!!! - onk.ninja
  • ID生成大全 - Qiita

    セッションIDやアクセストークン、はたまた業務上で使う一意の識別子など、いろんなところで一意のIDを生成しなきゃいけないケースが存在します。 そこで世間で使われているIDの生成方法について調べてみました。 選択基準 ID生成における要求として、以下の観点が上げられるかと思います。 生成の速度 大量にデータを短期間で処理し、それらにIDを付与する場合、ID生成そのものがボトルネックとなることがあります。 推測困難性 IDを機密情報と結びつける場合、IDを改ざんされても、機密データが見れないようにできている必要があります。 順序性 採番した順にデータをソートする必要がある場合は、IDがソートキーとして使えないといけません。 それぞれについて各生成手段を評価します。 ID生成の手段 データベースの採番テーブル 採番用のテーブルを作り、そこで番号をUPDATEしながら取得していくやりかたです。古い

    ID生成大全 - Qiita