SlideShare una empresa de Scribd logo
1 de 46
8. 自然言語処理(問答,要約,
テキスト生成,単語の特徴ベク
トル,単語の類似度)
1
金子邦彦
(ディープラーニング,Python を使用)
(全15回)
https://www.kkaneko.jp/cc/ae/index.html
2
問答
リカレントニューラルネットワークは,回帰により,過去の情報を
保持する.時系列データなどのデータの並びを扱う能力を持つ
テキスト
質問 回帰 答え 保持する
AIが生成する結果の例
要約
要約 データは回帰する能力がある.
テキスト生成
生成
リカレントニューラルネットワークは,回帰により,過去
の情報を保持する.時系列データなどのデータの並びを扱
う能力を持つ.線形回帰モデル(pn-model)は,過去のデータが
現在から何百年後かに再度出現する.つまり,
リカレントニューラルネットワークは,回帰により,過去の情報を
保持する.時系列データなどのデータの並びを扱う能力を持つ
リカレントニューラルネットワークは,回帰により,過去の情報を
保持する.時系列データなどのデータの並びを扱う能力を持つ
機械学習
• 学習による上達の能力
• 訓練データを使用して,学習を行う
3
フィードフォワードとリカレントニューラルネッ
トワーク
4
フィードフォワード
ネットワーク
ある層の出力を,次の層が受
け取る
リカレントニューラルネッ
トワーク
回帰により,前回の実行時での
結果の一部が,次の実行に反映
される.
回帰
リカレントニューラルネットワークの動作イメー
ジ ①
5
デ
ー
タ
の
並
び
保持
使用
リカレントニューラルネットワークの動作イメー
ジ ②
6
デ
ー
タ
の
並
び
保持
使用
前回の実行時での
結果も使用
リカレントニューラルネットワークの動作イメー
ジ ③
7
デ
ー
タ
の
並
び
保持
使用
前回の実行時での
結果も使用
リカレントニューラルネットワークの応用
• 時系列データを用いた予測
データの並びを扱う
• 手書き文字認識
筆記の動きを扱う
• 音声認識
音の並びを扱う
• 「言葉」の理解,翻訳,テキスト生成,プログラ
ム生成
単語の並びを扱う
8
アウトライン
9
番号 項目
8-1 自然言語処理
8-2 単語の特徴ベクトル
8-3 自然言語を扱うニューラルネットワーク
8-4 演習
各自,資料を読み返したり,課題に取り組んだりも行う
全体まとめ
• 自然言語処理で行うこと:問答,要約,テキスト
生成などさまざま.
• 語の類似性を扱うため:
単語の特徴ベクトル ・・・ 単語を数値化(1つ
の単語を複数の数値の組で置き換えたもの)
• 文章は長い.単語の順が変わっても同じ意味とい
うこともある:
文章全体を単語の列として扱う.2017年発表の
Transformer などの技術がある.
10
多数の数値の組
iPhone
数値化
単
語
8-1. 自然言語処理
11
自然言語処理
• 人間の言葉(日本語や英語など)を,コンピュー
タが処理することを,自然言語処理という
• 人間の言葉を理解できる能力をもつアプリやサー
ビスの制作に役立つ
12
インターネットでの検索では,人間の言葉を使うこ
とが当たり前に
13
「明日の天気は」で検索
検索結果
人間の言葉を理解し,
曲をかけたり,電気製品を制御したり
するスマートスピーカー
14
自然言語の処理の例
• 問答
• 要約
• テキスト生成
• 分類
• 翻訳
• 欠損の補充
• 文章の類似度
• 人間の言葉として正しいか正しくないかの判定
• 文法に関するもの(品詞,係り受け) など
15
翻訳(日本語から英語,英語から日本語)
16
DeepL 翻訳ツール https://www.deepl.com/ja/translator
翻訳
ワード,パワーポイントファイルの中から,
文字のデータを取り出すことも当たり前に
17
元のパワーポイントファイル
翻訳結果
DeepL 翻訳ツール https://www.deepl.com/ja/translator
文章からの画像の合成
18
I like chocolate
DALL-E mini のオンラインデモ
https://huggingface.co/spaces/dalle-mini/dalle-mini
元の文章
AI が生成した画像
まとめ
• 人間の言葉(日本語や英語など)を,コンピュータが
処理することを,自然言語処理という
• 自然言語処理には,さまざまな種類がある
主なもの
• 問答
• 要約
• テキスト生成
• 分類
• 翻訳
• 欠損の補充
• 文章の類似度
• 人間の言葉として正しいか正しくないかの判定
• 文法に関するもの(品詞,係り受け)
19
8-2. 単語の特徴ベクトル
20
【自然言語処理の課題①】
語の類似性を扱うこと
私の母は親切だ
私の母は優しい
私の母は思いやりがある
21
これらの単語は類似しているということを、
データをもとに裏付けること自体も課題
22
多数の数値の組
(ここでは 300個の数値)
単語を数値化し,単語の特徴ベクトルを得ている
iPhone
数値化
iPad
数値化
多数の数値の組
(ここでは 300個の数値)
単語 単語
数値と距離
23
10
9 100
近い
(距離: 1)
遠い
(距離: 90)
ベクトルと距離
24
近い
遠い
複数の数値の組(ベクトル)で考えることもある
1つの点が2個の数値の場合
5, 5
4, 4
10, 6
単語の特徴ベクトル
• 単語の特徴ベクトルは,単語を数値化したもの
このとき,複数の数値の組(ベクトル)を考える
• 意味の近い単語は近くになるようにする。
25
みかん
りんご
バス
単語の特徴ベクトル
どうやって,コンピュータが単語の特徴ベクトルを
得るか?
【分布仮説】
同じ文脈で出現する単語は、類似する意味を持つ
みかんは甘い りんごは甘い
みかんを食べた りんごを食べた
バスは速い
バスを探した
26
Harris, Z. (1954). Distributional structure. Word, 10(23): 146-162.
互いに
同じ文脈
違う文脈
27
Stefan Evert, Marco Baroni and Aslessanddro Lenci,
Distributional Semantic Models, Tutorial as NAACL-HLT 2010, 2010.
http://wordspace.collocations.de/lib/exe/fetch.php/course:acl2010:naacl2010_part1.slides.pdf
値は、2つの単語の共起頻度(共起する回数)
cat, pig
と傾向が似ている
ヒエログリフの ??? の単語は,何と似ているか?
(??? の単語の意味は、実は dog である)
どうやって,コンピュータが単語の特徴ベクトルを
得るか?
• 分布仮説,多数の文書データを使用
• 実在の文書データをそのまま利用できる。
• 特別な準備は不要(「国語辞典」を使うというよ
うな考え方ではない)
28
Word2vec
• 分布仮説,多数の文書データを使用して,単語の特
徴ベクトルを求める1手法.2013年発表
① Skip-Gram: 中心の単語から周辺の単語を予測するモデル
② CBoW (continuous bag-of-words): 周辺の単語から中心の
単語を予測するモデル
①あるいは②を用いる.多数の文書データを用いて,予測
精度を上げる.その結果,単語の特徴ベクトルが求まる.
29
Word2vec
• 意味の近い単語は近くになる
• 対立する意味の言葉の中間地点に、中間の意味の
単語が来るように
「angry」と「pleased」の中間地点に「unhappy」
30
Joo-Kyung Kim and Marie-Catherine de Marneffe. 2013.
Deriving Adjectival Scales from Continuous Space Word Representations.
In Proceedings of the 2013 Conference on Empirical Methods in Natural Language Processing, pages 1625–1630,
Seattle, Washington, USA. Association for Computational Linguistics.
まとめ
• 自然言語処理では,語の類似性を考慮することが大切
• 単語の特徴ベクトルは,単語を数値化したもの
このとき,複数の数値の組(ベクトル)を考える
• Word2vec など,分布仮説,多数の文書データを使用
して,単語の特徴ベクトルを求める方法がある
31
多数の数値
(ここでは 300個の数値)
iPhone
数値化
単語
8-3. 自然言語を扱う
ニューラルネットワーク
32
【自然言語処理の課題①】
語順が違っても扱えること
今日は晴れだが、明日も晴れだ。
明日は晴れだが、今日も晴れだ。
33
同じ意味の文章
自然言語を扱うニューラルネットワーク
【種類】
• リカレントニューラルネットワーク,LSTM やその
改良版
• Transformer (2017年発表) など
34
自然言語を扱うニューラルネットワーク
<文章> = 単語1 単語2 単語3
35
単語1 単語2 単語3
特徴
ベクトル
特徴
ベクトル
特徴
ベクトル
ニューラル
ネットワーク
自然言語を扱うニューラルネットワーク
<文章> = 単語1 単語2 単語3
36
単語1 単語2 単語3
特徴
ベクトル
特徴
ベクトル
特徴
ベクトル
ニューラル
ネットワーク
1
番
目
の
出
力
自然言語を扱うニューラルネットワーク
<文章> = 単語1 単語2 単語3
37
単語1 単語2 単語3
特徴
ベクトル
特徴
ベクトル
特徴
ベクトル
ニューラル
ネットワーク
2
番
目
の
出
力
自然言語を扱うニューラルネットワーク
38
単語1 単語2 単語3
特徴
ベクトル
特徴
ベクトル
特徴
ベクトル
ニューラル
ネットワーク
3
番
目
の
出
力
順々に処理される
(文章が長いときも同じ)
自然言語を扱うニューラルネットワーク
39
• 翻訳など,多くの自然言語処理を AI で行うときは,
教師あり学習である
コンピュータ
プログラム
列
訓練データ
文章
(単語の列)
Transformer
リカレントニューラルネットワークの欠点を克服す
るものとして,Transformer が 2017年提案された
• 列を入力とし,列を出力とする点などは,リカレ
ントニューラルネットワークと同じ
• リカレントニューラルネットワークの欠点を克服
するため,離れた単語間に依存関係を直接扱う
Attention の仕組みを導入
• リカレントニューラルネットワークにあった「回
帰」の仕組みは廃止
40
自然言語処理で,リカレントニューラルネットワークや LSTM を使うと,
保持できる情報が少なすぎるのが欠点.
(単語の特徴ベクトル1つ分の情報しか保持できないという考え方も)
長い文章を扱うのが困難であったり,精度が出なかったりする.
全体まとめ
• 自然言語処理で行うこと:問答,要約,テキスト
生成などさまざま.
• 語の類似性を扱うため:
単語の特徴ベクトル ・・・ 単語を数値化(1つ
の単語を複数の数値の組で置き換えたもの)
• 文章は長い.単語の順が変わっても同じ意味とい
うこともある:
文章全体を単語の列として扱う.2017年発表の
Transformer などの技術がある.
41
多数の数値の組
iPhone
数値化
単
語
8-4. 演習
42
Google Colaboratory の使い方概要 ①
43
Google Colaboratory ノートブック
コードセルの再実行や変更には,
Google アカウントでのログインが必要
実行
コードセル
テキストセル
コードセル
コードセル
• WEBブラウザでアクセス
• コードセルは
Python プログラム.
各自の Google アカウント
でログインすれば,
変更,再実行可能
Google Colaboratory の使い方概要 ②
44
実行
一番上のコードセルから順々に実行
実行
① 単語の特徴ベクトル,単語の類似度
1. 使用するページ:
https://colab.research.google.com/drive/1E86OSq90AyI1z-
ULE6hNoVmpCJ_7fCR8?usp=sharing
2. 必要な事前知識
• 単語の特徴ベクトルは,単語を数値化したもの
このとき,複数の数値の組(ベクトル)を考える
• Word2vec など,分布仮説,多数の文書データを使用して,
単語の特徴ベクトルを求める方法がある
3. 各自で行うこと
各自で説明、ソースコード、実行結果を確認する.
45
② 自然言語処理(問答、要約、テキスト生成)
(Transformer を使用)
1. 使用するページ:
https://colab.research.google.com/drive/1L9n5E0_BTRy1q0j
E1I2xT3MTuSpceVSY?usp=sharing
2. 必要な事前知識
Google Colaboratory の使い方
3. 各自で行うこと
• コードセルの1-③,2-③,3-④を書き換えることに
より、「自分の考えた文章」で、問答、要約、テキスト生
成を考えてみること
• 必ずしも成功するわけではない
• いろいろ試し「どういう場合には成功しそうか」、「どう
いう用途で本当に役に立ちそうか」を考察してみる 46

