- PR -

ある期間に、頻繁に出現するキーワードを多い順にSELECTしたい。

1
投稿者投稿内容
水龍蓮
会議室デビュー日: 2004/06/04
投稿数: 8
投稿日時: 2006-07-19 13:31
みなさん、お世話になります。

SQLサーバーのフルテキスト検索について質問です。

環境
SQL Server 2000 Enterprise Edition
 ・アクセントを区別する
 ・カタカナを区別する
 ・フルテキストカタログ作成
 ・ワードブレイク:Japanese

例:
電話応対システムのテーブルで、トラブル内容を記入するフィールドがあります。
そのフィールドから、過去一週間を対象に頻繁に起こったトラブルを抽出させる。

結果
キーワード,出現回数
アクセス権設定,1301
インターネットオプション,1200
IE,1100
Word2000,989
Word,800
ワード,500
改ページ,765

以上のような感じなのですが、フルテキストカタログから抽出は可能なのでしょうか。
宜しくお願します。

質問の説明が下手ですみません、追記です。
私のすべて予想なんですが以下のようになっているのではと思っています。

問い合わせ内容フィルード内:
Microsoft SQL Server 2005 では、列の既定言語ではない言語をフルテキスト クエリで使用して、フルテキスト データを検索できます。

フルテキストカタログ内
単語,レコードID
Microsoft,0001
SQL,0001
Server,0001
2005,0001
列,0001
既定言語,0001
言語,0001
フルテキスト,0001
クエリ,0001
使用,0001
データ,0001
検索,0001

そこで、フルテキストカタログにSELECTのようなものを掛けられたら良いなと思っています。

[ メッセージ編集済み 編集者: 水龍蓮 編集日時 2006-07-19 15:06 ]
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-07-20 10:18
おはようございます。

引用:

そこで、フルテキストカタログにSELECTのようなものを掛けられたら良いなと思っています。


フルテキスト クエリ という機能があります。
FREETEXTCOUNTAINS を利用してSELECT文を組み立てます。

フルテキスト検索と Analysis Services とを組み合わせて分析するのもおもしろいかもしれません。
_________________
上本亮介 (ue) @ わんくま同盟
Microsoft MVP for VSTO (Jul 2008 - Jun 2009)
Hello Another World!
.NET 勉強会 / ヒーロー島
TLC
大ベテラン
会議室デビュー日: 2005/05/31
投稿数: 152
お住まい・勤務地: 東京都
投稿日時: 2006-07-20 10:40
引用:

水龍蓮さんの書き込み (2006-07-19 13:31) より:

電話応対システムのテーブルで、トラブル内容を記入するフィールドがあります。
そのフィールドから、過去一週間を対象に頻繁に起こったトラブルを抽出させる。

そこで、フルテキストカタログにSELECTのようなものを掛けられたら良いなと思っています。



TimberLandChapel です。

■結論から言うと,T-SQL だけで実現するのは少し難しいと思います。

2000 のフルテキスト検索には
CONTAINSTABLE,FREETEXTTABLE
という 機能があって,

■指定したキーワードがフルテキストインデックス内に出現する頻度と一致率

をランキング化することができます。
これは,Windows で動いている多くのヘルプに検索をかけたときに
一致の高い順に結果が並んで返ってくることをイメージしていただくとわかりやすいと思います。

しかし,
この機能は,「キーワード」があらかじめわかっていないと使えないわけです。

ですので,
水龍蓮さんの要件である,
インデックス内でのキーワードそのものの出現頻度のランキングの取得
とは少しずれてしまいます。

で,
例えば,ワードブレイクをしたキーワードの一覧をテーブルなどに保存して,
一覧内のキーワードとCONTAINSTABLE とを相関サブクエリ化してランキング
その結果の出現頻度からキーワードのランクを取り出す。

とするとできるんではないかなぁ。と考えたのですが,
水龍蓮さんの状況でワードブレイクがどの程度とれるかによってしまうと思います。

いかがでしょう?

----------
TimberLandChapel
Micorosoft MVP for Windows Server System - SQL Server (Jul 2005 - Jun 2007)
2006.08.05 Workshop 開催
http://blogs.timberlandchapel.com/blogs/workshop/archive/2006/07/18/904.aspx
冬寂
ぬし
会議室デビュー日: 2002/09/17
投稿数: 449
投稿日時: 2006-07-20 11:11
これは面白い話題ですね。SQL Serverについては全然分からないのですが、ちょっと加わらせて下さい。
引用:

TLCさんの書き込み (2006-07-20 10:40) より:
しかし,
この機能は,「キーワード」があらかじめわかっていないと使えないわけです。


そもそも、日本語の場合「どこからどこまでが単語とみなす」のか自体曖昧なのでキーワードを抽出する事自体が難しいのだと思います。

で、キーワードリストを作る方法、という所にこの問題は集約するのでは無いかと思います。
・人力
形態素解析

