自然言語処理

◎ブログに書いた「自然言語処理」関係の記事一覧


2022年4月1日金曜日

MIT App Inventorは、従来型のコーディング無しにブロックを編集する方式で、スマホアプリの開発を格段に容易にしました。MITでは、この「ノーコーディング」をさらに進化させるべく、作りたいアプリを(自然言語で)喋るだけで、それを実現するApp Inventorプログラムを自動生成するプロジェクトAptlyを進めています。

2022年3月29日火曜日

前回の記事で、植物の「葉」に関する珍しい形態を探してみました。その際に、抽出した関連用語の出現回数を得ていました。そこで今回はこれを利用して、(どれだけ意味があるかは別として)葉に関するポピュラーな用語にはどんなものがあるかを、WordCloudで可視化してみました。前回記事の場合とは逆で、よく使われる用語ほど大きな文字で表されています。

2022年3月25日金曜日

植物図鑑や写真集を眺めていて、「葉」の形態が珍しいものを見つけたいと思いました。でも、闇雲に眺めていたのでは日が暮れてしまいます。そこで、植物の特性の説明文に対する自然言語処理の登場です。

2022年3月22日火曜日

現代の日本語の係り受け解析を利用していて、時に困ったなあ、という場面に出会います。恐らく、解析プログラムのバグというわけではなく、その解析手法では必然的にそうなるように思われます。当方は素人なので、本当のことは分かりませんが、そういった事例を書き留めておいて、後日の検討、対策に資することができれば良い。

2022年3月9日水曜日

先の記事の続編です。植物に関する記述文からjsonテキストを自動生成する際のさらに難しい例文に出会いました。これを記録しておき、係り受け解析の他にどのような情報(推論の枠組みや辞書類)が必要なのかを検討したい。

2022年3月1日火曜日

先の記事では、植物に関する記述文から、葉や花などに関する特徴を取り出し、構造化して表現するアプリを作成しました。しかしながら、対象とする文の表現は多様であり、まだまだ課題が多いことを改めて知りました。その一部をここで検討します。係り受け解析結果を、アプリ側でどのように解釈し利用するかだけでなく、(アプリに特有の)植物に関する知識も取り入れる方策が必要です。

2022年2月21日月曜日

「で」の利用10例の係り受け解析とその利用
先の記事では、「... で ...」の「で」が、どこに係るかを話題にしました。人間は違和感なく使っている場合でも、SuPar-UniDic [1]などの係り受け解析ではあまり適切な結果が得られない場合がありました。それをまとめて、係り受け解析を利用するアプリケーションでは、どのように対応するのかも、簡単に述べます。

2022年2月20日日曜日

植物の記述文から、花、葉、果実の特徴を抽出するアプリ
これまでの続きです。SuPar-UniDic [1]の係り受け解析を利用して、植物に関する記述文から、葉と花と果実に関して、特徴を取り出し、その記述文を(ある意味で)構造化して表現するアプリを作成しました。まだまだ不完全ですが、ある程度複雑な文章について、期待通りの結果が得られる場合が出てきましたので、以下に示します。

2022年2月16日水曜日

植物に関する記述文から、「どのような形や色の」花が「どのような位置や向きや時期に」咲くかに関する情報の自動抽出を行っています。そのために重要なのが、係り受け解析なのですが、その解析結果が想定通りにならない場合があります。これに関して、安岡孝一教授の解説記事([1][2][3])でご教示いただきたことを、忘れないようにここに纏めます。

2022年2月11日金曜日

前報の(こちら)と(こちら)は、GiNZA係り受け解析の利用でしたが、今回は、安岡孝一教授が公開している、BERTモデルを用いたSuPar-UniDic [1]に着目しました。これを利用して、植物に関する記述文から、「どのような形や色の」花が「どのような位置や向き時期に」咲くか、に関する情報を自動抽出するプログラムを作成しました。参考資料[2]から引用した例文8件に関して、妥当な結果を得ることができました。

2022年2月4日金曜日

前報では、GiNZA係り受け解析の利用でしたが、今回はさらに、「ルールベースマッチング」を試してみました。例題として、植物の花に関する簡単な記述から、その花についてのwhat flower?(どんな色や形なのか)とhow does it bloom?(どのように、どんな位置に、いつ咲く)という質問に自動応答できるよう、必要情報(単語)を抽出してみました。今回の例文では、ほぼ成功でしたが、多様な表現を含む自然言語処理の難しさも改めて感じました。


2022年2月1日火曜日

GiNZAによる係り受け解析とユーザ辞書の活用
自然言語処理の応用として、以前、係り受け解析器CaboChaを用いた記事(論文)を書きました。その後しばらく間があったのですが、今回は、GiNZAの係り受け解析を調べました。そのなかで、解析対象文章の種類によっては、GiNZAに含まれる解析器spaCyのSudachiPyユーザ辞書機能が非常に有効であることも確認しました。

