ネットをサーフィンして、私はAquabrowserに遭遇しました(クリックする必要はなく、関連する部分の写真を掲載します)。セマンティックグラフを効率的にビルドして保存する方法は?
検索結果を表示し、意味論的にリンクされたエンティティを発見する素晴らしい方法があります。
左側には、入力した単語と関連する単語があります。 これらをクリックすると結果が絞り込まれます。私は映画のエンティティと被験者(世の中-戦争-2または刑務所エスケープなど)とそれらの関係のデータセットを持っているサンプルプロジェクトとして今
。
ここで、ユーザーがキーワードで始まるいくつかの使用例を想像してみましょう。 たとえば「第2次世界大戦」。
私は何とか関連キーワードを計算してランク付けしたいと思います。
私はこのようないくつかのSQLクエリを考える:
は「世界戦争2」は、ID 3.基本的にもキーワード世界-war-を持っているすべてのムービーを選択する必要があり
select keywordId, count(keywordId) as total from keywordRelations
WHERE movieId IN (select movieId from keywordRelations
join movies using (movieId)
where keywordId=3)
group by keywordId order by total desc
を持っていると仮定しましょう2つの映画が持っているキーワードを検索し、最も興奮しているキーワードを選択します。
私はtheeseのキーワードで私は最高の一致する映画を選択し、同様の映画や関連キーワードを含む素晴らしいタグクラウドを持つことができると思います。
私はこれがうまくいくと思いますが、非常に、非常に、非常に非効率的です。
また、そのレベルまたは関係は1つだけです。
これを行うには、より良い方法が必要ですが、どのように?
私は基本的にエンティティのコレクションを持っています。彼らは異なるエンティティ(映画、俳優、科目、プロットキーワード)などである可能性があります。
私はそれらの間にも関係があります。
エンティティの「意味的距離」を効率的に計算する必要があります。
また、より多くのレベルの関係を実装したいと考えています。
しかし、私は完全に詰まっています。さて、私はさまざまなアプローチを試みましたが、計算に時間がかかり、ランタイムが指数関数的に増加するいくつかのアルゴリズムですべてが終わりました。
最適化されたデータベースシステムはありますか?
誰かが正しい方向に向かうことができますか?
非常に良い+1。私が探していたもののように見えます。素晴らしいリソース –
+1 koolaidのコメントのためだけに私はそれに中毒されてから長い間認めている! – RobV