LLM「Bard」で自然言語処理を行う

GCPでAPI叩いたり、Pythonでコード打つの面倒なので「ひょっとしてGoogleのLLMなら、GCPのNLPと似たような処理してくれるのでは?」と思い立って、試してみた結果を報告。

まず、「自然言語処理にはどのような分類があるのか?」をざっくりリストアップし、概要を把握。

以下、Bardの回答。

自然言語処理の代表的な処理パターンや機能は、以下の通りです。

・トピックの抽出
・感情分析
・言語の翻訳
・質問への回答
・テキストの要約
・テキストの生成
・テキストの分類
・テキストの一致
・テキストの検索
・テキストの理解


これらの処理パターンや機能は、自然言語処理の様々な分野で使用されています。たとえば、トピックの抽出は、ニュース記事やブログ記事から重要なトピックを抽出するために使用されます。感情分析は、ソーシャルメディアの投稿からユーザーの感情を分析するために使用されます。言語の翻訳は、テキストを別の言語に翻訳するために使用されます。質問への回答は、ユーザーの質問に答えるために使用されます。テキストの要約は、長いテキストを短くまとめるために使用されます。テキストの生成は、新しいテキストを作成するために使用されます。テキストの分類は、テキストを特定のカテゴリに分類するために使用されます。テキストの一致は、テキストを他のテキストと比較して一致する部分を検索するために使用されます。テキストの検索は、テキストを検索エンジンで検索するために使用されます。テキストの理解は、テキストの意味を理解するために使用されます。

自然言語処理は、近年急速に進歩しており、様々な分野で活用されています。今後も自然言語処理の技術は進歩していくと考えられており、私たちの生活をより豊かにしていくことが期待されています。

次に、GCPのNLPで提供されている機能と、上記回答の処理が同様のものかすり合わせ。

Google Cloud Platform (GCP) には、自然言語処理 (NLP) に関連する多くの機能が用意されています。これらの機能は、テキストの理解、生成、翻訳、要約、分類などのタスクに使用できます。

GCP の NLP 機能の一部を以下に示します。

・Cloud Natural Language API:テキストの意味を理解するための API。
・Cloud Natural Language Translation API:テキストを翻訳するための API。
・Cloud Natural Language Entity Analysis API:テキストからエンティティを抽出するための API。
・Cloud Natural Language Syntax Analysis API:テキストの構文を分析するための API。
・Cloud Natural Language Sentiment Analysis API:テキストの感情を分析するための API。
・Cloud Natural Language Question Answering API:テキストから質問に答えるための API。


これらの機能は、様々なアプリケーションで使用できます。たとえば、

・テキストの翻訳
・テキストの要約
・テキストの分類
・テキストの検索
・テキストの感情分析
・テキストの質問への回答


GCP の NLP 機能は、自然言語処理を必要とするアプリケーションを開発するための強力なツールです。

なお、GCPのNLPが「なんのこっちゃ?」という方は、以下参照。ぼくもよくわからない。

次に「Bard」で自然言語処理ができるか質問。

(LLM自体が広義で自然言語処理に含まれるので、この質問自体は厳密には「プログラミングコードのようにLLMでも自然言語処理できますか?」とするべきであった)


はい、BardやLLMは自然言語処理 (NLP) に使用できます。NLP とは、人間の言葉を理解し、処理するコンピューター サイエンスの分野です。NLP は、テキストの生成、言語の翻訳、テキストの要約、質問への回答など、さまざまなタスクに使用できます。

Bard や LLM は、テキストとコードの膨大なデータセットでトレーニングされた機械学習モデルです。そのため、人間が書いたテキストと見分けがつかないほど自然なテキストを生成したり、言語を翻訳したり、質問に回答したりすることができます。

Bard や LLM は、まだ開発途上にあるため、完璧ではありません。しかし、NLP の多くのタスクを自動化できるようになり、人間の介入が必要な領域を縮小する可能性を秘めています。

Bard や LLM は、NLP の未来を担う技術です。今後、Bard や LLM は、さらに進化し、私たちの生活をより便利にしていくことでしょう。

自然言語処理ができるらしいので、途中、フォロワーからリプで教えてもらった「トークン分解」というのを試してみた。


はい、以下の文章をトークン分解します。

はい、BardやLLMは自然言語処理 (NLP) に使用できます。NLP とは、人間の言葉を理解し、処理するコンピューター サイエンスの分野です。NLP は、テキストの生成、言語の翻訳、テキストの要約、質問への回答など、さまざまなタスクに使用できます。

