BLOGブログ

自然言語処理の常識を覆した会話型生成AIへの道のり[1] “文字とコンピュータ:人類が築き上げた情報のエコシステム”

目次

  1. コンピュータはことばを理解できる?
  2. 自然言語処理の歴史
  3. コンピュータが言語を理解するまで

コンピュータはことばを理解できる?

コンピュータと人間が自然な会話ができるようになると、どんなことができるようになるでしょうか?2022年11月に公開されたChatGPTというAIシステム、はその夢を現実に近づけました。ChatGPTは、自然言語処理(Natural Language Processing, NLP)[注釈1]という技術を使っています。NLPとは、人間が使う言葉(自然言語)をコンピュータで処理する技術のことです。このブログ記事では、NLPの仕組みについて、何回かに分けて解説していきたいと思います。

自然言語処理の常識を覆した会話型生成AIへの道のり[1] “文字とコンピュータ:人類が築き上げた情報のエコシステム”

自然言語処理の歴史

自然言語処理(NLP)は、人工知能(Artificial Intelligence, AI)[注釈2]の一分野として発展してきました。AIとは、人間の知能をコンピュータで再現する技術のことです。AIというと、どんなものをイメージされるでしょうか。読者の年代によって、頭の中に浮かぶイメージは違うかもしれません。例えば、HAL9000はスタンリー・キューブリックが監督したSF映画「2001年宇宙の旅」(1968)に登場するAIで、月面で発見された謎の物体モノリスが突如として発し始めた強力な電波の行く先である木星に向かうために建造された宇宙船ディスカバリー号に搭載されていました。ナイト2000は1980年代に放送された海外ドラマ「ナイトライダー」で、デビッド・ハッセルホフが演じる主人公マイケル・ナイトが運転するスポーツカーで、GM社のポンティアック・ファイヤーバード・トランザムにはK.I.T.T.(キット)と呼ばれるAIを搭載していました。ドラえもんは藤子・F・不二雄原作の漫画「ドラえもん」に登場する22世紀からやってきたネコ型ロボットです。しかしこれらの作品に登場するようなAIは、現実にはまだ存在しません。人間の知能を完全に再現することは非常に難しいからです。

NLPは人間の知能の中でも「言語」に関する部分を再現する技術で、その歴史は1950年代頃まで遡ります。当初は、機械翻訳や文法チェックなどの単純なタスクに取り組むだけでした。その後、1980年代から1990年代にかけて統計的な手法や機械学習という技術が発展し、これによりNLPはより高度なタスクに挑戦できるようになりました。例えば、1980年代にはELIZA[注釈3]という人工無能(AI)が開発され、人間との会話ができるようにしました。翻訳業界でお馴染みの翻訳メモリ[注釈4]のアイデアは1970年代に既に考えられていましたが、1980年代にさらに発展し、商業レベルで広く使われるようになったのは1990年代です。2000年代以降はインターネットやスマートフォンなどの普及により、NLPは日常生活に密接に関わる技術となりました。例えば、検索エンジンや音声アシスタント、チャットボットなどがそうです。2010年代に入ってからは深層学習(ディープラーニング、Deep Learning)[注釈5]という技術がNLPを進化させました。深層学習とは、極めて多層のニューラルネットワークを使ってビッグデータから複雑なパターンを学習する技術です。深層学習を使ったNLPでは、BERTやGPTシリーズといった強力なモデルが登場し、言葉を人間のように扱う能力が高まったことで、コンピュータは更により高度なタスクに対応できるようになったのです。

コンピュータが言語を理解するまで

では、コンピュータはどうやって自然言語を処理しているのでしょうか?ここでは、まず、コンピュータがどのように文字を扱うかを説明していきます。

人類と文字とコンピュータ

人類は、言葉を使ってコミュニケーションを行ってきましたが、言葉が最初にどのようにして発生したかは、未だに謎です。言語学者や考古学者は、様々な手がかりや証拠から、言葉の起源に関する仮説を立ててきましたが、確かな答えは見つかっていません。言葉は、音声や身振りで伝達されるために、その痕跡が残らないからです。しかし、人類が言葉を記録するために発明した文字は、その歴史や進化を辿ることができます。文字は、人類史において重要な発明であり、文化や文明の発展に大きな影響を与えました。

文字とは何でしょうか?文字とは、言葉や思考を表すための規則的な記号体系です。文字は、様々な形式や方法で表現されますが、一般的には、以下のような分類がされます[注釈6]

  • 表意文字:記号がそのまま意味を表す文字です。例えば、中国語の漢字やエジプト語のヒエログリフなどです。
  • 表音文字:記号が音声を表す文字です。例えば、アルファベットやカタカナなどです。
  • 表音意味文字:記号が音声と意味の両方を表す文字です。例えば、日本語のひらがなやマヤ語の象形文字などです。

