タグ

akatakunのブックマーク (4,740)

  • 【今更聞けない】全文検索/セマンティック検索/ベクトル検索/ハイブリッド検索の違い

    はじめに この記事では全文検索・セマンティック検索・ベクトル検索・ハイブリッド検索の違いについて解説しています。 弊社のプロジェクトの中で、GPTを活用した社内文書検索などのナレッジが溜まっています。社内の会話で「全文検索が…」とか「セマンティックだと全文検索より…」などいろんな検索手段の名前が飛び交っていて、正直細かく違いやメリデメがわかっていませんでした。 名前からして検索の流れはざっくり分かるものの、この際しっかり言語化できるようになりたくて執筆しています。 ちなみにどの検索方法もAzure AI Searchでは対応しています。GPTとの親和性が高いので、このあたりの概要を理解していることは重要だと考えます。 それでは、それぞれの検索方法について、比較検討を行いましょう! 全文検索 全文検索とは、ドキュメントやDB内のすべての文書から検索キーワードが含まれる部分を探す方法です。例え

    【今更聞けない】全文検索/セマンティック検索/ベクトル検索/ハイブリッド検索の違い
    akatakun
    akatakun 2025/07/29
    セマンティック検索: 検索キーワードの意味や意図を理解し、その解釈に基づいて最も関連性の高い文書を探す方法
  • クロージャ - Wikipedia

    クロージャ(クロージャー、英語: closure)、関数閉包はプログラミング言語における関数オブジェクトの一種。いくつかの言語ではラムダ式や無名関数にて利用可能な機能・概念である。引数以外の変数を実行時の環境ではなく、自身が定義された環境(静的スコープ)において解決することを特徴とする。関数とそれを評価する環境のペアであるともいえる。この概念は少なくとも1960年代のSECDマシンまで遡ることができる。まれに、関数ではなくとも、環境に紐付けられたデータ構造のことをクロージャと呼ぶ場合もある。クロージャをサポートする言語によるプログラミングでは、単に関数の中に関数を定義することができるだけでなく、その際に、外側の関数(エンクロージャ)で宣言された変数を暗黙的に内側の関数に取り込んで操作することができる。主な利点としてはグローバル変数の削減やコールバック関数記述の簡素化が挙げられる。 典型的に

    akatakun
    akatakun 2025/07/23
    関数閉包。引数以外に自身が定義された環境(静的スコープ)を利用できるパラダイム機能。「コールバック関数記述の簡素化が挙げられる。」メリットこれくらいよなあ
  • フールプルーフ - Wikipedia

    フールプルーフ (英: fool proof) とは、安全工学における用語のひとつで、工業製品やシステムを設計する際、誤操作や誤設定などの間違った使い方をしても、少なくとも使用者や周囲にとって危険な動作をしないように、あるいはそもそも間違った使い方ができないように配慮する設計手法のこと。英語では「壊したり間違えたりすることなく、誰でも簡単に使える」という意味を持つ、idiot-proofという言葉が使われることもある[1]。またフールプルーフと同じ概念として、日語のポカヨケを直訳したpoka-yokeが用いられることもある[2]。 フールプルーフが目指す「誤用されない設計」とは、質的に防御的な設計 (英: defensive design) となる。これは、「人間は往々にして間違いを犯すものである」という前提に立った考え方に基づいている[3]。特に生産現場では、ちょっとしたミスが人命に

    フールプルーフ - Wikipedia
    akatakun
    akatakun 2025/07/23
    誤操作や誤設定などの間違った使い方をしても、少なくとも使用者や周囲にとって危険な動作をしないように、あるいはそもそも間違った使い方ができないように配慮する設計手法のこと。
  • Mapping | Elasticsearch Guide [8.18] | Elastic

    akatakun
    akatakun 2025/07/17
    ほとんどの場合、すでにマッピングされているフィールドのマッピングを変更することはできません。既存のマッピングに新しいフィールドを追加することができます。
  • クラス/メソッドの定義 (Ruby 3.4 リファレンスマニュアル)

    [edit] クラス/メソッドの定義: クラス定義 特異クラス定義 モジュール定義 メソッド定義 演算子式の定義 メソッド定義のネスト メソッドの評価 特異メソッド定義 クラスメソッドの定義 呼び出し制限 定義に関する操作: alias undef defined? クラス定義 例 class Foo < Super def test # ... end # ... end 文法: class 識別子 [`<' superclass ] 式.. end 文法: class 識別子 [`<' superclass ] 式.. [rescue [error_type,..] [=> evar] [then] 式..].. [else 式..] [ensure 式..] end クラスを定義します。クラス名はアルファベットの大文字で始まる識別子です。 rescue/ensure 節を指定し、例外

    akatakun
    akatakun 2025/06/25
    private: reciever形式で呼び出せなくなる(self.のみ例外)。protected: selfコンテキスト下にあるrecieverからならreciever形式でも呼び出せる
  • クラス/メソッドの定義 (Ruby 3.4 リファレンスマニュアル)

    [edit] クラス/メソッドの定義: クラス定義 特異クラス定義 モジュール定義 メソッド定義 演算子式の定義 メソッド定義のネスト メソッドの評価 特異メソッド定義 クラスメソッドの定義 呼び出し制限 定義に関する操作: alias undef defined? クラス定義 例 class Foo < Super def test # ... end # ... end 文法: class 識別子 [`<' superclass ] 式.. end 文法: class 識別子 [`<' superclass ] 式.. [rescue [error_type,..] [=> evar] [then] 式..].. [else 式..] [ensure 式..] end クラスを定義します。クラス名はアルファベットの大文字で始まる識別子です。 rescue/ensure 節を指定し、例外

    akatakun
    akatakun 2025/06/25
    private: reciever形式で呼び出せなくなる(self.のみ例外)。
  • Ruby on Railsではなぜprivateメソッドは下から呼び出せるのか?

    目次[非表示] 1.はじめに 1.1.privateメソッドとは? 1.2.Rubyのprivateは特殊? 2.調査 2.1.検証する環境 2.2.検証した内容 2.3.実験及び結果 2.3.1.1.コードは上から下へと実行されるは嘘? 2.3.2.2.クラス内で定義されたメソッドはどの順番で実行されるのか? 2.3.2.1.1.クラスの情報が最初に実行されるのか? 2.3.2.2.2.privateメソッドだけが下から呼び出せるのか? 2.3.2.3.3.クラスの中のコードもはじめに上から実行しているのか? 2.3.2.4.4.クラス内のメソッドが認識されるタイミングは? 2.3.3.3.定義したメソッドのさらに中にメソッドを記述した場合はどうなるか? 2.3.4.4.クラスを継承した際に、スーパークラスとサブクラスのメソッドが実行されるタイミングは? 2.3.5.5.Ruby on

    Ruby on Railsではなぜprivateメソッドは下から呼び出せるのか?
    akatakun
    akatakun 2025/06/25
    RubyのPrivateメソッドは子クラスから呼び出せる。
  • [Railsチュートリアル] Rails環境構築でsasscのエラーにハマった時の解決法 - Qiita

    概要 Rubyチュートリアルの1.2.1, 1.2.2を読んで、ローカルにRailsの環境を構築しようとしたらsassc-railsの導入でエラーが起きハマってしまった。その時の状況、および解決した方法を記載する。 環境 私の開発環境下記の通りである。 PC: MacBook Pro プロセッサ:Intel Core i5 OS:macOS Sequoia version 15.4 エラー内容 sassc-rails2.1.2で使用されているsassc 2.4.0のコンパイルがうまくいかなくてエラーが出ている。 Gem::Ext::BuildError: ERROR: Failed to build gem native extension. current directory: /Users/ユーザ名/.rbenv/versions/3.2.8/lib/ruby/gems/3.2.0/g

    [Railsチュートリアル] Rails環境構築でsasscのエラーにハマった時の解決法 - Qiita
    akatakun
    akatakun 2025/06/09
    なるほど。なってた
  • Git LFS をちょっと詳しく - Qiita

    Git LFS の機能が実際にどういう感じで動作しているかを、基的な Git の手順に沿って少しだけ詳しく調べてみました。 なお、ロック機能については検証していません orz (今後に期待) TL;DR ワークツリーの情報をリポジトリ(.git/)に格納するタイミング(clean filter)で対象のファイルがメタ情報(ポインタ)に置き換えられ、ファイルの実体(オブジェクト)は .git/lfs/ 以下に格納される push の直前に LFS API を通してオブジェクトがサーバーにアップロードされる リポジトリ(.git/)からワークツリーに展開するタイミング(smudge filter)でメタ情報から実体ファイルに置き換えられる LFS オブジェクトが .git/lfs/ 以下にない場合は LFS API を通してサーバーからダウンロードされる コミット時、マージ時、チェックアウト

    Git LFS をちょっと詳しく - Qiita
    akatakun
    akatakun 2025/06/05
  • Cursorを1年触っているエンジニアの最近の使い方|ニケちゃん

    以下は古い記事です。 こんにちは、ニケです。 皆さん、Cursor 使っていますでしょうか。 私は去年の10月末から使い続けているので1年が経過しました。時間が経つのは早いですね。 前回書いた記事(↓)から半年経ち、開発の仕方が少しアップデートされたので改めて記事にしようと思います。 ちなみに上記の記事ではブラウザ版のClaudeも紹介していましたが、Claude-3.5-SonnetがCursorで利用できるようになってからはあまり使っていません。設計の壁打ちとかでたまに使ったりするくらい。 そのため、この記事ではCursorにフォーカスを当てて紹介していきます(最後に少しだけ他に使用しているAIツールを共有します)。 ⚠ 以降で紹介する方法は個人的にハマっている方法なので、これがベストではないです。1つの参考として見てもらい、後はご自身で使ってみて調整していくのが良いと思います。 Cu

    Cursorを1年触っているエンジニアの最近の使い方|ニケちゃん
  • GitHub - modelcontextprotocol/servers: Model Context Protocol Servers

    Official integrations are maintained by companies building production ready MCP servers for their platforms. 21st.dev Magic - Create crafted UI components inspired by the best 21st.dev design engineers. ActionKit by Paragon - Connect to 130+ SaaS integrations (e.g. Slack, Salesforce, Gmail) with Paragon’s ActionKit API. Adfin - The only platform you need to get paid - all payments in one place, in

    GitHub - modelcontextprotocol/servers: Model Context Protocol Servers
    akatakun
    akatakun 2025/05/18
  • GitHub Copilot Agentを試してみた

    はじめに GitHubの公式ブログで「GitHub Copilot:エージェントの覚醒」が発表されました。 Copilot EditsがGA(一般提供)され、新たにAgentモードがプレビュー公開されたとのことで、実際に試してみました。 Copilot EditsがGAされた Copilot Editsとは Copilot Editsは、チャットとインラインチャットの長所を組み合わせたもので、会話型のフローと、管理するファイル群に対してインラインで変更を加える機能を備えています。 (中略) Copilot Editsでは、編集対象のファイルを指定し、自然言語で変更をリクエストできます。GitHub Copilotは指定した範囲内でコードをインラインで変更し、開発者は提案された変更を確認しながら、適用・修正を繰り返すことができます。 GitHub Blog より引用 従来はCopilot C

    GitHub Copilot Agentを試してみた
  • Gemini が YouTube 動画をどう扱うかの調査 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    Gemini が YouTube 動画をどう扱うかの調査 - Qiita
    akatakun
    akatakun 2025/05/17
    Gemini は動画を 1 秒に 1 枚の静止画(フレーム)に分解し、画像として処理している, Gemini は動画に登場する複数の話者を区別できます。これは、通常の字幕データには含まれていない情報です
  • Gemini が YouTube 動画をどう扱うかの調査 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    Gemini が YouTube 動画をどう扱うかの調査 - Qiita
    akatakun
    akatakun 2025/05/17
    Gemini は動画を 1 秒に 1 枚の静止画(フレーム)に分解し、画像として処理している
  • Elasticsearch 日本語でフレーズ検索が必要なわけ

    Elasticsearch クエリーのデフォルトのオペレーターは OR です。これ自体は問題ないのですが、このORが適用されるタイミングがとても違和感 … 。 どうやら、リクエストする単語が1単語でもアナライザーで解析され、分割された最小単語単位でORで検索されるみたい! どういう事かと言うと、キーワード:「東京都」 で検索した場合、アナライズ後、「東京」 と 「都」 の2単語にトークナイズされ、検索は 「東京 OR 都」で検索される動きをしているようです。 もちろんこの場合、「東京都」を含んでいるドキュメントもマッチしますが、「東京」だけ、「都」だけ、または、「東京 … 都」「都 … 東京」などの単語が離れているドキュメントにもマッチする可能性があります。 ネットを調べてもあまり見当たらず、みんなどうしているんだろう?当たり前の仕様なのか?この動き違和感ありありです。 デフォルトの仕様を

    Elasticsearch 日本語でフレーズ検索が必要なわけ
  • Elasticsearchの日本語対応 (with Rails) と学んだこと 💡 [ 日本語版 ] - Linkers Tech Blog

    導入 情報システム部サービス開発チームのNathanです。この記事ではElasticsearchについて学んだことをご紹介します。横山さん、翻訳をしていただきありがとうこざいました。 The English version can be found here. 目的 Elasticsearchを設定して使用するためのガイドは数多くありますが、大部分は英語のデータを対象にしたものです。この記事は、そのほとんどが日語で占められたデータをElasticsearchで扱う上で、もし最初にこれを知れていたら嬉しかったという知識を詰め込んでいます。 elasticsearch Elasticsearchのセットアップ手順は載っていますか? 載っていません。この記事は、日語でElasticsearchを扱う時の手順を包括的に載せたものではありません。もしそういった内容を求める方は、以下のようなリンク

    Elasticsearchの日本語対応 (with Rails) と学んだこと 💡 [ 日本語版 ] - Linkers Tech Blog
  • Kuromojiユーザ辞書に定義済みの単語で構成された複合語の形態素解析について

    akatakun
    akatakun 2025/05/17
    kuromojiデフォルトで1tokenになる文字列(一般的な表現)をユーザ辞書登録すると、kuromojiデフォルトの単語コストが変わることでデメリットも出る可能性があります。
  • How to implement Japanese full-text search in Elasticsearch

    全文検索は一般的に知られていますが、検索エクスペリエンスで非常に重要な役割を果たしています。ただし、日語など、一部の言語では、全文検索を実装するのが難しい場合があります。このブログでは、日語で全文検索を実装する際の課題を探り、Elasticsearchでこれらの課題を解決する方法をいくつか示します。 全文検索とは? Wikipediaより、下記が定義となります。 全文検索とは、コンピュータにおいて、複数の文書(ファイル)から特定の文字列を検索すること。「ファイル名検索」や「単一ファイル内の文字列検索」と異なり、「複数文書にまたがって、文書に含まれる全文を対象とした検索」という意味で使用される。 全文検索は、現在多くのデジタル体験を強化するものです。全文検索は、データセット内に隠れている可能性のある単語やフレーズを見つけようとしてくれます。例えば、ネットショッピングして「phone」を検

    How to implement Japanese full-text search in Elasticsearch
    akatakun
    akatakun 2025/05/17
    インデックスのサイズ大きくならないことや、同義語のメンテナンス時にドキュメントのreindexが必要ない,n-gram解析のフィールドに対し、boolクエリでmustを利用し、結果がヒットすることを保証
  • Elasticsearch/LuceneのAnalyzerにおけるトークングラフを理解して適合率と再現率をコントロール - Qiita

    はじめに この記事ではElasticsearch、というかLuceneのAnalyzerの挙動のうち、特にトークングラフという概念について紹介したいと思います。これについてきちんと理解すると、例えば検索時に表記揺れを許容するのか、あるいは厳密に一致したもののみにマッチさせるのかといったチューニングができるようになります。 Elasticsearchでトークングラフを利用するにはSynonym graph token filterを使います。ElasticsearchではトークングラフはクエリーAnalyzerのみ対応していることに注意してください。 トークン Elasticsearchに限らず、検索エンジンは通常内部のデータ構造として転置インデックス(Inverted index)というものを作成します。これは基的に書籍の最後にある索引と全く同じで、どの単語がドキュメントのどこに記載され

    akatakun
    akatakun 2025/05/16
    「関西国際空港」で検索にヒットした時に個別の「関西」「国際」「空港」にヒットした時よりもTF-IDF(実際はBM25)のスコアが高くなると思われるので、適合率の観点で良い検索結果になることが期待できます。
  • Elasticsearchで日本語を同義語展開する

    全文検索における同義語展開の必要性 全文検索では、基的に文字列のマッチにより検索を行います。しかし我々が言葉を扱うときには、同じものを違う表現で指し示すことが多々あります。 例えば「独占禁止法」と呼ばれる法律があります。これは経済憲法とも言われる大変重要な法律なのですが、日では「昭和二十二年法律第五十四号(私的独占の禁止及び公正取引の確保に関する法律)」という法律がそれに該当し、独占禁止法という名前にはなっていません。これを皆、「独占禁止法」や「独禁法」といった代替可能な別表現(同義語)で呼んでいるわけです。 同法律には法令用語で言うところの「題名」は付されておらず、頭書の名称は制定時の公布文から引用したいわゆる「件名」である。独占禁止法ないし独禁法と略称されることも多い。 もし「独禁法」で検索して当該法律がヒットしなければ、ユーザーとしては不満足でしょう。検索システムのクオリティを向

    Elasticsearchで日本語を同義語展開する