2021年4月24日土曜日
国立国語研究所 学術情報リポジトリに論文が登録されました
以前のブログ記事にも書きましたが、国立国語研究所の「言語資源活用ワークショップ2020」で発表した以下の論文が、同所学術情報リポジトリに登録され,DOIが付与されました。(ワークショップ講演論文集全体がリポジトリに登録された結果、そうなったにすぎませんが。)

2021年1月24日日曜日

リカレント(再帰的)ニューラルネットワークの一種であるSeq2seqを理解する際に必要となるデータセットの準備です。前回に引き続き、分子生物学のDNA鎖を入力データとして利用しました。前回のものよりも学習が難しいと思われたデータ(ゲノムショットガン法の考え方に基づく)を採用したのですが、難なく学習を完了することができました。

2021年1月20日水曜日

リカレント(再帰的)ニューラルネットワークの一種であるSeq2seqは、ある時系列データを別の時系列データへ変換します。その理解のために、分子生物学に出てくるDNA鎖を入力データとして利用しました。長さ6の2つのDNAの連接とそれに必要な相補配列を5万セット学習させた結果、必要な相補配列を100%予測できるようになりました。


2021年1月1日金曜日
Attention機構を備えたニューラル機械翻訳の小実験
ニューラル機械翻訳、特にAttention付きの機能を学びたいと考え実験しています。これまでの日英翻訳に加え、今回は英日翻訳をやってみました。日英でも英日でも、全く同じプログラムで翻訳ができてしまうことに感動を覚えます。これが、Attention付きseq2seq(シーケンスtoシーケンス)の威力だと実感できました。

2020年12月17日木曜日
神奈川工科大学で講義:自然言語処理と機械学習(事後編)
神奈川工科大学_情報工学科向けの「入門:自然言語処理と機械学習」講義後の報告です。前回の続編になります。現状の小生にとって、今年のn大ニュース(n ≦ 3)入りとなりました。

2020年12月12日土曜日

日英翻訳実験を行う上で、手頃なサイズの日英対訳コーパスが必要です。ここでは、簡単なものですが独自に用意してみました。そして、これまでの記事に書いた方式(Attentionを用いた)での学習実験を行いました。約4万件の和文のうちからランダムに選んだ9割について対訳英文を学習させた結果、残りの1割の和文全てに対して、正解の英訳文を生成できました。その際の、LSTM隠れ層のノード数に対する和英翻訳正解率の違いを観察しました。

2020年12月8日火曜日

Attention機能を利用した日英翻訳実験において、コーパスサイズ(入力データ量)を前回の3倍(約1万件→3万件)に増やしたところ、全検査データに対して100%正解翻訳出力するまでのepoch数は1/3(27回→8回)に激減した。

2020年12月7日月曜日
Attentionを用いたニューラル日英翻訳の実験
Deep Learningでの重要度が高まっているAttention機能の仕組みを理解するため、独自作成の和英対訳コーパスを用いて、簡単な翻訳実験を行った。「はやぶさ2」の地球帰還ほどではないにしても、感動的な結果が得られた。極く限られた語彙だけを使う8,000件の日英対訳データの学習後には、例えば「盛夏に大きい赤い花が徐々に咲く」は、「large red flowers bloom gradually in midsummer」と自動翻訳された。

020年12月2日水曜日
神奈川工科大学で講義:自然言語処理と機械学習(事前編)
情報工学科2年生向けの「入門:自然言語処理と機械学習」の概要です。90分のオンライン講義用です。

2020年11月20日金曜日
機械翻訳:bankは銀行か土手か
機械翻訳に関する下記 [参考文献] を読んだことからヒントを得てこの記事を書いています。ただし、本内容は、小生の独自調査にもとづく見解です。

2020年11月7日土曜日
[算数 ≒ 数学 – 難しい + 楽しい]の解
自然言語処理では、単語の実数ベクトル空間への埋め込みが重要な役割を担っています。大規模コーパスのもとで、全単語ベクトルはすでに計算されていて(ツールWord2Vec等を用いて)、何種類かが公開されています。これによれば、単語ベクトルから、例えば、以下のような意味関係が成り立つことが分かっています。多くの書籍やweb解説にも掲載されています。

2020年11月6日金曜日
ニューラル機械翻訳方式の独自解釈
Google翻訳など、ニューラル機械翻訳技術は近年著しく発展して、実用レベルにあると言われています。実際に使用してみて、確かにそのように感じます。しかし、その処理内容の全貌はなかなか掴みきれません。一例ですが、Google翻訳で、以下の和文を入れてみると、次のように英文に翻訳されました。

