情報アクセスと知的処理
自然言語処理とその応用
本日のゴール
-
自然言語処理とは何かを知る
-
自然言語処理技術の利用について知る
自然言語とは
- 自然言語 (natural language)
- 人間が話す言語。文法は定まっておらず、時代とともに変化。
- 文法も語彙も定まっていないためコンピュータには扱いにくい。
- 人工言語 (constructed language)
- 人工的に作られた言語。文法は定義された通り。
- プログラミング言語 (programming language): Java, Python, C, etc.
- データ記述言語 (data description language): HTML(SGML/XML), JSON, etc.
自然言語における文法の変化
- 日本語の口語の例
- (主に)形容詞+「さ」+「ある」:「したさある」「欲しさある」
- 形容詞+接尾辞「み」:「やばみ」「うれしみ」
- ら抜き言葉:「見れる」「食べれる」
- ぜんぜん+肯定:「ぜんぜんいい」
- とても+肯定:「とてもいい」
自然言語処理
- 自然言語処理 (NLP: Natural Language Processing)
- コンピュータで自然言語を扱うための技術
- 人工知能と深い関連
- 実用性が高まり脚光を浴びている
- 応用分野
- かな漢字変換
- 機械翻訳
- 情報検索
- テキスト分類・クラスタリング
- 情報検索
- 情報抽出
- テキスト要約
- テキストマイニング
- 質問応答
- 対話システム
自然言語処理は学際的
学際的:複数の学問分野にまたがる領域
- 人工知能
- 知的システムによる言語表現の認識・生成
- 例: 推論しないと解釈・生成ができない表現
- 脳科学
- 記憶・思考の仕組み
- 例: 文脈の理解、人間が理解するには複雑すぎる構文の生成抑制
- 認知科学・認知言語学
- 人間による言語の理解
- 例: 身体性、マルチモーダル
- 言語学・計算言語学
- 言語の構造・意味・使われ方、言語使用に関する統計的分析
- 哲学・論理学
自然言語処理に分類される技術
研究者の研究発表から分野が見える。
- 言語処理学会
- ACL (Association for Computational Linguistics)
大量のテキストデータを使って作成(トレーニング)した
大規模言語モデル
(LLM: Large Language Model)を使って解くことが増えている。
かな漢字変換
自然言語処理技術の中でも最も身近で歴史のある技術。
- あらかじめ構築した辞書を利用
- 文脈による同音異義語選択
- プログラミングの話題: しこう → 指向
- 政治の話題: しこう → 施行
例: Google日本語入力
機械翻訳
昔から需要があるが、使い物になるようになったのは最近。
- 古典的モデル
- [源言語] --解析--> [意味] --生成--> [目的言語]
- 意味解析を正しく行うことは難しい (文脈と常識知識が必要) -> 翻訳の質が上がらない
- 統計的機械翻訳
- 学習用の対訳データから統計モデルを学習し、自動的に翻訳。
- ニューラル機械翻訳
いくら改善しても、人間の常識知識が必要な翻訳はできない
(ただし、過去の翻訳例に現れている常識知識は学習できることもある)
機械翻訳 - 例
Google翻訳
DeepL翻訳
ChatGPT / GPT-4
情報検索
情報検索においては、検索対象、検索質問とも言語で表現されるものとは限らない。
しかし、実際にはほとんどの情報検索システムが言語を扱うものである。
- 検索対象が言語
-
人類の歴史上、文字による記録は太古の昔から現在まで続けられてきており、
主要な情報蓄積手段の座は揺るがない。
- メタ情報が言語
-
画像や音楽などの非言語メディアが検索対象でも、検索インデックスは言語。
- 検索質問が言語
-
検索インデックスが言語になっていれば、検索質問も言語。
情報検索
文書を対象とした情報検索システムの基本(学習済み)
例: Web検索エンジン
ページの質はリンク構造解析により求めるが、
検索要求に対する適合度は言語処理技術に基づく。
テキスト分類・クラスタリング
- テキスト分類
- 分類があらかじめ与えられているもの
- すでに分類されているものから学習
- 例:
- テキストクラスタリング
- 分類自体が未知
- 似ているものをまとめて集合(クラスタ)をつくる
- 種類:
- ハードクラスタリング: どれか1つのクラスタに分類
- ソフトクラスタリング: 複数クラスタへの所属あり
- 参考: 最初に学ぶ クラスタリングの特徴と種類 (AUC+X 技術ブログ)
情報抽出
文章から取り出したい情報を抽出
- 例: 新聞記事から製品名、価格、スペックを抽出
- サブタスク
- 固有表現認識 ... 名前なのか?
- 数値情報の認識 ... 値なのか?
- 単位を伴う場合も。例: 100本
- 範囲や程度表現を伴う場合も。例: 100本以上、およそ100本
- 表現間の関係の認識
情報抽出の発展形: ツイートからの評判情報の抽出
企業でマーケティングに活用。商品や企業の評判を調査。
- 極性辞書 (positive/negative) を利用
- 単純な例: 面白い = positive、つまらない = negative
- 1単語だけでは判定できない
- 質が高い = positive, 価格が高い = negative
- 評価対象を含めた3つ組の情報が必要
実用化され、多くの企業で導入されている。
情報抽出の発展形: 映画レビューからの感情の抽出
映画の分類や推薦に活用可能。
- 感情はいろいろ
- 例: 楽しい、悲しい、怖い...
- 感情の分類
- 感情は語ではなく顔文字で表現されることも ^_^;
テキスト要約
- 文の選択・短縮
- 選択 = 重要文抽出
- 照応の解決が必要
- 「その」の指示先が選択文に含まれない場合、指示先に置き換え
- 短縮のための係り受け解析
- 新たな要約文の生成
- 文生成は不自然になりがち ... 言語モデルの発展により改善
例: 新幹線要約
新幹線の電光掲示板で使用されるニュース記事は冗長度の少ない高密度表現となっている。
例: Yahoo!知恵袋の見出し生成
クラウドソーシング(人手)を利用して正解データを作成。
質問応答
質問応答は対話の1形態。質問に対する答えを探して回答する。
- 質問応答の流れ
- 質問文解析、情報検索(文書の回答を含む部分を特定)、回答候補抽出、回答選択
- 質問のタイプ
質問・回答の組が大量にあれば、学習できるかもしれない。
例: Googleアシスタント、Siri など
対応できる質問タイプであれば回答が得られる。
例: コールセンター
コールセンターでは同じような問い合わせが頻繁にあるため、自動化が期待されている。
対話システム - 対話とは
対話とは
- 発話(utterance): 比較的短い発言 (演説ではない)
- 対話(dialogue): 発話を少人数でやり取りするもの (= 会話(conversation))
対話は情報伝達や合意形成の重要な手段。
対話における発話
- 発話の意味は文脈依存度が高い。(前の発話・場面・状況などに依存)
- 発話はある事態を表現しているだけでなく、聞き手に対する働きかけや自分の意思の表明
- 発話は行為の一種: 発話行為(speech act) = 依頼・勧誘・命令・約束・宣告...
対話システム
対話の分類
- タスク指向対話
- 飛行機の予約、問い合わせ対応といったタスクを遂行するための対話
- 話題の範囲が限定されるためシステムを構築しやすい
- 雑談対話 (オープンドメイン対話)
- 相手がどのような発話をするか想定できない
- 柔軟な対応が必要 (聞き返すなど)
対話システムの例
会話ボットからコールセンターのオペレータまで。
- タスク指向型
- 非タスク指向型
- 寂しい人の話し相手
- 雑談機能の付いたチャットボット
- 例: りんな (マイクロソフト)
大規模言語モデルを用いた生成AIではどちらも対応できる。