Más contenido relacionado

Más de kunihikokaneko1

mi-8. 人工知能とコンピュータビジョン
mi-8. 人工知能とコンピュータビジョンmi-8. 人工知能とコンピュータビジョン
mi-8. 人工知能とコンピュータビジョンkunihikokaneko1
 
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線mi-7. 学習と検証, 学習不足, 過学習, 学習曲線
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線kunihikokaneko1
 
mi-6. 画像分類システム
mi-6. 画像分類システムmi-6. 画像分類システム
mi-6. 画像分類システムkunihikokaneko1
 
mi-5. ディープラーニング
mi-5. ディープラーニングmi-5. ディープラーニング
mi-5. ディープラーニングkunihikokaneko1
 
mi-3. データサイエンス・AIの演習
mi-3. データサイエンス・AIの演習mi-3. データサイエンス・AIの演習
mi-3. データサイエンス・AIの演習kunihikokaneko1
 
mi-2. データサイエンス・AIの事例
mi-2. データサイエンス・AIの事例mi-2. データサイエンス・AIの事例
mi-2. データサイエンス・AIの事例kunihikokaneko1
 
mi-1. 人工知能の概要
mi-1. 人工知能の概要mi-1. 人工知能の概要
mi-1. 人工知能の概要kunihikokaneko1
 