(安易にやろうと思ったら、「トラブルの内容にカテゴリを割り当てる」とか「キーワードのフィールドを作っておいて「入力しておいてください」という方法」って感じかな・・・(今回の要件を全然満たしていないけど))
TLC
大ベテラン
会議室デビュー日: 2005/05/31
投稿数: 152
お住まい・勤務地: 東京都
投稿日時: 2006-07-20 12:07
引用:

冬寂さんの書き込み (2006-07-20 11:11) より:

そもそも、日本語の場合「どこからどこまでが単語とみなす」のか自体曖昧なのでキーワードを抽出する事自体が難しいのだと思います。




TimberLandChapel です。
そうなんですよね。

少し前に,PASSJ の河端さんが,Andrew Cencici 氏のソースをもとに,
SQL Server のワードブレイクを検証するツールを作られていました。
(ここではあくまで検証用ですが,もっと作りこめば応用は利きそうです)
http://blogs.sqlpassj.org/yoshihirokawabata/archive/2004/06/16/2749.aspx

自分は,
茶筌(http://chasen.naist.jp/hiki/ChaSen/)
なんかも触ったことがあるんですが,
なかなか完璧! とまではいかないです。

日本語は情緒豊かなのですきなんですが,この辺はなかなか困ります。

さらにニューラルネットで解析,というのも試してみたいんですが,
なかなか実用という点が難しいところです。

----------
TimberLandChapel
Micorosoft MVP for Windows Server System - SQL Server (Jul 2005 - Jun 2007)
2006.08.05 Workshop 開催
http://blogs.timberlandchapel.com/blogs/workshop/archive/2006/07/18/904.aspx
水龍蓮
会議室デビュー日: 2004/06/04
投稿数: 8
投稿日時: 2006-07-20 12:37
お忙しい中、みなさん返信ありがとうございます。

ueさん
引用:
フルテキスト検索と Analysis Services とを組み合わせて分析するのもおもしろいかもしれません。


なるほど、Analysis Servicesは、あまり使用したことが無かったのでこれを機会に使用してみたいと思います。

TimberLandChapelさん
引用:
この機能は,「キーワード」があらかじめわかっていないと使えないわけです。


そうなんですか残念です・・・、CONTAINSTABLEで重み付けができるので、その逆も、もしかしたら可能なのではと期待していたのですが。

引用:
例えば,ワードブレイクをしたキーワードの一覧をテーブルなどに保存して,
一覧内のキーワードとCONTAINSTABLE とを相関サブクエリ化してランキング
その結果の出現頻度からキーワードのランクを取り出す。


やはり自分で作成しないといけないようですね、私の知識では完成しないと思われます^^;

冬寂さん
引用:
安易にやろうと思ったら、「トラブルの内容にカテゴリを割り当てる」とか「キーワードのフィールドを作っておいて「入力しておいてください」という方法」って感じかな・・・


社内システムで社員の方が使うので、その方法が一番確実ですね。カテゴリをさらに詳細化してみます。

TimberLandChapelさん
引用:
SQL Server のワードブレイクを検証するツールを作られていました。


これは面白そうなツールですね、ダウンロードできるようなのでいろいろいじってみます。

引用:
茶筌(http://chasen.naist.jp/hiki/ChaSen/)


テキストマイニングのツールは、フリーの物もあるんですね。会社とは別で個人的なテストサーバー(検索エンジン)を公開しているので、そっちのDB(レコード:300万 1日:3000レコード追加あり)で実験してみたいと思います。


ところで、Developer版なのですが2005を入手しました、MSDNで見た感じとしてはキーワード抽出はないのですが、やはりないのでしょうか?


皆さんありがとうございます、一人で悶々と考えていたので助かりました。

[ メッセージ編集済み 編集者: 水龍蓮 編集日時 2006-07-20 12:39 ]

[ メッセージ編集済み 編集者: 水龍蓮 編集日時 2006-07-20 13:15 ]
TLC
大ベテラン
会議室デビュー日: 2005/05/31
投稿数: 152
お住まい・勤務地: 東京都
投稿日時: 2006-08-08 23:13
お疲れ様です。
TimberLandChapel です。

回等ではないのですが,
Microsoft SQL Server フルテキスト検索 (FTS) の開発チーム(米国)が
全世界で,時期バージョンに向けてのアンケートを行っています。

https://live.datstat.com/WSS-Collector/Survey.ashx?Name=SQL_FTS_Survey_Ja

日本語処理も含めて,フィードバックのチャンスです。
FTS は今後需要が高まってくると思いますので,みなさんもぜひご協力ください。

私もフィードバックあげてみます。

----------
TimberLandChapel
Micorosoft MVP for Windows Server System - SQL Server (Jul 2005 - Jun 2007)
http://blogs.timberlandchapel.com/blogs/timberlandchapel/
1

スキルアップ/キャリアアップ(JOB@IT)