i-lligraサジェスト ホーム > もっと詳しく

もっと詳しく

i-lligraサジェストが誕生するまで

最初に、Ajaxによるリッチクライアントのお話

今日ではAjaxの普及により、Webブラウザ(Webクライアント)の画面でも、スピーディでリッチな作りが可能になりました。
このAjaxによる代表的なアプリケーションの一つとして「サジェスト」があります。
サジェストとは、一般的には、ユーザのキー入力に応じて、キーの入力候補語を次々と表示させていく機能を指すようです。
入力内容をもとに、キー入力候補を出力
このようなキータイプの負担を減らしてくれて、作業を楽にしてくれる機能は、Ajaxによるユーザビリティの向上の典型例でしょう。
さて、このサジェストを実現するにあたり、ユーザの入力単語・文章を解析するサーバ処理は、極めて重要な要素です。テキスト入力フォームにて、単語を検索キーとして検索履歴等を表示させる分には、それほど高度なサーバ処理は求められません。しかし、自然文入力、あるいは、マウスクリックによって選ばれた文章を検索キーとして、アンケート、応対履歴、顧客データベースなどの情報を検索するためには、文章解析を行い、日本語の意味をとらえたマッチングを行う必要があります。
こういった日本語文章のサーバ処理には、テキストマイニングが有効なのですが、従来までは問題がありました。
Ajaxは、ユーザビリティを飛躍的に高める可能性を秘めています。Ajaxの最大の特徴である非同期通信を活用する事で、ユーザを待たせない、画面描画がもたつかない、スピーディなWebサイトを構築する事ができるはずです。しかし、残念ながら、Ajaxの非同期通信、クライアント側の描画スピードに追従できるサーバアプリケーションに乏しい状況ではないでしょうか。

テキストマイニングの問題点とは

ユーザが入力したテキスト文章をサーバで解析して、適切な入力候補語、あるいは、関連情報を検索したい場合を考えます。こういったテキスト文章を解析する技術が、テキストマイニングです。
テキストマイニングは、テキスト文章に対して、形態素解析、構文解析、マッチング、結果出力の一連の処理を行います。非常に有用な技術であり、今日では、さまざまな業務に適用され、データ分析業務の根幹を担うまでになりました。
しかし、テキストマイニングの処理は、一般には、時間を要するものです。
Ajaxの代表的なアプリケーションであるサジェストでは、数ミリ秒のレスポンスタイムが求められます。テキストマイニングは、その高度な文章解析を行うため、数ミリ秒のレスポンスタイムに応えるには、厳しい状況でした。
また、同時並行処理の問題もありました。従来のテキストマイニングは、数十数百以上のクライアント要求に対して、同時に処理する事は難しく、要求があった順番に逐次処理していく他ありませんでした。
テキストマイニングの問題点
Ajaxの特徴を最大に活かすためには、サーバアプリケーションに、非同期通信によるユーザ要求を同時に、並行して、瞬時に処理する事が求められます。
これまで、テキストマイニングは、このようなAjaxクライアントの要求に応えるには、厳しい状況ではなかったでしょうか。

そして、i-lligraサジェスト登場!

私達は、Ajaxを最大限に活用できるようにするため、そして、テキストマイニングの問題を解決するため、i-lligraサジェストを生み出しました。
i-lligraサジェストでは、ユーザの入力文字列に対する、一連のテキストマイニング処理;すなわち、形態素解析、構文解析、マッチング、結果出力を一瞬で行う事ができます。
i-lligraサジェスト登場!
i-lligraサジェストは、
- 従来のテキストマイニングの特徴を損うことなく、
- Ajaxの最大の特徴;非同期通信の要求に応え、
- 数十数百以上の同時並行処理をリアルタイムに行う事ができる
ユニークなソリューションです。
このページの先頭へ

i-lligraサジェストの特徴と仕組み (1)サジェスト機能