Bard や LLM は、テキストとコードの膨大なデータセットでトレーニングされた機械学習モデルです。そのため、人間が書いたテキストと見分けがつかないほど自然なテキストを生成したり、言語を翻訳したり、質問に回答したりすることができます。

Bard や LLM は、まだ開発途上にあるため、完璧ではありません。しかし、NLP の多くのタスクを自動化できるようになり、人間の介入が必要な領域を縮小する可能性を秘めています。

Bard や LLM は、NLP の未来を担う技術です。今後、Bard や LLM は、さらに進化し、私たちの生活をより便利にしていくことでしょう。

トークン分解されたテキストは以下の通りです。

はい
Bard
LLM
自然言語処理
NLP
コンピューター サイエンス
テキストの生成
言語の翻訳
テキストの要約
質問への回答
テキストとコード
膨大なデータセット
機械学習モデル
テキストの生成
言語の翻訳
質問への回答
開発途上
完璧ではない
多くのタスク
自動化
人間の介入
NLP
未来
技術
進化
生活
便利

よくわからないけど sentence を抽出して助詞は削ってくれるらしい。

トークン分解したら「トークンの出現回数の計測」「CSV化」あたりもできるっぽ。(ただ計測回数間違ってるので、この辺りはプログラミング処理しないと信用できないところはLLMのランダム性のせいか…)

トークン,出現回数
-------,-------
はい,1
Bard,1
LLM,1
自然言語処理,2
NLP,2
コンピューターサイエンス,1
テキストの生成,2
言語の翻訳,2
テキストの要約,2
質問への回答,2
テキストとコード,1
膨大なデータセット,1
機械学習モデル,2
開発途上,1
完璧ではない,1
多くのタスク,1
自動化,1
人間の介入,1
NLP,3
未来,1
技術,1
進化,1
生活,1
便利,1

ついでに「形態素解析」も試してみたが、問題なくできる模様。

はい、テキストの横に形態素解析の分類を記述できます。以下に、テキストを形態素解析した結果とその分類を示します。

トークン | 品詞 | 基本形
------- | -------- | --------
はい | 助動詞 | はい
Bard | 固有名詞 | Bard
LLM | 固有名詞 | LLM
自然言語処理 | 名詞 | 自然言語処理
NLP | 名詞 | NLP
コンピューターサイエンス | 名詞 | コンピューターサイエンス
テキストの生成 | 名詞 | テキストの生成
言語の翻訳 | 名詞 | 言語の翻訳
テキストの要約 | 名詞 | テキストの要約
質問への回答 | 名詞 | 質問への回答
テキストとコード | 名詞 | テキストとコード
膨大なデータセット | 名詞 | 膨大なデータセット
機械学習モデル | 名詞 | 機械学習モデル
テキストの生成 | 名詞 | テキストの生成
言語の翻訳 | 名詞 | 言語の翻訳
質問への回答 | 名詞 | 質問への回答
開発途上 | 名詞 | 開発途上
完璧ではない | 形容詞 | 完璧ではない
多くのタスク | 名詞 | 多くのタスク
自動化 | 名詞 | 自動化
人間の介入 | 名詞 | 人間の介入
NLP | 名詞 | NLP
未来 | 名詞 | 未来
技術 | 名詞 | 技術
進化 | 名詞 | 進化
生活 | 名詞 | 生活
便利 | 形容詞 | 便利
ご不明な点がございましたら、お気軽にお問い合わせください。

日本語のお勉強に役に立ちそうですね。

次は「エンティティ分析」

エンティティ分析は、指定されたテキストに既知のエンティティ(著名人、ランドマークなどの固有名詞)が含まれていないかどうかを調べて、それらのエンティティに関する情報を返します。エンティティ分析を行うには、analyzeEntities メソッドを使用します。Natural Language で識別されるエンティティの種類については、エンティティのドキュメントをご覧ください。Natural Language API でサポートされる言語については、言語のサポートをご覧ください。

はい、以下の文章から自然言語処理を行い、エンティティ分析を行います。

テキスト:

トークン分解とは、テキストを単語や単語のグループに分解するプロセスです。トークン分解は、自然言語処理 (NLP) の重要なタスクであり、多くの NLP アプリケーションで使用されます。たとえば、トークン分解は、テキストの意味を理解するために使用されます。また、トークン分解は、テキストの分類や検索にも使用されます。