Coding Standards of C++ について
 Coding Standards of C++ について  Coding Standards of C++ について
Coding Standards of C++ について kunihikokaneko1
 
co-3. サブクラス、継承
co-3. サブクラス、継承co-3. サブクラス、継承
co-3. サブクラス、継承kunihikokaneko1
 
co-2. メソッド定義と呼び出し
co-2. メソッド定義と呼び出しco-2. メソッド定義と呼び出し
co-2. メソッド定義と呼び出しkunihikokaneko1
 
co-1. クラスとメソッド
 co-1. クラスとメソッド co-1. クラスとメソッド
co-1. クラスとメソッドkunihikokaneko1
 
Visual Studio 2013 の起動とプロジェクトの新規作成
Visual Studio 2013 の起動とプロジェクトの新規作成Visual Studio 2013 の起動とプロジェクトの新規作成
Visual Studio 2013 の起動とプロジェクトの新規作成kunihikokaneko1
 
cp-15. 疑似乱数とシミュレーション
cp-15. 疑似乱数とシミュレーションcp-15. 疑似乱数とシミュレーション
cp-15. 疑似乱数とシミュレーションkunihikokaneko1
 
cp-14. ファイル処理
cp-14. ファイル処理cp-14. ファイル処理
cp-14. ファイル処理kunihikokaneko1
 

