Slide 1

Slide 1 text

著者が語る 「Python⾃然⾔語処理⼊⾨」のツボ ⽇本アイ・ビー・エム Watsonテクニカルセールス ⾚⽯ 雅典 2020年2⽉19⽇(⽔) ⽔曜ワトソンカフェvol.24

Slide 2

Slide 2 text

⾚⽯ 雅典 ⽇本IBM Data & AI 事業部 Watsonテクニカルセールス Executive IT Specialist 講演者紹介 【主な経歴】 1987年⽇本アイ・ビー・エムに⼊社。東京基礎研究所で数式処理システムの研究開発に従事する。 1993年にSE部⾨に異動し、主にオープン系システムのインフラ設計・構築を担当。 2013年よりスマーターシティ事業、2016年8⽉にワトソン事業部に異動し、今に⾄る。 現在は、Watson Studio / Watson OpenScaleなどデータサイエンス系製品の提案活動が主体。 いろいろな領域を幅広くやっているので、IT基盤系・アプリ開発・プログラム⾔語・SQLチューニングはもとよりWatsonや 機械学習、ディープラーニングまで⼀通り語れるのが⾃慢。 【社外講師】 ⾦沢⼯業⼤学⼤学院 ⻁ノ⾨キャンパス客員教授 「AI技術特論」講師 【著作】 書籍3冊執筆 (次ページ) この他雑誌や qiita (https://qiita.com/makaishi2) 執筆多数

Slide 3

Slide 3 text

書籍⼀覧 Watson Studioで始める機械学習・深層学習 https://www.amazon.co.jp/dp/4865941606/ 出版社: リックテレコム (2018/11/26) ISBN-13: 978-4865941609 Watson StudioのUIツールを使ったモデル開発の説明 最短コースでわかる ディープラーニングの数学 https://www.amazon.co.jp/pd/4296102508/ 出版社: ⽇経BP (2019/4/11) ISBN-13: 978-4296102501 ディープラーニングの数学的原理の解説書 現場で使える!Python⾃然⾔語処理⼊⾨ https://www.amazon.co.jp/dp/4798142689/ 出版社: 翔泳社 (2020/1/20) I SBN-13: 978-4798142685 Discovery、Knowledge StudioなどWatsonのテキスト処理APIの解説があります おかげさまで増刷決定! 引き続きご⽀援の程よ ろしくお願い致しま す。 本⽇の講演対象

Slide 4

Slide 4 text

IBM Blog 「DS & AI タレントインタビュー」として記事が出ています。 https://www.ibm.com/blogs/solutions/jp-ja/data_science_and_ai_akaishi-san/

Slide 5

Slide 5 text

Agenda 全体編 Chapter 2 テキストデータの⼊⼿⽅法 Chapter 3 Elasticsearchの設定⽅法 Chapter 4 NLU + Pythonで評判分析 Chapter 5 Word2Vecで単語をベクトル化

Slide 6

Slide 6 text

全体編

Slide 7

Slide 7 text

全体編 本書の特徴 ・Watsonとオープンソースを対等に扱っている ・Jupyter Notebook完全対応 (⼀部GUIを除く) ・Word2Vec / BERT

Slide 8

Slide 8 text

⽬次 オープンソース Watson Chapter 1 テキスト分析とは 1.1 テキスト分析の⽬的 1.2 テキスト分析の要素技術 Chapter 2 ⽇本語テキスト分析:前処理の勘所 2.1 テキストの⼊⼿ 2.2 形態素解析 Chapter 3 従来型テキスト分析・検索技術 3.1 係り受け 3.2 検索 3.3 ⽇本語の検索 3.4 検索結果のスコアリング 3.5 類似検索 Chapter 5 Word2VecとBERT 5.1 Word2Vecモデル概要 5.2 Word2Vecを使う 5.3 Word2Vec利⽤事例 5.4 Word2Vec関連技術 5.5 転移学習とBERT APPENDIX 1 実習で利⽤するコマンド類の導⼊ APPENDIX 2 Jupyter Notebookの導⼊⼿順 APPENDIX 3 IBMクラウドの利⽤⼿順 Chapter 4 商⽤APIによるテキスト分 析・検索技術 4.1 IBM Cloudにおけるテキスト分析系 APIの全体像 4.2 NLU(Natural Language Understanding) 4.3 Knowledge Studio 4.4 Discovery 4.5 Discoveryを使う 4.6 API経由でDiscoveryを使う 4.7 Discoveryによるランキング学習 4.8 APIを利⽤したDiscoveryのランキング 学習

Slide 9

Slide 9 text

Watsonとオープンソース テキスト分析に関する「機能地図」 0 OE 5LM t t r hpae r p p WcA c cpm ae S m hp ae S S ae g 2 + C F DM F C + + LM E 1 M 7 KL 6 , 8 55 j s , K N 0 82 6 :7 -E KL K IE L F vo t l

Slide 10

Slide 10 text

Jupyter Notebook完全対応 • Jupyter NotebookはオープンソースのPython開発環境。 • 結果を含めてファイルに残せるので、学習・検証環境に最適 • 本書のサンプルプログラムはすべてApacheライセンス。書籍 を買わなくても使いたい放題!

Slide 11

Slide 11 text

Word2Vec / BERT • テキスト分析系機械学習モデルとしてWord2Vecの実習あり • 最新モデルのBERTも紹介! BERT E [CLS] E 1 E [SEP] ... E N E 1 ’ ... E M ’ C T 1 T [SEP] ... T N T 1 ’ ... T M ’ [CLS] Tok 1 [SEP] ... Tok N Tok 1 ... TokM Masked Sentence A Masked Sentence B Pre-training NSP Mask LM Mask LM Unlabeled Sentence A and B Pair MNL

Slide 12

Slide 12 text

Chapter 2 テキストデータの⼊⼿⽅法

Slide 13

Slide 13 text

Chapter 2 テキストデータの⼊⼿⽅法 • テキスト分析をしようとして最初に困るのがサンプルテキスト の⼊⼿⽅法 • 英語であれば公開データセットがいくつかあるが、⽇本語の公 開データは意外と少ない • 本書の2.1節ではいろいろなテキストデータ⼊⼿⽅法を解説して いる

Slide 14

Slide 14 text

Chapter 2 テキストデータの⼊⼿⽅法 • 次のようなデータソースを使える • 著作権の切れた⼩説 (⻘空⽂庫) • Wikipedia (Wikipedia API) • PDF / Word (Tika API) • Web ページ (beautifulsoap4) • DBPedia (SPARQL)

Slide 15

Slide 15 text

Chapter 2 テキストデータの⼊⼿⽅法 • Wikipedia APIの例

Slide 16

Slide 16 text

Chapter 3 Elasticsearchの設定⽅法

Slide 17

Slide 17 text

Chapter 3 Elastic Searchの設定⽅法 • Elastic Searchは現在最も広く使われているオープンソースの 検索エンジン • しかし特に⽇本語を扱う場合、設定⽅法が意外に難しくわかり やすいガイドも少ない • 本書の3.3節では、特につまずきやすい⽇本語の設定について詳 しく説明している

Slide 18

Slide 18 text

Chapter 3 Elastic Searchの設定⽅法 • 「アナライザ」に関しては⼀つ⼀つの部品の挙動から詳しく解説 入力テキスト Character Filter 文字単位の変換 (例) こゝろ → こころ Tokenizer 単語の区切りの決定 Character Filter Character Filter Character Filter Character Filter Token Filter 単語単位の変換 (例) 十一 → 11 出力トークン 出力トークン 出力トークン

Slide 19

Slide 19 text

Chapter 3 Elastic Searchの設定⽅法 • 「踊り字」の処理に関して ⽂字表記の「揺れ」をなくして、検索精度 を上げることが⽬的

Slide 20

Slide 20 text

Chapter 3 Elastic Searchの設定⽅法 • 「同義語」を定義した場合の検索の挙動 “スシ” “スシ”, ”すし”, “寿司”, “鮨” 私はすしが好きだ。 僕の好きな食べ物は寿司です。 スシが大好き! なんといっても鮨がいい。 "query": { "match": "content": ‘スシ’ } } 同義語定義前: 1件だけマッチ 私はすしが好きだ。 僕の好きな食べ物は寿司です。 スシが大好き! なんといっても鮨がいい。 "query": { "match": “content”: ‘スシ’ } } 同義語定義後: 4件すべてマッチ analyze 検索条件 検索条件 検索対象テキスト 検索対象テキスト analyze 「スシ」の検索⽂字列で、「すし」「ス シ」「寿司」「鮨」のどの検索対象⽂でも ヒットできるようにするための⼯夫。