文字は、どこでどのようにして発明されたのでしょうか?文字の起源についても、様々な仮説がありますが、一般的には、以下のような段階を経て発展したと考えられています[注釈7]

  • 原文字:最も原始的な記号であり、数や物品を記録するために使われました。例えば、石や木片に刻んだ線や点などです。
  • 象形文字:物事や動物などを絵で表した記号です。例えば、牛や鳥などを描いた絵文字などです。
  • 指事文字:象形文字から派生した記号であり、抽象的な概念や関係を表しました。例えば、上や下などの方向を示す矢印などです。
  • 表意文字:指事文字から派生した記号であり、音声とは関係なく意味を表しました。例えば、漢字の一部などです。
  • 表音文字:表意文字から派生した記号であり、音声と関係するようになりました。例えば、アルファベットやカタカナなどです。

文字は、人類の歴史において、様々な文化や地域で独立して発明された可能性があります。最も古いとされる文字体系は、紀元前4千年紀後半にメソポタミアで発明された楔形文字[注釈8]であると言われています。これは、粘土板に尖筆で刻んだ記号で、当初は数や物品を記録するために使われましたが、次第に音や意味を表すようになりました。楔形文字は、メソポタミア文明の発展に伴って多様化し、シュメール語やアッカド語などの言語に適応されました。楔形文字は、約3,000年間にわたって使用され、その影響はペルシャやエジプトなどの周辺地域にも及びました。

楔形文字と同時期にエジプトでは、象形文字(ヒエログリフ[注釈9])が発達しました。これは、壁画や石碑などに彫られた絵や記号で、表意的や表音的な要素を持ちました。ヒエログリフは、書記の特権であり、王朝の維持に重要な役割を果たしました。ヒエログリフは、紀元前4世紀頃にギリシャ人がエジプトを征服した後に衰退してしまい、その解読法は失われました。しかし、1822年にフランス人学者ジャン=フランソワ・シャンポリオンがロゼッタ・ストーンという石碑を解読することで、ヒエログリフの謎が解かれたのです。

中国で紀元前16世紀頃に発明された漢字は、亀の甲羅や骨に刻まれた記号から発展したと考えられますが、その起源は不明です。表意的な要素が強い特徴を持つ漢字は、音声との対応関係が複雑です。中国文明の発展と共に漢字も変化し、様々な書体や異体字が生まれました。また、漢字は日本や朝鮮半島などの周辺地域にも伝播し、それぞれの言語や文化に適応されました。

インダス文明では、紀元前3千年紀にインダス文字[注釈10]が使われましたが、この文字は未だに解読されていません。その性質や内容は依然として不明です。印章や陶器などに刻まれた記号であるインダス文字は、原文字から発展した可能性があると言われています。約400種類の文字から成るインダス文字は、表意的や表音的な要素を持つと考えられています。しかし、インダス文字がどのような言語を表しているのか、またどのように読むべきなのかは、現在も論争の的となっています。

このように、人類は長い歴史の中で文字を残そうと様々な努力を重ねてきましたが、コンピュータは、文字を直接読み書きすることができません。コンピュータは、数字(より具体的には0と1の組み合わせ)でしか情報を表現できないからです。コンピュータには、文字と数字の対応関係を定めた規則が必要になります。そこで、文字に固有の識別番号(文字コード)を与えて、区別できるようにしました。この規則は、文字エンコーディングや文字エンコードと呼ばれています。例えば、英語のアルファベットや数字などは、7ビットで128種類の文字を表すASCII(アスキー)という文字エンコーディングが広く使われています。ASCIIでは、Aは65、Bは66、0は48というように番号が割り当てられています。しかし、漢字やひらがななどの字種が多い日本語は、ASCIIで表すことができないので、日本では、1文字を2バイト(16ビット)で表すJIS(ジス)コードやシフトJISコード、EUC(イーユーシー)コードなどが作られました。つまり、同じ日本語でも、JISコードとシフトJISコードでは、文字に割り当てられる番号が違います。これが、文字化けという現象が起こる理由の1つです。そして、世界には、日本語以外にも様々な言語や文字があるので、それぞれの言語や文字に対応した文字エンコーディングを作ると、互換性や変換の問題があちこちで生じることになってしまいます。そこで、世界中の全ての言語や文字に番号を割り当てることを目指したUnicode(ユニコード)という文字エンコーディングが開発されました。Unicodeでは、1文字を2バイトまたは4バイトで表し、約14万種類の文字に番号が割り当てられています。Unicodeは、多くのオペレーティングシステムやプログラミング言語で採用されており、多言語の表示や処理に寄与しています。

次回へ続く

自然言語処理の常識を覆した会話型生成AIへの道のり[2] “文字が描く最初の世界”

出典

この記事を書いた人

亀谷 展

亀谷 展

株式会社サン・フレアのリサーチサイエンティスト。
深層学習による自然言語処理やビッグデータ処理を担当。

お問い合わせはこちら

サン・フレアはお客様にご満足いただける翻訳サービスを提供するため、これからも最新のテクノロジーを追い求めます。

お問い合わせフォームへ
一覧に戻る
DOWNLOAD FAQ