講義資料

今日の話の内容
情報工学通論
1.序論: コンピュータに賭ける夢
2.自然言語処理という研究分野の紹介
研究分野紹介 「自然言語処理」
(1) 「言語」のモデル化と処理
(2) 人工知能(AI)と自然言語処理
(3) 自然言語インタフェース
(4) Web 情報処理と自然言語処理
Natural Language Processing
2015年6月9日
3.まとめ
杉本 徹
専門科目カリキュラムとの関係,アドバイス
[email protected]
1
2
コンピュータ
画像理解
ネットワーク
1.序論
コンピュータに賭ける夢
Virtual Reality
機械学習
• 論理的判断 + 記憶 (⇔ 人間)
• プログラミングによって動作を際限なく複雑に
(高度化)していくことが可能
3
人工知能(Artificial Intelligence)
4
人間の知能と機械の知能
人間が行うような知的な振舞いを機械に行わせる研究
認知科学(Cognitive Science):
情報処理の観点から人間の知能の解明を目指す
応用分野:
人間
人工知能
知覚
画像・音声認識
記憶・表象
知識表現
・ 知的制御システム
思考・推論
推論機構
・ 数学の計算・証明
・ 知的交通システム
学習
知識獲得
・ ゲーム
・ 知的CAI(教育支援)システム
言語理解
自然言語処理
・ ロボット
・ 画像理解,音声理解
・ 自然言語処理,機械翻訳
・ 情報検索(Webなど)
・ エキスパートシステム
(医療診断システム,設計システム,
遺伝子解析システム,など)
5
6
1
人間と対決する人工知能
Watson の概要
• 幅広い分野の問題に対し,高い精度で素早く
解答可能(正答率 90%,解答時間 3秒)
• Deep Blue(チェス)
– IBM RS/6000 + チェス専用LSI 512個
– 1997年,世界チャンピオンに勝利
• 情報源: 百科事典,新聞記事,戯曲,聖書,
歌詞など,約70GB
• GPS将棋(将棋)
– Intel Xeon(マスタ)+ iMac(Intel Core i5) 667台
– 2013年,トップ(A級)棋士に勝利
参考: 「Watson:
クイズ番組に挑戦する
質問応答システム」,
金山・武田,情報処理
Vol.52,No.7,2011
• Watson(クイズ)
– IBM Power7 2,880コア
– 2011年,米クイズ番組Jeopardy!でクイズ王に勝利
7
Watson の応用例
8
私が人工知能に興味を持った動機
• 医療判断支援
• 人間と対戦するオセロ・コンピュータ
– 100万件以上の症例や論文を入力しておく
– 患者の症状を入力すると,関連する情報を検索
し,最適な治療法を推論して医師に提案する
– 必要に応じて,その推論結果の根拠となる症例
や論文を表示する
• テレビで見たロボット
– (鉄腕アトム)
– 鉄人28号
– マジンガーZ
– がんばれロボコン
– ドラえもん
・・・
• コールセンター業務支援(銀行など)
• シェフ・ワトソン
9
お茶目な友達ロボット
・人間のようにものを考える
・ 言葉(日本語)をしゃべる
10
コンピュータ
2.自然言語処理という
研究分野の紹介
• 論理的判断 + 記憶 (⇔ 人間)
• プログラミングによって動作を際限なく複雑に
(高度化)していくことが可能
11
12
2
自然言語処理研究の目的
自然言語へのアプローチ
• 理論的な目的
– 「言葉を使う能力」を明らかにすることにより,人間の知能
の仕組みを解明する手掛かりを得る (⇒人工知能 AI)
– 言語の体系自体とそれに関する計算処理の深い理解
(⇒計算言語学 Computational Linguistics)
• 実用的な目的
• What? (自然言語とはどのようなものか)
⇒ トピック1:「言語」のモデル化と処理
• How? (自然言語をどうやって処理するか)
⇒ トピック2:人工知能と自然言語処理
– 情報検索,情報抽出
• Why? (自然言語処理の応用分野の展望)
– 機械翻訳,自動要約,言い換え
– 自動校正,語学教育
⇒ トピック3:自然言語インタフェース
トピック4: Web情報処理と自然言語処理
– 対話型ユーザ・インタフェース
– 音声(認識,合成)インタフェース
13
14
言語(自然言語、人工言語)
言語 = ある約束に従って記述された文字列の体系
トピック1
• 自然言語
日本語,英語,中国語,韓国語,フランス語,…
「言語」のモデル化と処理
• 人工言語
–
–
–
–
–
数学言語(数式),論理式
プログラミング言語(C, Java, アセンブリ言語, …)
マークアップ言語(HTML, XML, TeX, …)
その他のコンピュータ言語(SQL, UML, HDL, …)
通信プロトコル(HTTP,SMTP,FTP等)も広い意味では言語
15
16
言語の例(1): XML(Extensible Markup Language)
コンピュータによる(自然、人工)言語の処理
• 構造化データをテキスト形式で表現するための言語
• ネットワーク上のデータ通信に広く使われている
まず最初に、対象となる言語を定義しておく
1) 語彙(使用可能な単語)の定義
2) 構文(文字列の構成方法)の定義
3) 意味(構成された文字列の使われ方)の定義
記述例(書籍データ):
1.解析処理(parsing)
– 与えられた(対象言語に属す)文字列を解析し,それに含ま
れる語彙を抽出して,全体の構造を求める
2.生成処理(generation)
– 目的に応じて,対象言語に属す文字列を作り出す
17
開始タグ
<booklist>
<book>
<title> はじめてのUNIX入門 </title>
要素(element)
<author> 近藤光志他 </author>
<publisher> 森北出版 </publisher>
</book>
<book>
終了タグ
<title> 新版 明解C言語 入門編 </title>
<author> 柴田望洋 </author>
<publisher> ソフトバンククリエイティブ </publisher>
</book>
</booklist>
18
3
「0個以上何個でも」という意味
XMLの文法(簡略版)
要素 → 開始タグ 子要素* 終了タグ
子要素 → 要素 or 文字列
開始タグ → < タグ名 >
終了タグ → </ タグ名 >
C言語の文法(簡略版)
文→式 ;
{ 文* }
if ( 式 ) 文
前ページの例に対する構文木(parse tree)
要素
要素
要素
開始タグ
or
or
式 → 値(数値,文字列など) or
変数
or
式 演算子 式
or
関数名( 式* )
要素
開始タグ 開始タグ 文字列 終了タグ 開始タグ 文字列 終了タグ
言語の例(2): C言語
文字列
終了タグ
終了タグ
<book><title>…</title><author>…</author><publisher>…</publisher></book>
19
演算子 → +, -, *, /, =, ==, …
20
言語の例(3): 英語
C言語の文とその構文木の例
英語の文法(簡略版)
文
文
文
式
名詞句 → 名詞
or
冠詞 名詞
or
名詞句 前置詞句
文
式
式
変数 演算子 変数 演算子 変数
関数名
動詞句 → 自動詞
他動詞 名詞句
動詞句 前置詞句
文字列
if ( x + y == z ) { printf( “正解です” ) ; }
21
if (x+y==z) {printf(“正解です”);}
動詞句
前置詞句
名詞句
変数 … 演算子 …文字列
if (x+y==z) {printf(“正解です”);}
名詞句
入力データ、
プログラム
入力文
字句解析
形態素解析
トークンのリスト
単語のリスト
構文解析
構文解析
構文木
構文木
…
名詞 他動詞
I
saw
冠詞
a
名詞
girl
前置詞
with
22
言語の解析処理
文
名詞句
or
or
前置詞句 → 前置詞 名詞句
英語の文とその構文木の例
動詞句
→ 名詞句 動詞句
冠詞
a
telescope.
23
名詞 自動詞 … … 冠詞 名詞
I saw a girl with a telescope.
…
名詞
変数 … 演算子 …文字列
if (x+y==z) {printf(“正解です”);}
I saw a girl with a telescope.
名詞 自動詞 … … 冠詞 名詞
I saw a girl with a telescope.
24
4
自然言語の曖昧性 (1) 構文的曖昧性
人工言語と自然言語の比較
文
人工言語
自然言語
動詞句
単語(トークン)
の種類
数種類~数百種類 数万~数十万種類
名詞句
文法規則の数
数個~数十個
数百~数千個
曖昧性・
状況依存性
ない
ある
言語解析に
かかる時間
早い
あまり早くない
言語解析の精度
常に正しく解析
できる
正解率はせいぜい
80~90%
動詞句
名詞句
名詞句
名詞 他動詞
I
前置詞句
saw
名詞句
冠詞
名詞
前置詞
冠詞
a
girl
with
a
名詞
telescope.
25
26
トピック1のまとめ
自然言語の曖昧性 (2) 語義的曖昧性(多義語)
例2: “study” ⇒ 勉強する、勉強、研究、書斎、…
• コンピュータでは,様々な情報やデータを文字列として
表現するために,様々な種類の人工言語が定義され
利用されている
例3: “持つ” ⇒
• 言語に対する処理として,解析と生成がある
例1: “bank” ⇒ 銀行、土手、傾ける、…
・物を支えた状態を保つ 「荷物を持つ」
・所有する
「自分の家を持つ」
・性質を備える
「古い伝統を持った学校」
・気持ちを抱く
「自信を持つ」
・負担する
「今晩の食事代を持つ」
・状態を維持する
「残業続きで体が持たない」
27
・・・
• 自然言語も言語の一種であるから,人工言語に対する
処理手法の多くを活用することができる
• しかし,自然言語は複雑性や曖昧性など人工言語に
ない特徴があるので,うまく処理するためには一層の
工夫が必要となる ⇒ 人工知能技術の利用
28
人工知能(Artificial Intelligence)
人間が行うような知的な振舞いを機械に行わせる研究
トピック2
応用分野:
人工知能と自然言語処理
・ ロボット
・ 画像理解,音声理解
・ 自然言語処理、機械翻訳
29
・ エキスパートシステム
(医療診断システム,設計システム,
遺伝子解析システム,など)
・ 情報検索(Webなど)
・ 知的制御システム
・ 数学の計算・証明
・ 知的交通システム
・ ゲーム
・ 知的CAI(教育支援)システム
30
5
人工知能の産業への応用
自然言語処理への応用:知識を使った曖昧性解消
1980年代~
「知識は力なり (Knowledge is Power)」
I saw a girl with a telescope.
知的な機能を実現するためには,知識(専門知識や常識)
を明確な形で記述して利用できるようにすることが必要
使う・持つ
動物
?
道具
エキスパートシステム(Expert System)
専門家の経験的な知識を分析してコンピュータに入れておくことにより,
知的な判断(診断,設計,計画立案,相談等)を行えるようにしたシステム
人間
I saw a bear with a telescope.
×
クマ
私 少女 ・・
・・ 望遠鏡
○
知識工学(Knowledge Engineering)
知識の記述方法,利用方法,獲得方法に関する研究
When I arrived at the bank, the boat is about to sink down.
銀行?土手?
浮かぶ
☆ 難題:知識獲得ボトルネック
大規模な問題を解くために必要な大量の知識をどのように収集して蓄積
するか?
31
銀行
土手
一部分
bank
川
水面
ボート
海
32
言語と知能
トピック2のまとめ
• 日常生活において(高度な)言語を使うのは人間のみ
⇒ 言語使用に知能の本質が隠されている?
• 自然言語処理の研究は,機械に知的な処理を行わ
せる人工知能の一分野と考えられる
• 知能の実現には,以下のものが必要
「物には名前がある」 ヘレン・ケラーの発見
• 人間は,自分が見たり経験した事物を言葉(概念)に
よって分節化・再構成して理解する
– 頭の中でも言葉を使って考えている?
– 「言葉で説明する」,「言葉にできない」,…
– 知識の表現
– 知識の利用(推論)
– 知識の獲得
• 自然言語の解析を行う際に,知識(一般常識や専門
分野知識)を使うことによって,曖昧性を解消したり
言外の意味(比喩や皮肉など)を理解したりできる
ようになる
33
34
ユーザ・インタフェース
• 文字によるユーザ・インタフェース(CUI)
– シンプルな仕組み
トピック3
• グラフィック・ユーザ・インタフェース(GUI)
自然言語インタフェース
– 直感的に操作できる
• 自然言語によるインタフェース(音声またはタイプ入力)
– 使い方を覚える手間が少ない
– 複雑な指示を簡潔に入力できる
– 特に,対話型インタフェース(対話システム)
応用例: ホテルの予約,飛行機チケット予約,道案内システムなど
35
36
6
研究事例1: 日常言語コンピューティング
私が参加した,理化学研究所(理研)における研究プロ
ジェクト(2000~2005)
コンピュータに不慣れな人でも,日常的な言葉を使って
様々なソフトウェアの操作や情報の検索を対話的に行
えるシステムの研究開発
理研プロジェクトの研究成果(1)
• あらゆる言語処理の基盤となる言語知識
データベースと言語処理機能の設計・開発
– 言語学の理論(システミック言語理論)に基づき,
深い解析(構文解析,意味解析など)を行う
観念構成的機能
対人的機能
テキスト形成的機能
コンテクストベース
活動領域
役割関係
伝達様式
意味ベース
現象,要素,現象
間接続
発話機能
修辞構造
過程構成,位相
ムード,モダリティ,
テンス
主題,接続関係
日常的な言葉
語彙文法ベース
機能の
呼出し
対話
一般のユーザ
言語の理解
表現ベース
字種,句読法
電子化辞書
単語辞書,共起辞書,概念辞書
コーパス
タグ付き対話事例
研究事例2: 「知ってる君」 プロジェクト(最近やっている研究)
理研プロジェクトの研究成果(2)
S.I.T. TELL
• 応用対話システムの開発
おはよう!
今日の予定は?
– 日常的な言葉でソフトウェア操作を行えるシステム
(1) 言語ワープロ(言葉でワープロを操作する)
(2) 言語プログラミング(言葉で操作手順を指示)
(3) スマートヘルプ(マニュアルを言い換えて教示)
目標像:
• 物知りキャラクタ・エージェント
– ユーザの好みや予定を 「知ってる」
– 雑学(from Web)を 「知ってる」
• 個別のユーザに特化した対話動作
• Web上の情報を参照してユーザをアシスト
40
Wikipediaを利用した観光地推薦対話システム(卒業研究)
トピック3のまとめ
• 自然言語インタフェース(特に,音声を用いた対話的な
インタフェース)は夢の技術
地図
応用が期待される分野:ロボット,カーナビ,携帯電話,
情報家電 など
• 解決すべき難題が多い (話し相手の意図の推測,対人関係
の考慮,口語表現や断片的表現の理解など)が,着実に研究
が続けられている
入力エリア
• 例: 「美術館行きのバスはどこですか?」
出力エリア
• 応答1:「3番乗り場です」
• 応答2:「3番乗り場です.あと5分で発車します」
41
41
• 応答3:「今日は美術館はお休みですよ」
42
7
World Wide Web の発展
• 情報量の爆発的増大
– Webページ総数: 10億ページ(’99) ⇒ 100億ページ(’05)
• 多様な情報
トピック4
– 事実に基づく情報(企業HP,分野毎の情報集約サイトなど)
– 口コミ情報(blog,SNS,掲示板など)
– 辞書・事典(世界最大の百科事典Wikipediaなど),マルチメディア
Web情報処理と自然言語処理
• 多様なサービス
– 情報検索サービス
– ショッピングサービス など
43
一部のサービス(Google, Amazon, Yahooなど)は,WebサービスのAPI
が公開されているため,自作プログラムの中からこれらのサービスを呼び
出して簡単に利用することができる
44
Semantic Web: 次世代のWebの形
情報の海に溺れないために
• 検索エンジンの高度化
• 現在の Web の仕組み(html)は人間向け (人間がブラウザで
ページを見た時に内容を理解しやすいように作られている).
ページ表示以上の知的な処理を機械に行わせるには不向き
– Google の PageRank アルゴリズム
• 「重要度の高い」ページを検索結果の上位に表示する
• ページ間のリンク関係を基に各ページの重要度を算出
⇒ WWWの発明者である Tim Berners-Leeが新たな仕組み
Semantic Web を提案
– キーワード検索の限界を超える情報検索
• 隣接する単語の構造(→句,文)を考慮に入れた検索
• 領域を限定し,専門知識を援用する情報検索
Web上のデータに対してその「意味」を表すメタデータを付加
することにより,機械によるデータ検索,推論を可能とする,
「機械的な処理が可能な」次世代のWeb方式
• 情報統合
– Web 上に散在する類似した情報を統合し,関連する情報
を整理して出力する
– メタデータの記述形式 RDF (Resource Description Framework)
• 人工知能における知識表現形式に基づき,XMLデータとして記述する
– データの関係の記述 OWL(Web Ontology Language)
自然言語処理の技術が鍵となる!
45
• 記述論理(Description Logic)に基づく推論が可能
46
研究事例3: 言語の意味を考慮に入れた
Web 情報検索 (現在やっている研究)
RDF/XML による知識の記述例
<rdfs:Class rdf:ID=“Animal”/>
<rdfs:Class rdf:ID=“Human”>
<rdfs:subClassOf rdf:resource=“#Animal”/>
<ex:use rdf:resource=“#Instrument”/>
</rdfs:Class>
<rdfs:Class rdf:ID=“Bear”>
<rdfs:subClassOf rdf:resource=“#Animal”/>
</rdfs:Class>
• 情報検索の手法
Animal
subClassOf
subClassOf
Human
Bear
<rdfs:Class rdf:ID=“Telescope”>
<rdfs:subClassOf rdf:resource=“#Instrument”/>
</rdfs:Class>
– 対象分野の Web ページを言語解析し,内容を理解する
– ユーザの入力に対しても言語解析を行い,Web ページ上
の情報と照らし合わせて解を求める
use
Instrument
<rdfs:Class rdf:ID=“Instrument”/>
– 言語知識および専門分野に関する知識を用意しておく
• 具体的な研究テーマ
– Web 上のお出かけ情報の抽出と観光地推薦への応用
subClassOf
– Web 上の情報工学教材の体系化と検索・推薦
Telescope
– Web 上の評判情報抽出(映画,小説,音楽など)
47
48
8
Yahoo!映画,
Amazon の
研究事例:
レビュー記事からの特徴語の抽出
レビュー記事
Web上のレビュー情報
に基づく推薦システム
(卒業研究)
...
北野監督は車を使うシーンは絶妙に
上手いですね。
...
今の時代貴重な任侠映画。
...
言語解析・
特徴抽出
重み付け
車
車
シーン 選択
時代
任侠映画
任侠映画
映画(または楽曲)
データベース
...
聴いていると明るい気持ちになれる。
...
冬にぴったりな力強いバラード
...
希望を表す言葉
言語理解・照合・
推薦判断
ユーザ
おすすめ映画(または楽曲)
【心理表現】
明るい
【鑑賞状況】
冬
49
50
トピック4のまとめ
ここまでのまとめ
• 「知識は力なり(Knowledge is Power)」再び
– Web 上には膨大な量の知識(一般常識も専門的
な知識も)が記述されている。
– 自然言語処理技術を用いることにより,それらを
巨大な知識ベースとして活用できるようになれば
「知識獲得ボトルネック」を解決できる
• トピック1:「言語」のモデル化と処理
• トピック2:人工知能と自然言語処理
• トピック3:自然言語インタフェース
• トピック4: Web情報処理と自然言語処理
• 増え続ける情報の海にユーザを溺れさせな
いためにも,情報の検索・取捨選択・整理を
自動化できる部分はなるべく自動化したい
51
52
自然言語処理の研究と情報工学科カリキュラムの関係
自然言語処理
モデル化のツール
3.終わりに・・・
3年次
2年次
モデル化の内容
自然言語処理
データ解析法
人工知能
ソフトウェア工学
パターン認識
H.C.インタラクション
数理論理学
コンパイラ
システム化の基礎
高度情報演習
データ構造とアルゴリズム
プログラミング言語論 基礎情報演習
形式言語とオートマトン
1年次
53
離散数学
確率論と情報理論
プログラミング入門
54
9
アドバイス
そして・・・
1.数学をよく学ぶ
– どんな応用分野でも,問題のモデル化に数学が必要
– 微積分,線形代数,離散数学,論理学,統計学
2.プログラミングをマスターする
夢を持とう (見つけよう)
– どんな研究でも,コンピュータによる動作実験は不可欠
– 情報技術者にとってプログラムは作品 ⇒ より良いもの
(高機能,汎用,高速,明解,高保守性など)を目指す
– 最低限,C言語(1年~) と Java(3年で習う) をマスター
3.資格取得(基本情報,応用情報など)を目標にする
4.英語に意識的に接するようにする(何でもよい)
– 慣れると,抵抗感を感じなくなる
55
56
10