i-lligraサジェストの特徴や仕組みを詳しく解説します。
住所入力デモを使って解説していますので、必要でしたら、上記例の入力フォームに戻って実際に入力してみてください。実際に動きを確認頂くことで、より詳しくとらえる事ができるのではないでしょうか。

ポイント1:単語入力候補の検索

サジェストの基本機能です。入力しようとしている単語の一部の読みを入力するだけで、単語入力ができます。
次図は、例1の入力で、「と」と入力したときの状況です。
「と」から始まる候補語が表示されています。
「と」と入力したとき
「とう」と入力を進めてみました。
この瞬間、「とう」から始まる候補語に絞込まれます。
「とう」と入力したとき
すでに都道府県名が入力されていると、その入力に続く市区町村名が候補語として表示されます。
例えば、すでに「東京都」と入力されているとき「と」と入れると、東京都などの都道府県名は候補表示されず、市区町村名が候補語として出てきます。次図をご参照ください。東京都に「と」から始まる市区町村名は、「豊島区」と「利島村」しかありませんので、その2つが候補表示されてます。
すでに都道府県名が入力されていると、続く市区町村が候補語として表示されます
もう一例、挙げておきましょう。東京都と入力して「し」と入力しました。
東京都内の「し」から始まる市区町村名が表示されています。
東京都内の「し」から始まる市区町村が表示されています
今度は、静岡県と入力して同じように「し」と入力してみます。同様の「し」の入力であっても、静岡県と入力されていれば、静岡県内の市区町村が表示されます。
同様の「し」の入力であっても、静岡県と入力されていれば、静岡県内の市区町村が表示されます
このように、常に、入力文章の流れに適した候補語が表示されます。これが基本機能です。Webにおいても、気が利いた予測変換ができるのは、なかなか便利な事ではないでしょうか。

ポイント2:入力場所に応じた、適切な候補語表示

入力する場所に応じて、サジェストの内容を切り替える事ができます。
同じテキストエリアであっても、住所入力しかしない場合と、一般的な文章を入力する場合では、期待される候補語は変わります。例えば、次の2つの例を見比べてください。例1で「とう」と入力したときと、例2で「とう」と入力したときでは、サジェスト内容が変わっています。
例1:住所入力の場合
住所入力の場合
例2:文章入力の場合
文章入力の場合
これらの候補語の元となる文章データを「辞書」と呼びます。
辞書は、i-lligraサジェストのサーバで一元管理されています。この辞書と入力フォームとの紐付けを切り替える事で、このような用途別のサジェストを行っています。

ポイント3:IMEの確定語と未確定語

サジェストを行うとき、キー入力状態によっては候補語の内容が変わります。特に、IMEの確定語と未確定語(かな漢字変換中の文字列)が区別されるのは、大きな特徴です。次の例をご覧ください。
例1の入力で、「東京都」と入力して「あ」と入力したところです。「あ」はIMEの未確定状態です。
この状態では、東京都にある「あ」から始まる市区町村名が候補表示されています。
IMEの確定語と未確定語は区別されます
「あ」の入力を確定させます。この瞬間、候補語表示が切り替わります。なぜならば、ひらがなの「あ」から始まる東京都の市区町村は「あきる野市」のみですので、あきる野市だけが表示されるのです。
ひらがなの「あ」から始まる東京都の市区町村は「あきる野市」のみですので、あきる野市だけが表示されます
もう一例、挙げておきましょう。
例2の入力で、「きれいに」と入力しています。「きれいに」はIMEの未確定状態です。
「画像がきれいに」と入力しています
「きれいに」を確定させました。例2の辞書には、「きれいに」に続く文章は、「掃除した」と「部屋」しかありませんので、その2つのみが表示されています。
変換後の単語「綺麗に」に続く候補語に絞込みました
いかがでしょうか。
日本語のサジェストには、かな漢字変換入力を常とするため、これまでにない悩みがあります。
i-lligraサジェストでは、これらの悩みを解消すべく、どれだけ入力を楽にできるかを追求してみました。現時点においては、かな、カナ、漢字、数字、アルファベット、ならびに、全角文字、半角文字、そして、IME未確定語&確定語の混在入力に対応しています。
もちろん、あなたが利用しているIME(MS-IMEやATOK)は、そのまま利用できます。スペースキーを押せば、いつもどおりのかな漢字変換を行う事ができます。先ほどの例で、「綺麗に」と漢字変換をしてみれば、サジェストとスムーズな連携ができている事が分かるのではないでしょうか。

