2013年 春期 応用情報技術者試験 問6

テキストマイニングツールを活用したシステムへの機能追加における設計と実装に関する次の記述を読んで,設問1〜4に答えよ。

D 社は,家電製品を製造販売する大手企業であり,顧客サポートシステムとホームページを運用している。顧客サポートシステムでは,製品に対する問合せや回答を管理している。ホームページでは,顧客と社員が発言を書き込める製品別の掲示板や活用事例が用意されている。D 社では,サポート内容や製品の活用事例を検索するためのキーワードをマスタとして一元管理している。

今回,更なる製品販売・活用推進,顧客満足度向上のために,テキストマイニングツール(以下,ツールという)を導入し,顧客サポートシステムとホームページの機能を強化した新顧客サポートシステム(以下,新システムという)を構築することになった。このツールによって,掲示板への発言内容とキーワードを,キーワードマスタを用いて関連付ける。また,発言内容を分析し,肯定的か否定的かを自動的に判別する。製品に対する問合せや回答の内容,製品の活用事例についても同様に,ツールとキーワードマスタを用い,キーワードを関連付ける。運用方法としては,毎日,夜間にツールで処理した結果を新システムに取り込む。

新システム全体のE-R図の抜粋を図1に,各エンティティの概要を表1に示す。

凡例
―――:1対1
――→:1対多
←――→:多対多

注記:属性名の実線の下線 ―――― はキー,
破線の下線 ……… は外部キーを示す。
主キーの実線が付いている属性名には,
外部キーの破線を付けない。

表1 各エンティティの概要
エンティティ名概要
キーワードサポート内容や活用事例を検索するためのキーワードマスタ。
発言ツールで処理された掲示板上の発言。肯定的フラグ属性には,肯定的な発言内容の場合は '1' が,そうでない場合は '0' が入る。否定的フラグ属性には,否定的な発言内容の場合は '1' が,そうでない場合は '0' が入る。両方のフラグに '1' が入る場合もある。一つの発言内容は200文字以内なので,複数の断片が入ることは少ない。社員番号属性には,社員の発言の場合は社員番号が入り,社員以外の顧客による発言の場合はNULLが入る。
発言キーワードツールによって,掲示板上の発言とキーワードを関連付けた結果。一つの発言に対して一つ以上のキーワードが関連付けられる。
発言キーワード重み掲示板上の発言中での出現頻度を基に算出されたキーワードの重み。
サポート顧客からの問合せと回答を管理するもの。
サポート分類顧客からの問合せ内容を分類するためのマスタ。
サポートキーワードツールによって,顧客からの問合せとキーワードを関連付けた結果。
活用事例ホームページ上で公開する,製品の活用事例の詳細な内容。
活用シーン活用事例をその利用シーン別に分類するためのマスタ。
活用事例キーワードツールによって,活用事例とキーワードを関連付けた結果。一つの活用事例に対して一つ以上のキーワードが関連付けられる。

新システムでは,E-R図のエンティティ名を表名にし,属性名を列名にして,適切なデータ型で表定義した関係データベースによって,データを管理する。

【発言キーワードへの重み付け】

発言キーワードの重みを,掲示板上の社員以外の顧客による発言のうち,そのキーワードを含む発言数と定義する。つまり,登録されたキーワードを含む発言数が多いほど話題性が高く,重要度の高いキーワードであると定義する。発言キーワード重み表にその重みの値を集計するためのSQL文を図2に示す。ただし,掲示板上の発言にはなく,キーワード表だけに存在するキーワードの重みは0として集計する。また,発言キーワード重み表のレコードは集計の前に削除されている。

なお,関数COALESCE(A, B)は,AがNULLでないときはAを,AがNULLのときはBを返す。

INSERT INTO 発言キーワード重み (キーワードID, 重み)
SELECT キーワード.キーワードID, COALESCE(OMOMI.CNT,0)
FROM キーワード
c
( SELECT 発言キーワード.キーワードID, COUNT(*) AS CNT
  FROM 発言キーワード
  INNER JOIN 発言 ON 発言.発言ID = 発言キーワード.発言ID
  WHERE d
  GROUP BY 発言キーワード.キーワードID ) OMOMI
ON キーワード.キーワードID = OMOMI.キーワードID
図2 発言キーワード重みを集計するためのSQL文

【顧客サポートシステムの機能強化】

顧客サポートシステムでは,電話やインターネットからの問合せや回答を管理している。掲示板に書き込まれた否定的な発言を,含まれるキーワードの重みの総和が大きいものから順にリストアップする機能を追加する。そのリストの上位から順に,各発言に対する回答を記入する画面を開き,回答履歴から類似した内容を照合して,適切な回答を担当者が掲示板に書き込むことで,顧客満足度向上を目指す。

否定的な発言を,含まれるキーワードの重みの総和が大きいものから順に出力するためのSQL文を図3に示す。

SELECT 発言.発言ID, SUM(発言キーワード重み.重み) AS WEIGHT
FROM 発言
  INNER JOIN 発言キーワード ON 発言.発言ID = 発言キーワード.発言ID
  INNER JOIN 発言キーワード重み
    ON 発言キーワード.キーワードID = 発言キーワード重み.キーワードID
WHERE e
GROUP BY 発言.発言ID
f
図3 否定的な発言を重みの総和が大きいものから順に出力するためのSQL文

【活用事例コンテンツの充実】

ホームページのコンテンツの一つとして,各製品の用途に応じた活用事例紹介がある。活用事例が検索されやすくするために,活用事例ごとにキーワードを登録するだけでなく,活用シーンにもキーワードを関連付けることによって,より的確に活用シーンを検索できるようにする。

ビデオカメラの活用事例の画面例を図4に,活用シーンに登録されているキーワードの例を表2に示す。図4の活用事例は学校行事の活用シーンなので,表2に登録されている運動会や文化祭といったキーワードでも,この活用事例が検索されるようにしたい。

表2 キーワードの例
活用シーンキーワード
旅行海外旅行
国内旅行
遠路めぐり
学校行事運動会
文化祭
スポーツ運動会
野球
サッカー
活用事例の画面例
活用事例ID:KJXXXXX製品名:ビデオカメラJ
活用シーン:学校行事
キーワード:運動会,校庭,玉入れ,リレー,手ぶれ
内容:
運動会で,我が子の活躍をバッチリ撮影する秘けつを伝授します!
図4 活用事例の画面例
出典:平成25年度 春期 応用情報技術者試験 午後