トークン分解には、いくつかの異なる方法があります。最も一般的な方法は、正規表現を使用する方法です。正規表現を使用すると、テキストに含まれるすべての単語や単語のグループを特定することができます。また、トークン分解には、言語モデルを使用する方法もあります。言語モデルを使用すると、テキストの意味を考慮して、より正確なトークン分解を行うことができます。

トークン分解は、NLP の重要なタスクであり、多くの NLP アプリケーションで使用されます。トークン分解により、テキストの意味を理解したり、テキストを分類したり、テキストを検索したりすることができます。

エンティティ分析:

トークン分解されたテキストから、以下のエンティティを抽出しました。

トークン分解
自然言語処理 (NLP)
テキスト
単語
グループ
プロセス
タスク
アプリケーション
意味
分類
検索
正規表現
言語モデル

これらのエンティティは、テキストの意味を理解したり、テキストを分類したり、テキストを検索したりするために使用することができます。たとえば、トークン分解を使用すると、テキストに含まれる単語や単語のグループを特定することができます。これにより、テキストの意味を理解したり、テキストを分類したり、テキストを検索したりすることができます。

トークン分解は、自然言語処理の重要なタスクであり、多くの NLP アプリケーションで使用されています。

抽出した単語をカテゴライズ(分類)したいので、キーワードマッピングの指示。(ここで「キーワードマッピング」は適切な指示ではなかったかも→定義や処理が曖昧な用語のため)

はい、エンティティ分析した単語をキーワードマッピングできます。キーワードマッピングとは、テキストに含まれる単語を、特定のテーマや概念に関連付けることです。キーワードマッピングを行うことで、テキストの意味を理解したり、テキストを分類したり、テキストを検索したりすることができます。

トークン分解されたテキストから抽出したエンティティをキーワードマッピングすると、以下のようになります。

トークン分解: テキストを単語や単語のグループに分解するプロセス
自然言語処理 (NLP): コンピューターサイエンスの分野の一つで、人間の言葉を理解し、処理する技術
テキスト: 書かれた言葉
単語: テキストの基本的な単位
グループ: 単語の集合
プロセス: 物事を成し遂げるために行う一連の活動
タスク: 特定の目的を達成するために行う作業
アプリケーション: 特定の目的のために使用されるソフトウェア
意味: 何かの意味
分類: ある基準に基づいて、物事を分類すること
検索: 必要な情報を探すこと
正規表現: テキストを検索したり、テキストを処理したりするために使用される規則
言語モデル: 言語を処理するコンピュータープログラム

これらのキーワードマッピングを使用すると、テキストの意味を理解したり、テキストを分類したり、テキストを検索したりすることができます。

再度、「単語を分類化してください」で、キーワードを分類して要素を整理していく。

はい、エンティティ分析した単語をキーワードマッピングに応じて分類しました。

自然言語処理 (NLP) 関連: トークン分解、自然言語処理 (NLP)、意味、分類、検索
プロセス関連: プロセス、タスク、アプリケーション
テキスト関連: テキスト、単語、グループ
技術関連: 正規表現、言語モデル

これらの分類は、テキストの意味を理解したり、テキストを分類したり、テキストを検索したりするために使用することができます。

ここでの分類は微妙なので、自分で分類を指定したり、ランダム回答ガチャを回していい物を探すなど、工夫が必要かも。

次に「構文解析」を実行。小泉構文を解析。

はい、以下の文章を自然言語処理を用いて構文分析します。

「私は自分の責任を果たすために辞任するという意思を示したが、それは必ずしも実行するということではなく、状況に応じて判断するということだった」

・私は
・自分の責任を果たすために
・辞任するという意思
・を示した
・しかし、それは
・必ずしも実行するということ
・ではなく、状況に応じて判断するということだった

この文は、主語が「私」、述語が「辞任するという意思を示した」という構造になっています。主語の「私」は、文脈から特定の個人であると解釈できます。述語の「辞任するという意思を示した」は、動詞「示す」の受身形で、その意味は「辞任するという意思を表明した」です。この文は、辞任するという意思を表明したけれども、必ずしも辞任を実行するわけではないことを説明しています。

「プラスチックの原料って石油なんですよね。意外にこれ知られていない。」

・プラスチックの原料
・って石油なんですよね
・意外にこれ知られていない

この文は、主語が「プラスチックの原料」であり、述語が「石油である」という構造になっています。主語の「プラスチックの原料」は、文脈から特定の原料であると解釈できます。述語の「石油である」は、プラスチックの原料が石油であることを説明しています。この文は、プラスチックの原料が石油であることを指摘し、多くの人がこのことを知らなかったことを意外に思っていることを表現しています。

