Contenu connexe Similaire à Python nlp handson_20220225_v5 (20) Python nlp handson_20220225_v512. 2.ご用意いただくもの
• Slide 理論
• Google Colab 実践(Code)
• 質疑応答
https://www.dory.app/c/066a9bd8/88a9ab8a_python-
/questions
質問等は、こちらに記入してください。
みなさんで、共有しましょう!
13. 3. 自己紹介
2008年 大学院:統計解析を副専攻
2011年 データマイニング
(マーケット・バスケット分析)
デ
ー
タ
ア
ナ
リ
ス
ト
(
4
.
5
年
間
)
2012年 Webマーケティング
(アクセスログ解析)
2014年 機械学習(文書分類)・
レコメンドエンジン
2016年 自然言語処理(文生成)
デ
ー
タ
サ
イ
エ
ン
テ
ィ
ス
ト
(
6
年
間
)
2019年 画像認識・
数理最適化(物体認識)
2021年 自然言語処理(常識推論・含意関係認識)
自然言語処理ができる副業とか探しております!
16. 5. セミナー本編開始
• 本勉強会の予定(仮案)
• (導入編:超入門)
TransformerでBERTを扱う?-超入門-
分散表現:Word2Vecなど
BERT導入: Masked model
• (基礎編:主要なタスク)
BERTによる文章の穴埋め
BERTによる文章分類
BERTによる固有表現抽出
BERTによる文章校正
T5による自動要約
GPT-2による文生成
• (応用・ビジネス化編)
(論文の紹介)小説の創作
(論文の紹介)含意関係認識
(論文の紹介)言語モデルの関係性の検討(アナロジーを題材に)
(論文の紹介)知識グラフによる推論とオントロジー
今回はここ!
(2/25 1回目)
次回はここ!
(3/18 予定 2回目
はんなりPythonの
本会)
20. 1. 自然言語処理と言語学
• 形態論では、形態素を組み合わせてどう語が形成されるのかを主に研究
• 統語論では、語と語を組み合わせてどう文を作られるのかを主に探るもの。
言語学
-形態論
-語用論
-統語論
-意味論
-(音声学)
形態論とは、
語がどういう形状(構造)をしているか、
語がどう作られるかを調べる分野。
例) 「日本語」
「日本語」という語は「日本」と「語」に分け
られます。
→「日本」をさらにわけることはできない。
→「日本」と「語」が意味の最小の単位となる。
Cf.形態素は、意味を持つ最小の単位のこと
21. 1. 自然言語処理と言語学
• 統語論では、語と語を組み合わせてどう文を作られるのかを主とする。
• 形態論では、形態素を組み合わせてどう語が形成されるのかを主とする。
言語学
-形態論
-語用論
-統語論
-意味論
-(音声学)
統語論とは、
どうやって話者の頭の中で語や句が配列
さて、文法的な文が作り出されるかを調
べる分野。≒日本語文法。
例)
○ 「私は日本語でこの記事を書いています」
×「で日本語私を記事で私をいます。書いて」
→文を形成する規則(統語規則)が頭の中にあ
り、それに基づいて無数の数の文を理解・産出
できる。これを明らかにする分野が統語論。
22. 1. 自然言語処理と言語学
• 形態論と統語論との近さは、意味論と語用論との関係に似ている。
• 上記のQAを、チャットボットや対話システムでどのように設定しますか!?
言語学
-形態論
-語用論
-統語論
-意味論
-(音声学)
意味論とは、
言語の意味を分析する分野。文法規則や
係り受け解析などの明示的な語句や記号
も含まれる。
例) Q:『時計持ってる?』
→A:『持っているよー』
意味論:言語そのものが持っている意味』を扱う。
→A:『20時だよ!』
cf. 語用論:言語使用者やコンテキストを含めるかどう
か。暗示的なものも対象とする。
32. 1. 自然言語処理と言語学
• 上記の5つを取り上げます。
• 次回以降のスライドで、1つ1つ、見てゆきます。
意味解析とは、
語の意味の定義のあり方を考える学問。
1) 概念による語の意味のとらえ方(内包と外延的定義)
2) 語の創造的な使用(直喩、隠喩(メタファー)、換喩(メトノ
ミー)
3) シソーラス(WordNet)
→語義曖昧性解消(bank(銀行)とbank(土手))
4) 同義語:ある語とよく共起する語をその関連語と考える。
→共起とは、同一文書内、同一文内、前後10語以内や係り受
け関係で同時に出現することを指す。
34. 1. 自然言語処理と言語学
• チャットボットや対話システムで、このような応答ができると、差別
化につながるかもです。
2) 語の創造的な使用(直喩、隠喩
(メタファー)、換喩(メトノミー、
提喩、擬人法))
2-1) 直喩
彼の心は氷のように冷たい。
2-2) 隠喩(メタファー)
彼女はダイヤモンドだ。
→ダイヤモンド⇒「輝くもの」、
「人気者」
2-3) メトニミー( metonymy、換喩)
近くに鳥居がある。
→特徴的な要素を取りあげて全体を
表す方法
鳥居だけで「神社」があることがわ
かる。
2-4) シネクドキ(synecdoche、
提喩)
繫忙期は、手が足りない。
→「手」は「人」を例えている)
全体を一部に例えたり、一部を
全体に例えたりする方法。
2-5) 擬人法(personification)
風がささやいている。
→人間以外のものやできごとを
人に見立てて表す方法。
37. 1. 自然言語処理と言語学
• ImageNetとの関係:Deep Learningでよく使われている画像ライブラリであ
るImageNetは、WordNet 3.0のsynsetで分類されている。→DALL-Eなどへ。
3) シソーラス(WordNet)
WordNet とは、
「類義語」「上位概念」「下位概念」などが
まとめられているDBに当たるもの。
WordNetの主なDB定義
・類義語 :
例)猫の類義語
→ ねんねこ, にゃんにゃん, 猫, キャット, ネコ
・上位概念・下位概念 :
例)猫の上位概念 → 動物
動物の下位概念 → 犬, 猫, 猿
図3.1 WordNet
のtable
51. 1. 自然言語処理と言語学
ニューラルネットワークを用いた自然言語処理
1)Word Embedding (意味のベクトル表現)とは、
ニューラルネットワークを用いて大規模なコーパスから語の意味のベク
トル表現を学習したもの。
・関連語に基づくベクトル表現
One-Hot vector:
分布仮説の分布類似度で、共起度の高い語(関連語)の集合で語の意味
を表現する。
語彙数に対応する高次元(数万~数十万次元)のベクトルと考えて、対象
語の意味である関連語の次元を1、それ以外を0とするベクトルで表現す
るもの。
(高次元)
りんご (0 0 1 0 0 0 0 0 0 1 0… … …)
みかん (0 0 1 0 0 0 1 0 0 0… … …)
お皿 (0 0 0 0 0 0 1 0… … …)
52. 1. 自然言語処理と言語学
ニューラルネットワークを用いた自然言語処理
1)Word Embedding (意味のベクトル表現)とは、
ニューラルネットワークを用いて大規模なコーパスから語の意味のベク
トル表現を学習したもの。
・ Word Embeddingのベクトル表現
Word Embeddingでは、語の意味を低次元(数十~数百次元)の密なベクトル
で表現する。
ソフトウェアのWord2vevを使って、日本語ウェブテキスト(1億文)から、
100次元のベクトルを学習し、上位頻度の1000語のベクトルを2次元に圧縮
し可視化したもの。
りんご (0.71 -1.21 0.55 …)
みかん (0.75 -1.560 0.47 …)
お皿 (0.27 1.76 -0.24 …)
王様 ー 男 + 女 = 女王
→意味の計算が、ベクトルの計算に相当することが多い。
54. 1. 自然言語処理と言語学
ニューラルネットワークを用いた自然言語処理
2)リカレントニューラルネットワーク(RNN)
x(t): 時刻tにおける入力を表す。
x(t): 語彙数の次元からなるベクトルで、入力単語に対応する次元のみが1で、その
他は0になっている。
中間層の値s(t): これまでの単語の情報を圧縮したものになっている。
時刻tの入力単語と時刻t-1の中間層の値s(t-1)から下記の式で計算される。
行列V: 「中間層に次元数×語彙数」、各列のベクトルは単語ベクトルをさす。
行列W: 1つ前の時刻の中間層の値を保持する領域から中間層への写像関数
U: 中間層から出力層への写像関数
g: ソフトマックス関数、全語彙を確率で正規化するために使われている。
y(t):において、ある語wに対応する次元はそこまでの文脈のもとでの、その語の出
現確率p(w | …, wt-1, wt)を表す。
𝑠 t = 𝜎(𝑉𝑥 𝑡 + 𝑊𝑠(𝑡 − 1))
※詳しくはこちらを参照ください。リカレントニューラルネットワーク
y t = 𝑔(𝑈𝑠 𝑡 )
55. 1. 自然言語処理と言語学
ニューラルネットワークを用いた自然言語処理
2)リカレントニューラルネットワーク(RNN)
入力系列として、「太郎 は お腹 」が与えられた後では、「が」に対応す
る次元はp(が | 太郎, は, お腹)を表し、「が」に対応する次元はp(が | 太郎,
は, お腹)を表します。
次のステップでは、s(t)が中間層の記録領域にコピーされて、時刻t+1で次
の単語を予測するときに利用されます。
V, W, U: 学習する重み
システムの出力ベクトルy(t)と実際に出現した単語の次元を1、それ以外を0とした
ベクトルとの誤差に基づいて重みを学習します。
→RNNは過去の時刻の情報に依存するが、10時刻以上離れた入力と出力の関係を
学習することは難しい。→LSTMが開発されています。
𝑠 t = 𝜎(𝑉𝑥 𝑡 + 𝑊𝑠(𝑡 − 1))
※ここでは、リカレントニューラルネットワークによる文生成をながめるにとどめ
ます。
y t = 𝑔(𝑈𝑠 𝑡 )
68. 1.感情分析(ポジネガによる文書分類)
1. “(Hugging Face )Transformers”の
libraryを用いて、感情分析を行います。
2. ここでの感情分析はポジティブかネガ
ティブかの2値分類となります。
入力:
“I love you”
“I hate you“
出力:
POSITIVE,
score: 0.9998
NEGATIVE,
score: 0.9991
英語での感情分析の例
69. 1.感情分析(ポジネガによる文書分類)
1. “(Hugging Face )Transformers”の
libraryを用いて、感情分析を行います。
2. ここでの感情分析はポジティブかネガ
ティブかの2値分類となります。
入力:
この商品を買ってよかった。
この商品を買って失敗した。
出力:
ポジティブ,
score: 0.98
ネガティブ,
score: 0.80
日本語での感情分析の例
73. 2.単語の穴埋め問題
入力:
朝食に[MASK]を
食べる。
出力:
score: 0.09675
パ ン', 'sequence':
朝食 に パン を 食べる 。
score: 0.0734
米', 'sequence': '朝食 に 米 を
食べる 。
score: 0.063
朝 食', 'sequence': '朝食 に 朝食
を 食べる 。
score: 0.0531
カ レ ー', 'sequence': '朝食 に
カレー を 食べる 。
score': 0.0523
ワ イ ン', 'sequence': '朝食 に
ワイン を 食べる 。
score: 0.063 朝 食', 'sequence': '朝食 に 朝食 を 食べる 。
⇒日本語的に、おかしいのも出力される!!致命傷になりうるレベルも出力される。
74. 2.単語の穴埋め問題
入力:
夕食に[MASK]を
食べる。
出力:
score: 0.093
野菜', 'sequence':
朝食 に野菜を 食べる 。
score: 0.0734
米', 'sequence': '夕食に 米 を 食
べる 。
score: 0.063
ワイン', 'sequence': '夕食にワイ
ンを 食べる 。
score: 0.0531
カ レ ー', 'sequence': '夕食に カ
レー を 食べる 。
score': 0.0523
ワ イ ン', 'sequence': '夕食にパ
ンを 食べる 。
3番目はコロケーションが弱い。
score: 0.063 ワイン‘, ’sequence‘: ’夕食にワインを 食べる 。
75. 2.単語の穴埋め問題
南カリフォルニア大学の機械への指摘
BARTやT5で生成された文
GPT2 A dog throws a frisbee at a football player.
UniLM Two dogs are throwing frisbees at each other.
BART A dog throws a frisbee and a dog catches it.
T5 Dog catches a frisbee and throws it to a dog.
図5-1-1 犬がフリスビーを投げる文生成と常識の指摘
・常識が欠けていると指摘されている。
→固有名詞と動詞のセットで,「ヒトが投げて,犬が受け取る」といった
論理的な一貫性が必要!
⇒Multi-Hop Reasoning