2020年11月3日火曜日
国立国語研究所から届いたマスキングテープ
最近は、自然言語処理(機械学習は重要な手段の一つ)を勉強しています。それに不可欠なのが、言語コーパスです。言語コーパスとは、言語による文例を大規模に収集して、一定の処理を施した後に、各種の情報(形態素、構文情報等)を付加したデータベースと考えられます。国立国語研究所では、その主要な業務のひとつとして、多様なコーパス群を研究開発し、公開しています。

2020年10月4日日曜日
AIにおけるフレーム問題や状況依存視点も知りたい
AI(人工知能)における「フレーム問題」は重要な未解決問題のひとつと言われている。この問題は、WikiPedia[1]によれば、「有限の情報処理能力しかないロボットには、現実に起こりうる問題全てに対処することができない」という問題だという。

2020年9月8日火曜日
国立国語研究所「言語資源活用ワークショップ2020」(その2)
この記事は、前回記事の続きです。国立国語研究所「言語資源活用ワークショップ2020」(その1)

2020年9月7日月曜日
誰もが実感できる自然言語処理の発展
趣味で、Googleアシスタント(OK Google!)を利用しています。自然言語処理の応用は、自動翻訳だけではないようです。今回は、植物の特性や台風情報等を音声で与えて、所望の情報が得られるかどうか確認してみます。

2020年9月2日水曜日
国立国語研究所「言語資源活用ワークショップ2020」(その1)
国立国語研究所 コーパス開発センター主催の「言語資源活用ワークショップ2020」が、9月8日と9日に開催されます。ただし、新型コロナウィルス感染予防の観点からWeb開催です。情報系の研究者や技術者にとっては、少し分野が違いますが、ご参考までに(小生の理解の範囲で)概要を書きます。

2020年7月2日木曜日
係り受け解析は格フレーム辞書に強く依存するらしい
3つの係り受け解析器CaboCha、KNP、GiNZAを試用してみて、素人ながら分かってきたことが少しあります。それをここ簡単に書き留めておきたい。

2020年6月30日火曜日
日本語解析のためのCaboChaとKNP
植物の特性に関するJSONファイルの生成では、(いつの間にか)日本語の係り受け解析が主となってしまいました。これまで、CaboChaを使ってきましたが、他にKNP [1] もあるというご教示(ここにあるコメント)をいただき、KNPも試用しました。

2020年6月26日金曜日
日本語係り受け解析を有効活用するために(その2)
前回の(その1)では、約3,000件の短い文について、係り受け解析とJSON自動生成を試みました。そのノウハウに基づき、今回は、やや長めの植物記述文について検討します。

2020年6月24日水曜日
日本語係り受け解析を有効活用するために(その1)
これまでの日本語係り受け解析の利用において、人間には自然な文であっても、妥当な解析結果が得られない場合もありました。そのような典型例をここにまとめておき、今後の有効活用に資することとしたい。

2020年6月19日金曜日
植物に関する自由記述のJSON化とJavaラムダ式とストリーム(B)
前報(A)の続編です。(2020-6-21, [検索例(その3)]を追加しました。)

2020年6月14日日曜日
植物に関する自由記述のJSON化とJavaラムダ式とストリーム(A)
本記事は、(その3)の続編ですが、少しタイトルを変更しました。

2020年5月12日火曜日
植物に関する自由記述からJSONを自動生成(その1)
日本語の文は表現豊かで、自由度の高い書き方ができます。ですから、その解析はとても難しそうですが、近年その研究はかなり進んでいるようです。ここでは、そのうちの、係り受け解析(Cabocha等による)[2]を利用して、植物の特徴を一行で自由記述した文の内容を、自動的にJSONファイルに変換するJavaプログラムを作成しました。

2020年5月7日木曜日
初歩の雑談対話システムをAndroidで作ってみました(その1)
自然言語処理と機械学習をJavaで学ぶための優れた書籍があります。その中に、形態素解析を利用した雑談対話システム(Therapist BOTのような)作成の演習問題があります。その仕様に沿ったAndroidアプリを自作しました。具体的に作ることで、課題や発展の方向が見えてきます。

2018年12月24日月曜日
App Inventor for Android で SVM(サポートベクトルマシン)分類
以下は同じような心境とお考えください。「なぜ山に登るのか」「なぜスマホでSVM分類するのか」下記の書籍は、数多くある機械学習関連のうちの非常に優れた一冊です。これに刺激を受けて、その中にあった、SVMによる分類の例題を、Android向けにデモアプリとして動かしました。歴史上の人物の特徴量を与えて、その人を「政治家」か「非政治家」かに分類する例題です。

