logo
Published on

Rubyで配列の集合演算

Authors

Rubyで配列の集合演算を行い、Ruby on Railsのモデルで例を紹介します。積集合、和集合、差集合について、Ruby言語から配列の操作を行います。

例えば、複数のキーワードの両方を含むWebページの一覧は積集合を求めていることになり、複数のキーワードのいずれかを含むWebページの一覧は和集合を求めていることになる。

p a & b  # 積集合
p a | b  # 和集合
p a - b  # 差集合

Ruby: 集合演算を行うには? - Build Insider

Railsで具体例を上げてみる。


Hashmodel.where(title:"title").ids
=> [1, 2]

Hashmodel.tagged_with("fuga").by_join_date.ids
=> [6, 1]

# titleが"title"でありかつ、"fuga"というタグがつけられているhashmodelのidを取得する(積集合)
Hashmodel.where(title:"title").ids & Hashmodel.tagged_with("fuga").by_join_date.ids
=> [1]

# 和集合;OR検索された場合を求める
Hashmodel.where(title:"title").ids | Hashmodel.tagged_with("fuga").by_join_date.ids
=> [1, 2, 6]

# ちなみに`+`を使用すると、配列がマージされる形になる。値が重複しているので、和集合ではない。
Hashmodel.where(title:"title").ids + Hashmodel.tagged_with("fuga").by_join_date.ids
=> [1, 2, 6, 1]

Ruby: 集合演算を行うには? - Build Insiderでは、集合の類似度を求めるジャッカード係数などについても紹介されている。 興味があれば読んでみるといいかもしれません。

各ツール価格:1万円~

サポート:6千円/1時間

見積もり:無料


▶ 詳細📧 ご連絡

ご覧頂きありがとうございます。
商品やサービスが本サイト限定で無料や割引になる、広告の一覧をご活用頂くことで、本サイトの運営をご支援いただけます。