質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

Q&A

解決済

1回答

589閲覧

検索エンジンにおいてn-gram法を使用する場合のRDB構造について

Natsuki_Ueda

総合スコア15

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

0グッド

0クリップ

投稿2021/12/25 06:39

質問概要

複数の文章をデータベースとして,文字列の検索エンジンを作ろうとしています.
その手法としてn-gram法を採用しようと考えています.
その際,索引をリレーショナルデータベースで構築しようとした場合,その構造について調べても分からなかったため,質問させていただきます.

n-gramの簡単な説明

n-gram法では文章をn文字ごとに区切り,その文字列が出現する文章番号をまとめたデータベースを作る手法です.(詳しい内容はこちら)

例えばn=2として分割したトークンのうち,"明日"というトークンが文章1と文章2に出現し,"食事"というトークンが文章2と文章4と文章5に出現するとします.すると索引情報は次の様になります.

トークンdoc_IDs
明日1, 2
食事2, 4, 5

わからないところ

上の索引情報のdoc_IDsは要素数が冗長であるため,リレーショナルデータベースの構築方法に悩んでいます.このような場合のリレーショナルデータベースの構造をどのようにすべきなのか,もしくはリレーショナルデータベースではなく階層型のデータベースを使用すべきなのか,教えていただけると幸いです.


もし説明に不十分な点がありましたら教えてください.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

中間tableを入れて 多対多 にしてはどうでしょう
token_id と doc_id のほかに count とでもして、tokenが何回出てきたかも入れるようにしては。
dos_ids は token.docs.ids でとれます

投稿2022/01/03 04:45

winterboum

総合スコア23329

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Natsuki_Ueda

2022/01/03 08:46

回答ありがとうございます! データベースについてまだ初心者なので中間テーブルという概念を知らず,大変勉強になりました. おっしゃってくださったような方法で解決できそうです.ありがとうございました.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問