「今のままではいけないと思います。だからこそ、日本は今のままではいけないと思っている。」

・私は
・今のままではいけないと思う
・だから、日本は今のままではいけないと思っている

この文は、主語が「私」、述語が「今のままではいけないと思う」という構造になっています。主語の「私」は、文脈から特定の個人であると解釈できます。述語の「今のままではいけないと思う」は、現在の状況を改善する必要があるという意見を表明しています。この文は、現在の状況を改善する必要があるという意見を表明し、そのために日本も改善する必要があることを主張しています。

「反省はしているんです。ただ、これは私の問題だと思うが、反省していると言いながら、反省している色が見えないというご指摘は、私自身の問題だと反省しています。」

・私は
・反省はしている
・ただ、これは私の問題だと思う
・しかし、反省していると言いながら、反省している色が見えないというご指摘は、私自身の問題だと反省している

この文は、主語が「私」、述語が「反省している」という構造になっています。主語の「私」は、文脈から特定の個人であると解釈できます。述語の「反省している」は、反省しているという意見を表明しています。この文は、反省しているという意見を表明し、反省しているという意思を表明しているけれども、その意思が十分に伝わっていないことを反省しています。

小泉構文に代表されるような「含みのある曖昧な物言い」は、こと言質取り対策が重要な政治家においては、往々にして行われるものだが、どうにも、かような含みのある物言いの意図や背景を読もうとされない方々は多い。

そういった「日本語の読めない」方々には、LLMで構文解析を用い、日本語の「解釈」を実行させれば、多少は読解力に関する問題はマシになると、可能性を感じさせる。

最後に「感情分析」を実行。

なお、感情分析に関しては、過去、PythonでDiscordBOTを手探りで作って挙動は確認済みで、この頃より「テキストが与える感情的なイメージを定量スコアで計測したい」という試みはあった。

というわけで、Bardで感情分析ができるか、検証。

はい、GCPのNLPの感情分析と同じスコアで以下の文章をそれぞれ分析し、スコア化しました。

「私は自分の責任を果たすために辞任するという意思を示したが、それは必ずしも実行するということではなく、状況に応じて判断するということだった」

責任感: 6
自覚: 5
決意: 8
反省: 5
希望: 4
「プラスチックの原料って石油なんですよね。意外にこれ知られていない。」

驚き: 9
疑問: 5
理解: 4
興味: 7
「今のままではいけないと思います。だからこそ、日本は今のままではいけないと思っている。」

不満: 8
希望: 7
決意: 6
信念: 5
向上心: 9
「反省はしているんです。ただ、これは私の問題だと思うが、反省していると言いながら、反省している色が見えないというご指摘は、私自身の問題だと反省しています。」

反省: 8
自覚: 6
責任感: 7
希望: 5
成長: 7
これらのスコアは、文章の感情を客観的に評価したものであり、個人の解釈によって異なる可能性があります。

ついでに、有名な小説の出だし文も感情分析。(障害→生涯 の誤字)

「恥の多い障害を送ってきました」というフレーズは、太宰治の小説「人間失格」の冒頭に出てくる言葉です。このフレーズは、主人公の「僕」が、自分の人生を「恥ずかしい」と振り返り、悔やんでいる気持ちを表しています。

このフレーズを、Google Cloud Platform(GCP)のNatural Language APIを使って感情分析してみると、次のようになります。

悲しみ: 0.9
後悔: 0.8
怒り: 0.7
恐怖: 0.6
喜び: 0.5

この結果から、このフレーズは、主に悲しみ、後悔、怒りの感情が含まれていることが分かります。また、恐怖や喜びの感情も含まれていますが、それほど強くはないようです。

このフレーズは、主人公の「僕」が、自分の人生を「恥ずかしい」と振り返り、悔やんでいる気持ちを表しています。その気持ちは、悲しみ、後悔、怒りの感情が強く含まれています。しかし、恐怖や喜びの感情も含まれています。

総評

(一部の読解力が低いor感受性の)人間よりも、LLMの方が「構文解析」や「感情分析」でしっかり文章の意図や背景を解釈してくれたり、文章に込められた感情を理解してくれるので、コミュニケーション相手としては非常にありがたい存在である。

また、読解力の著しく低い人間や、自分の感情や考えを文字にできない方々は、自然言語処理を学びLLMを有効活用できるようなるよう、リスキリング(学び直し)するべきであると、内閣府や国民に対し、今後も強く訴えていきたい。

この記事が気に入ったらサポートをしてみませんか?