2018年11月9日金曜日
類似語検索:秋田-こまち-ザギトワ
単語の「類似度」は、曖昧さを残した用語ですが、人間が感じる(考える)類似度と、コンピュータが自然言語処理などで扱う類似度は、似て非なるものがあるようです。しかし、ここでは、後者、すなわち、コンピュータでの処理だけを扱います。

2018年11月2日金曜日
巨大コーパスの類似単語ベクトルをみる
自然言語処理には、巨大なコーパスが必要とされます。日本語では一例として、Wikipedia日本語版が使われています。さらに、この規模の約10倍にもなる超巨大コーパス(朝日新聞の直近34年間の主要記事)に出現する単語の単語ベクトルもあります。「朝日新聞単語ベクトル」です。このデータファイルの取得申請を行い、入手できました。それを今後利用するための準備として、以下に示すような類似語検索を試行しました。

2018年10月28日日曜日
私には嬉しい「Javaで自然言語処理」
機械学習全般に、そのソフトウェアの多くにはPythonが使われており、この分野ではそれが必須となっているようです。確かに、行列や数値計算やグラフ出力などで強力な機能を備えており、簡潔にプログラムを記述できます。ですから、私もPythonを使って学んだり、プログラムを書いたりしています。しかし、一方では、長年使ってきたJava言語の魅力は捨てがたいものがあります。そんななかで、小生が最近取り組んでいる「自然言語処理と機械学習」をJavaで学ぶという書籍が発売になりました。内容はとても精緻に書かれている印象があります。当然ながら、広く使われているMeCab、CaboCha、LIBSVM、word2vecなどのツールやライブラリも、Pythonの場合と同じように、Javaと連携しています。私にとっては、とても嬉しい書籍なので、これも学びます。

2018年10月27日土曜日
自然言語処理をMATLABで楽しむ(その3)
単語のベクトル表現により、単語間の加算や減算ができることを利用します。

2018年10月26日金曜日
自然言語処理をMATLABで楽しむ(その2)
テキストで表現された植物の特徴事典から、類似植物を見つけられるか?

2018年10月21日日曜日
自然言語処理をMATLABで楽しむ(その1)
ここでは、MATLABを使います。というのも、その最新版(R2018b)のText Analytics Toolboxでは日本語対応の機械学習機能も提供されているからです。もとのテキストの前処理や、解析結果のビジュアル化なども含んでいます。最後の方に、Word2Vec Word Embeddingを追加しました。

2018年8月29日水曜日
Deep Learningで岩田一男先生の英作文とGoogle翻訳を識別
高校初級〜中級の英作文問題について、Prof. Iwata(故 岩田一男教授)の英作文テキストにある英文例とGoogle翻訳による英訳を比較して、その相違を少し調べました。Prof. Iwataを知っている若い人はあまりいないかも知れませんが、著名な英文学者で、英語教育でも有名でした。先生の以下の著書(40年位前に出版された)にある例題を対象としました。

2018年7月9日月曜日
Google自動翻訳:leave no stone unturned
英語のひとつのidiomだけを取り上げて、Google翻訳の性能に言及するのはどうかと思いますが、ご参考までに書きます。最近のGoogle翻訳(英語<->日本語)はかなり優れたものなのですが、従来の英語辞書(紙あるいはデジタル版)の知識を全てとり入れた状態とはなっていないらしい。

2017年3月1日水曜日
あらためて驚きました3:Google Translate
Google Translate(グーグル翻訳)の素晴らしさについて以前書きました。また、その根幹となっている人工知能を改善するために、人手翻訳との比較や人手検証も重要な地位を占めているらしいことも書きました。

2017年1月22日日曜日
あらためて驚きました2:Google Translate
Google翻訳のすばらしさについて、下記の記事を書きましたが、やはり人間の力が必要ということです。ニューラルトランスレートという数理にもとづく高度な翻訳機構ですが、人間の自然な言語感覚や一般的な感性を自動的に生成することは困難なようです。こんなすばらしいGoogle Translate(グーグル翻訳)ですが、多くの利用者に人手による改善の協力を求めています。

2017年1月18日水曜日
あらためて驚きました:Google Translate
今月号の「情報処理」に、「ニューラル機械翻訳の衝撃」の記事があります。これを読んでなるほど!と思いました。少し前に、私は下記の記事を書きました。そこでのGoogle Translateの性能がかなり凄そう!と思ったことと合致しています。

2016年11月24日木曜日
Google TranslateをMIT App Inventorで試す
「グーグル、ニューラル機械翻訳の仕組みをブログで解説」という記事がWebに載っていました。Google Translateですね。それを試すには、すでにAndroidアプリがGoogle Playに公開されていますので、できます。しかし、ここでは、Google Translateを自分のAndroidアプリに組み込んでみます。