自然言語処理A

イントロダクション

自然言語処理A

今日の目的

  • 接続環境の確認
  • 後にホームページにアップされる動画・資料のためのパスワードを教える
  • 簡単な自己紹介

あいさつ

  • Bor Hodošček
    • “ボル”がファーストネーム ← ボルと読んでください
  • 今回はリモートが初め
    • 見づらい・聞こえないときがあればチャットや音声をいつでも流してください
  • 言語文化研究科 言語文化専攻 言語情報科学講座 とは?
  • 大学院等高度副プログラム『デジタルヒューマニティーズ』とは?
  • 自然言語処理とは?

授業の進み方

  • 当面の間(全学期かもしれない)対面授業はない
  • 録画されたビデオと資料を事前にみてZoomか他のビデオ会議システムで質疑応答・議論
  • 理論系と実践系に合わせ最終提出物を選択
    • リポート
    • Colabなどプログラムを組んだデータ解析と考察

来週までの課題

  • ホームページで授業用のパスワードを試し,この発表資料とビデオが見られるように確認する
    • 見られない場合は症状(エラー)をできるだけ詳しく説明してメールで連絡してください
  • アンケートを送ってください

自然言語処理

自然言語対人工言語

自然言語

  • 英語,日本語などの“言語”
  • 「人間によって日常の意思疎通のために用いられる、文化的背景を持って自然に発展してきた言語」 (Wikipedia)

人工言語

  • エスペラント語

  • ナヴィ語

  • クリンゴン語

形式言語

プログラミング言語

COBOL

PROCEDURE DIVISION.
    *> count the number of chars in string, store in ws-cnt1
    INSPECT WS-STRING TALLYING WS-CNT1 FOR ALL CHARACTERS.
    DISPLAY "WS-CNT1 : "WS-CNT1.
    *> count just the A characters
    INSPECT WS-STRING TALLYING WS-CNT2 FOR ALL 'A'.
    DISPLAY "WS-CNT2 : "WS-CNT2.

SQL

SELECT sum(payment) AS total_payments
FROM payments_table
WHERE payment > 50

プログラミング言語

計算式

 1 +  2  * 3
 1 + (2  * 3)
(1 +  2) * 3
(+ 1 (* 2 3))

Python

from transformers import pipeline

nlp = pipeline("sentiment-analysis")

for sentence in ["I hate you", "I love you"]:
    print(nlp(sentence))

まとめ

  • プログラミング言語では厳密に記述された文法をに基づき解釈され,(コンピュータの観点からすると)曖昧性はない
    • 間違った/曖昧な記述ではコンパイラーエラーなどを発する
  • Repl.itで様々なプログラミング言語をブラウザで体験できる

基礎的なテキスト処理

品詞タグ付与

自然言語の文法の処理

技術と応用例

  • 仮名漢字変換 (IME)
    • Atok, MS-IME, Google IME
  • 機械翻訳
  • 音声翻訳
  • 検索エンジン
    • Google, Bing, Baidu, Yandex
    • Linguee: パラレルコーパスの検索

技術と応用例

  • スペル訂正
  • 対話システム
  • 質問応答 / Q&Aシステム

知識ベース・言語資源

  • 人工知能では昔から人間が考えたルール(規則)などで言語知識を含む世界知識を記述してきた
  • WordNet, 検索インターフェース / Search interface
  • FrameNet, FrameGrapher
  • 言語の曖昧性・多様性(豊富な生産性)が原因ですべてのルールをカバーするのが非常に困難
    • ルール(規則)を大量のデータで機械学習する方向に移転