Más de kunihikokaneko1 (20)

mi-8. 人工知能とコンピュータビジョン
mi-8. 人工知能とコンピュータビジョンmi-8. 人工知能とコンピュータビジョン
mi-8. 人工知能とコンピュータビジョン
 
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線mi-7. 学習と検証, 学習不足, 過学習, 学習曲線
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線
 
mi-6. 画像分類システム
mi-6. 画像分類システムmi-6. 画像分類システム
mi-6. 画像分類システム
 
mi-5. ディープラーニング
mi-5. ディープラーニングmi-5. ディープラーニング
mi-5. ディープラーニング
 
mi-4. 機械学習
mi-4. 機械学習mi-4. 機械学習
mi-4. 機械学習
 
mi-3. データサイエンス・AIの演習
mi-3. データサイエンス・AIの演習mi-3. データサイエンス・AIの演習
mi-3. データサイエンス・AIの演習
 
mi-2. データサイエンス・AIの事例
mi-2. データサイエンス・AIの事例mi-2. データサイエンス・AIの事例
mi-2. データサイエンス・AIの事例
 
mi-1. 人工知能の概要
mi-1. 人工知能の概要mi-1. 人工知能の概要
mi-1. 人工知能の概要
 
kaneko202304.pptx
kaneko202304.pptxkaneko202304.pptx
kaneko202304.pptx
 
Coding Standards of C++ について
 Coding Standards of C++ について  Coding Standards of C++ について
Coding Standards of C++ について
 
co-3. サブクラス、継承
co-3. サブクラス、継承co-3. サブクラス、継承
co-3. サブクラス、継承
 
co-2. メソッド定義と呼び出し
co-2. メソッド定義と呼び出しco-2. メソッド定義と呼び出し
co-2. メソッド定義と呼び出し
 
co-1. クラスとメソッド
 co-1. クラスとメソッド co-1. クラスとメソッド
co-1. クラスとメソッド
 
Visual Studio 2013 の起動とプロジェクトの新規作成
Visual Studio 2013 の起動とプロジェクトの新規作成Visual Studio 2013 の起動とプロジェクトの新規作成
Visual Studio 2013 の起動とプロジェクトの新規作成
 
extern の意味
extern の意味extern の意味
extern の意味
 
cp-15. 疑似乱数とシミュレーション
cp-15. 疑似乱数とシミュレーションcp-15. 疑似乱数とシミュレーション
cp-15. 疑似乱数とシミュレーション
 
cp-14. ファイル処理
cp-14. ファイル処理cp-14. ファイル処理
cp-14. ファイル処理
 
cp-13. 構造体
cp-13. 構造体cp-13. 構造体
cp-13. 構造体
 
cp-12. 文字列
cp-12. 文字列cp-12. 文字列
cp-12. 文字列
 
cp-11. ポインタ
cp-11. ポインタcp-11. ポインタ
cp-11. ポインタ
 

ae-8. 自然言語処理(問答,要約,テキスト生成,単語の特徴ベクトル,単語の類似度)