アプリ版:「スタンプのみでお礼する」機能のリリースについて

計算機科学では検索はどういう仕組みになっているのですか
インプットした文字をマッチさせるにはどうすればいいでしょうか

A 回答 (5件)

高速文字列符号化技術(符号化文字集合)と全文検索技術の専門書が出ていますので、じっくり読まれることをお勧めします。



私は、専門書を読んでも数パーセントしか理解できませんでした。数行で解説し、ああそうかと理解できるようなものではありません。
    • good
    • 0

文字はすべて固有の「コード記号」(2進法だと7ビットの「ASCII」コード、8ビットの「ISO/IEC 8859」コード、16ビットの「UTF-16」などのコード)が決まっているので、インプットした文字の各々とビットごとに


 AND をとって結果が1
になるものが「一致したビット」になるので、マッチする文字を特定できます。

「ビットごとに AND をとって、結果が「1」かどうか調べていく」
なんて、計算機には簡単に「大量に」処理できます。(通常はそれを「バイト単位」「2バイト単位」「4バイト単位」「8バイト単位」などで処理すると思いますが)
計算機は「千里の道も一歩から」を泥臭くやっているだけです。
    • good
    • 0

文字列検索は計算機科学の分野ではありません。



で。
コンピューター上で文字はコード・・・1文字は一定個数の0と1で表されています。
ですので文字の見た目の形で検索するのではなく文コードの比較で探します。

具体的に最も簡単な検索方法は以下のようなものです。


例:
「あいうえおかきくけこさしすせそたちつてと」という20文字の文字列内に「かきくけこ」が有るかどうかを見る場合

1.「かきくけこ」は5文字ですから「あいうえお・・・」の文字列の先頭5文字と「かきくけこ」を比較します。
2.一致しないので「あいうえお・・・」の文字列の2文字目から5文字と「かきくけこ」を比較します。
3.これも一致しないので「あいうえお・・・」の文字列の文3字目から5文字と「かきくけこ」を比較します。

これを繰り返すと上記の場合は6回目の比較で「かきくけこ」があることがわかります。
検索対象のデータの一つが「あいうえお・・・」という文字列であった場合、この文字列は検索に引っ掛かって検索結果一覧に表示される・・・となるわけです。
検索文字列が「かきくけこ」ではなく「きかくけこ」だと同様の方法で再度の「たちつてと」まで16回比較操作をしても一致するものが無いので「あいうえお・・・」の文字列は検索結果に示されないことになります。

Googleなどの検索ではもっと処理速度が速くなる処理手順がとられています。検索対象になるデータ(←上記の例での「あいうえお・・・」のデータ)の事前準備も含めて。
また指定されたデータ(←上記の例での「かきくけこ」のデータ)と部分的に一致するデータも検索結果に含める仕組みなども組み込んでいますし、指定されたデータに類似するデータを洗い出してそれも含めて検索する方法なども組み込まれています。

参考まで。
    • good
    • 0

計算機科学における検索は、一般的に情報検索と関連性検索の2つの主要なアプローチがあります。

以下にそれぞれの仕組みを説明します。

情報検索(Information Retrieval): 情報検索は、ユーザーがキーワードやフレーズを入力して関連するドキュメントや情報を見つけるための手法です。一般的な情報検索エンジンでは、以下のような手順が行われます。

インデックス作成: インデックス作成では、対象となるドキュメントのテキストデータから単語やフレーズを抽出し、それらを索引(インデックス)としてデータベースに格納します。これにより、検索対象のドキュメントに素早くアクセスすることが可能になります。

検索クエリの処理: ユーザーが入力した検索クエリ(キーワードやフレーズ)は、インデックスと照合され、関連するドキュメントが特定されます。検索クエリとドキュメントの照合には、キーワードの一致度や頻度、位置などの情報が利用されます。

結果のランキング: 検索結果は、関連性の高い順にランキングされて表示されます。ランキングの手法には、TF-IDF(Term Frequency-Inverse Document Frequency)やベクトル空間モデル、機械学習などが用いられます。

関連性検索(Relevance Search): 関連性検索は、ユーザーが入力した情報に関連する情報やデータを自動的に抽出する手法です。典型的な関連性検索の手法には、以下のものがあります。

自然言語処理(NLP): 自然言語処理は、人間の言語をコンピュータが理解し、意味や文脈に基づいた処理を行うための技術です。NLPを用いることで、ユーザーが入力した文や質問を理解し、関連する情報を抽出することが可能になります。

機械学習とランキングアルゴリズム: 機械学習の手法を用いて、ユーザーの入力やクリック履歴、ドキュメントの特徴などを学習し、関連性の高い情報を予測することができます。さらに、ランキングアルゴリズムを使用して、関連性の高い情報を上位に表示することも可能です。

インプットした文字をマッチさせるためには、情報検索や関連性検索の手法を使用します。キーワードやフレーズのマッチング、テキストの解析、関連度の計算などが行われます。具体的な手法やアルゴリズムは、探索対象やアプリケーションによって異なる場合があります。
    • good
    • 0

何から何をどのような基準で検索するかによるけど初手は文字列探索.

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!