Slide 21

Slide 21 text

Chapter 4 NLU + Pythonで評判分析

Slide 22

Slide 22 text

Chapter 4 NLU + Pythonで評判分析 • NLU Natural Language Understanding の略 • Discoveryの内部で呼び出され、⾼度な検索の⼿がかりとなる情 報を付加 (タグ付け) • 以下のような個別機能があるが、そのうち「評判分析」を紹介

Slide 23

Slide 23 text

Chapter 4 NLU + Pythonで評判分析 • Jupyter Notebookのサンプルコード • テキスト1とテキスト2に対して評判分析APIを呼び出している。 # テキスト1 (いい評判の例) text1 = 'さすがはソニーです。写真の写りもいい ですし、⾳がまた良いです。' # テキスト2 (悪い評判の例) text2 = '利⽤したかったアプリケーションは、残 念ながらバージョン、性能が合わず、利⽤できませ んでした。'

Slide 24

Slide 24 text

Chapter 4 NLU + Pythonで評判分析 • 分析結果 分析結果はscoreとlabelの2つで⽰される。 labelは次の3つの値 positive: 好意的 negative: 否定的 nutral: 中⽴ score 好意的・否定的の度合いを⽰す値 最⼤値: 1 (好意的) 最⼩値: -1 (否定的)

Slide 25

Slide 25 text

Chapter 4 NLU + Pythonで評判分析 • その他の機能 (エンティティ抽出) 「安倍⾸相はトランプ⽒と昨⽇、⼤阪の国際会議場で会談した。」

Slide 26

Slide 26 text

Chapter 5 Word2Vecで単語をベクトル化

Slide 27

Slide 27 text

Chapter 5 Word2Vecで単語をベクトル化 • Word2Vec 隠れ層が1層のシンプルな構造のニューラルネットワーク 1 0 0 0 : 0 0.1 0.3 0.01 : 0.2 0.01 0.1 0.4 : 0.1 0 0 0.01 : 0.05 0 0 0.02 : 0.01 : : : : : 0.3 0.1 0.05 : 0.01 0.1 0.3 0.01 : 0.2 V: 解析対象文書全体の単語数 (通常数万-数十万) N: 隠れ層のノード数 (通常 100-300) × = V個 N個 N個 appleに該当 する列 重み行列Wのうち appleに該当する行 appleに対応する 特徴量ベクトル ′ V個 (単語数) N個 (隠れ層ノード数) V個 (単語数)

Slide 28

Slide 28 text

Chapter 5 Word2Vecで単語をベクトル化 • 単語に対応する重みベクトルが重要 (例) man ‒ woman = king ‒ queen が成り⽴つ!!

Slide 29

Slide 29 text

Chapter 5 Word2Vecで単語をベクトル化 • 学習済みWord2Vecを利⽤して簡易分類器を作る例題 初期処理 変数宣言 テキスト取得 (2.1節参照) テキスト加工 (2.2節参照) 学習データ作成 学習済みWord2Vecロード (5.2節参照) Embedding Matrix作成 LSTMモデル作成 学習 予測・評価(検証データ利用) Embedding (数値データをベクトル化) LSTM (時系列データ分析用) Dense (全結合) 出力( 0 or 1) 入力 (テキストを数値化) 学習済みWord2Vec 重み行列をコピー (Embedding Matrix) Kerasによるカスタム機械学習モデル

Slide 30

Slide 30 text

Chapter 5 • BERTも紹介しています。 BERT BERT E [CLS] E 1 E [SEP] ... E N E 1 ’ ... E M ’ C T 1 T [SEP] ... T N T 1 ’ ... T M ’ [CLS] Tok 1 [SEP] ... Tok N Tok 1 ... TokM Question Paragraph Start/End Span BERT E [CLS] E 1 E [SEP] ... E N E 1 ’ ... E M ’ C T 1 T [SEP] ... T N T 1 ’ ... T M ’ [CLS] Tok 1 [SEP] ... Tok N Tok 1 ... TokM Masked Sentence A Masked Sentence B Pre-training Fine-Tuning NSP Mask LM Mask LM Unlabeled Sentence A and B Pair SQuAD Question Answer Pair NER MNLI

Slide 31

Slide 31 text

まとめ 「⾃然⾔語処理」で今どんなことができるのか知りたい⼈に最適。 オープンソースもWatsonも「⾃然⾔語処理」という観点で、同じ⽬ 線で理解できる。 Jupyter Notebook完全対応。実習コードを動かしながら読み進める ことがお勧め! Pythonの学習にも利⽤可能。 Word2VecやBERTといった最新AI技術もカバー。

Slide 32

Slide 32 text

参考リンク集 Amazon リンク https://www.amazon.co.jp/dp/4798142689 翔泳社リンク https://www.shoeisha.co.jp/book/detail/9784798142685 サポートgithub(サンプルコードのダウンロード可) https://github.com/makaishi2/python-text-anl-book-info/blob/master/README.md IBM ブログ(赤石紹介記事) https://www.ibm.com/blogs/solutions/jp-ja/data_science_and_ai_akaishi-san/ からあげ様ブログ https://karaage.hatenadiary.jp/entry/2020/01/31/073000

Slide 33

Slide 33 text

ご静聴ありがとうございました。