ポイント4:ソート方法

すでにお気付きかもしれませんが、ソート方法は2種類です。
例1:住所入力の場合は、漢字の読み(ひらがな)の降順でソートしています。
ひらがなソートの場合
例2:文章入力の場合は、辞書中の単語の出現頻度(画面には表示されません)の降順でソートしています。
出現頻度順ソート

ポイント5:あらゆる入力操作に対応しています!

i-lligraサジェストは、
  • 文章が複数行にわたっても、
  • 改行されていても、
  • 途中でコピー&ペースト(コピペ)しても、
  • 文字を消しても、
  • キーボードからでも、マウスからでも、
あらゆる入力操作に対応しています。例2の入力フォームにて、色々試してみてください。状況に応じた適切な候補語が表示されるでしょう!
このページの先頭へ

i-lligraサジェストの特徴と仕組み (2)マッチ機能

i-lligraサジェストのマッチ機能は、これまでのFAQ検索と、どのような違いがあるのでしょうか。ご説明します。

ポイント:構文解析によるマッチング

ここでは、マッチングの仕組みについてご紹介します。
入力された文章に対しては、従来のテキストマイニング同様に、形態素解析、構文解析が行われ、文章の係り受け構造を理解した上で、マッチングを行います。
ここまでの例で、お気付きになったでしょうか。文章の係り受け構造によって、次のようにマッチングの差が出てきているのです!
「メッセンジャーが使えません」の検索結果例
「メッセンジャーが使えません」の検索結果例
「ワイヤレスマウスが使えません」の検索結果例
「ワイヤレスマウスが使えません」の検索結果例
「ワイヤレスマウスを使うときの注意点」
「ワイヤレスマウスを使うときの注意点」
i-lligraサジェストでは、テキストマイニングの特徴を活かしつつ、レスポンススピードを追求しています。 これによって、マウスクリックの一瞬の検索の中でも、従来どおりのテキストマイニング処理を行い、「文章係り受け」をもとにした正確なマッチングを行えます!
ユーザは、マウス操作の何気ない動きの裏で、膨大な量の日本語処理が動いている事に全く気が付かないのではないでしょうか。
このページの先頭へ

i-lligraサジェストの特徴と仕組み (3)サジェストの応用例

ポイント1:圧倒的なレスポンススピードをデータ検索に!

電話帳は、サジェストの仕組みをデータ検索に応用した一例です。氏名入力から、電話帳データ表示の一瞬の流れの中で、次のようなデータ検索が行われています。
圧倒的なレスポンススピードをデータ検索に!
同時接続数についても触れておきましょう。
NTTデータの社内システムの場合、ユーザは約8000名の社員となりますが、この電話帳サイトは、実は、1台のサーバで運用できてしまっています。Ajaxの非同期にとんでくる数百数千以上の検索要求に、たった1台のサーバが応えているのです。

ポイント2:さまざまなデータ検索に活用!

企業が提供する各Webサイトでは、データ検索を行う場面がいたるところにあります。ご紹介した社員電話帳検索、企業名検索、商品検索、取引案件検索など、すべてに適用可能です。
また、このサジェストの仕組みは、既設システムにアドオンする事ができます。NTTデータの電話帳検索の場合は、次図のような構成となっています。
従来サイトと並行運用できている事も特徴の一つでしょう。既存サービス、既設システムに影響を与えずに、サジェストを取り入れる事ができるのです!
【 サイト構成 】
サイト構成図
このページの先頭へ