SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

進化したSQL Server 2012の新機能紹介

検索効率を向上させる新たな機能
――類似データ抽出、空間、関数

進化したSQL Server 2012の新機能紹介(6)

  • X ポスト
  • このエントリーをはてなブックマークに追加

統計的セマンティック検索により抽出されたフレーズの確認

 統計的セマンティック検索用に作成されたインデックスを構成するキーフレーズを確認することができます。

リスト7 セマンティック検索による類似した行の抽出
SELECT TOP(10) *
FROM SEMANTICKEYPHRASETABLE
    (
    取引先マスター,            -- 対象テーブルの指定
    取引先英名                 -- 対象列の指定
    ) AS KEYP_TBL
ORDER BY KEYP_TBL.score DESC;
GO

 リスト7を実行すると、キーフレーズとキーフレーズが含まれる列、スコアが表示されます(図9)。ここで表示されたキーフレーズを利用して、セマンティック検索が実行されます。where句でキーフレーズをフィルタリングすることで、特定キーフレーズを含んだ列の抽出をすることもできます。

図9 統計的セマンティック用のキーフレーズ
図9 統計的セマンティック用のキーフレーズ

統計的セマンティック検索による類似・関連した値の取得

 統計的セマンティック検索を使用することで、特定の行に類似した行を抽出することができます。今回のサンプルデータでは、取引先コード「TR0031」の取引先英名「Hokkaido Research Institute for the Twenty-First Century」と類似する取引先英名を持つ取引先を抽出します。

リスト8 セマンティック検索による類似した行の抽出
SELECT TOP(10) *
FROM SEMANTICSIMILARITYTABLE
    (
    取引先マスター,            -- セマンティック検索をする対象テーブルの指定
    取引先英名,                -- 類似しているかを比較する列の指定
    'TR0031'                   -- 比較元の対象行を指定するキー
    ) AS KEY_TBL
ORDER BY KEY_TBL.score DESC;
GO

 クエリ7を実行すると類似している行のキーと類似度合いを取得できます(図10)。

図10 統計的セマンティックによる類似行の取得
図10 統計的セマンティックによる類似行の取得

 類似している根拠が不明では、類似ドキュメントとして抽出されても納得できないことがあり、類似しているとして抽出されたデータにおいて、どのフレーズが含まれていたから類似していると識別したかを調べたいことがあります。

リスト9 セマンティック検索による類似していると判断したフレーズ
SELECT TOP(5) *
FROM SEMANTICSIMILARITYDETAILSTABLE
    (
    取引先マスター,            -- セマンティック検索をする対象テーブルの指定
    取引先英名, 'TR0031',      -- 類似しているかの比較元列
    取引先英名, 'TR0006'       -- 類似しているかの比較先列
    ) AS KEY_TBL
ORDER BY KEY_TBL.score DESC;
GO

 リスト9を実行すると、類似していると判定した根拠となるフレーズが表示されます。このフレーズを利用して類似度合いが高いと算出されています(図11)。

図11 統計的セマンティックによる類似根拠
図11 統計的セマンティックによる類似根拠

次のページ
使い勝手が向上する新しい関数

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
進化したSQL Server 2012の新機能紹介連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト 大和屋 貴仁(ヤマトヤ タカヒト)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6682 2012/08/01 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング