Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Python自然言語-赤石-2020-0219-3.pdf

makaishi2
February 19, 2020

 Python自然言語-赤石-2020-0219-3.pdf

makaishi2

February 19, 2020
Tweet

More Decks by makaishi2

Other Decks in Business

Transcript

  1. ⾚⽯ 雅典 ⽇本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) 執筆多数
  2. 書籍⼀覧 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の解説があります おかげさまで増刷決定! 引き続きご⽀援の程よ ろしくお願い致しま す。 本⽇の講演対象
  3. Agenda 全体編 Chapter 2 テキストデータの⼊⼿⽅法 Chapter 3 Elasticsearchの設定⽅法 Chapter 4

    NLU + Pythonで評判分析 Chapter 5 Word2Vecで単語をベクトル化
  4. ⽬次 オープンソース 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のランキング 学習
  5. 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
  6. 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
  7. Chapter 3 Elastic Searchの設定⽅法 • 「アナライザ」に関しては⼀つ⼀つの部品の挙動から詳しく解説 入力テキスト Character Filter 文字単位の変換

    (例) こゝろ → こころ Tokenizer 単語の区切りの決定 Character Filter Character Filter Character Filter Character Filter Token Filter 単語単位の変換 (例) 十一 → 11 出力トークン 出力トークン 出力トークン
  8. Chapter 3 Elastic Searchの設定⽅法 • 「同義語」を定義した場合の検索の挙動 “スシ” “スシ”, ”すし”, “寿司”,

    “鮨” 私はすしが好きだ。 僕の好きな食べ物は寿司です。 スシが大好き! なんといっても鮨がいい。 "query": { "match": "content": ‘スシ’ } } 同義語定義前: 1件だけマッチ 私はすしが好きだ。 僕の好きな食べ物は寿司です。 スシが大好き! なんといっても鮨がいい。 "query": { "match": “content”: ‘スシ’ } } 同義語定義後: 4件すべてマッチ analyze 検索条件 検索条件 検索対象テキスト 検索対象テキスト analyze 「スシ」の検索⽂字列で、「すし」「ス シ」「寿司」「鮨」のどの検索対象⽂でも ヒットできるようにするための⼯夫。
  9. Chapter 4 NLU + Pythonで評判分析 • NLU Natural Language Understanding

    の略 • Discoveryの内部で呼び出され、⾼度な検索の⼿がかりとなる情 報を付加 (タグ付け) • 以下のような個別機能があるが、そのうち「評判分析」を紹介
  10. Chapter 4 NLU + Pythonで評判分析 • Jupyter Notebookのサンプルコード • テキスト1とテキスト2に対して評判分析APIを呼び出している。

    # テキスト1 (いい評判の例) text1 = 'さすがはソニーです。写真の写りもいい ですし、⾳がまた良いです。' # テキスト2 (悪い評判の例) text2 = '利⽤したかったアプリケーションは、残 念ながらバージョン、性能が合わず、利⽤できませ んでした。'
  11. Chapter 4 NLU + Pythonで評判分析 • 分析結果 分析結果はscoreとlabelの2つで⽰される。 labelは次の3つの値 positive:

    好意的 negative: 否定的 nutral: 中⽴ score 好意的・否定的の度合いを⽰す値 最⼤値: 1 (好意的) 最⼩値: -1 (否定的)
  12. 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個 (単語数)
  13. Chapter 5 Word2Vecで単語をベクトル化 • 学習済みWord2Vecを利⽤して簡易分類器を作る例題 初期処理 変数宣言 テキスト取得 (2.1節参照) テキスト加工

    (2.2節参照) 学習データ作成 学習済みWord2Vecロード (5.2節参照) Embedding Matrix作成 LSTMモデル作成 学習 予測・評価(検証データ利用) Embedding (数値データをベクトル化) LSTM (時系列データ分析用) Dense (全結合) 出力( 0 or 1) 入力 (テキストを数値化) 学習済みWord2Vec 重み行列をコピー (Embedding Matrix) Kerasによるカスタム機械学習モデル
  14. 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