FC2ブログ

誰もがやさしく微笑みあえる、その日まで

東日本大震災で被災された方々、心を痛めた方々に送ります。

Python(パイソン) ~その48:『Chainerによる実践深層学習』の紹介~



 今回は、「Python(パイソン) ~その48:『Chainerによる実践深層学習』の紹介~」です。

  Python (パイソン) はプログラミング言語です。
 オランダ人のグイド・ヴァンロッサムさんが開発しました。
 名前の由来は、イギリスのテレビ局 BBC が製作したコメディ番組『空飛ぶモンティ・パイソン』です。
 Pythonには次のような特徴があります。
  ・とても読みやすい文法
  ・直感的なオブジェクト指向
  ・広範囲に及ぶ標準ライブラリ
 詳細は、以下のリンクをご参照ください。
  http://www.python.jp/about/
  https://ja.wikipedia.org/wiki/Python

 ※注1
「オブジェクト」は、「データと処理の集まり」です。
「オブジェクト指向」は、「オブジェクト同士の相互作用としてシステムの振る舞いをとらえる考え方」です。
 以下のリンクをご参照ください。
  http://tdak.hateblo.jp/entry/20140406/1396773476

 ※注2
 「ライブラリ」は、一種の「道具箱」です。
 様々なライブラリがPythonで記述されており、テキスト処理、画像処理、音声処理、WEBから情報収集、機械学習など様々な機能を持ったライブラリ(道具箱)を利用することができます。
 →SB Creativeから出版された『Python「超」入門』p158を参照しました。
  本にご興味がある方は下記のリンクをご覧ください。
  http://www.sbcr.jp/products/4797384406.html



 私は人工知能を理解するために、Pythonを学びます。
 Pythonには、人工知能に関連したライブラリが豊富にあります。
 以下の順番で学ぶ予定です。
  ①Pythonの文法を理解し、プログラムを書けるようになること
  ②Pythonの各種ライブラリを理解し、使いこなすこと
  ③人工知能に関連したライブラリを理解し、使いこなすこと
  ④現実の問題を人工知能を使って解くこと





 今回は、オーム社から発刊された『Chainerによる実践深層学習』(著者:新納浩幸様)を紹介します。
 この本には、深層学習を用いて自然言語処理を行う方法について、基礎的なことが丁寧に書かれています。
 本の中のソースコードは下記のリンク先からダウンロード可能です。
  →http://www.ohmsha.co.jp/data/link/978-4-274-21934-4/
  →「本ファイルは、本書をお買い求めになった方のみご利用いただけます。本書をよくお読みのうえ、ご利用ください。また、本ファイルの著作権は、本書の著作者である、新納浩幸氏に帰属します」とのことです。
  →ソースコードの意味や実行方法は、本をご参照ください。


 Chainerは、ニューラルネットワークの計算および学習を行うためのオープンソースソフトウェアライブラリです。
 Preffered Networks社が開発しました。
 複雑なニューラルネットワークの構築を必要とする深層学習で主に用いられています。
 Chainerの特徴は、「Flexible(柔軟性)」「Intuitive(直感的)」「Powerful(高機能)」です。
 詳細は、下記のリンクをご参照ください。
  →https://chainer.org/
  →https://www.ossnews.jp/oss_info/Chainer
  →https://ja.wikipedia.org/wiki/Chainer


 Chainerには豊富なチュートリアル(使用方法に関する技術的な説明書)があるので、コードを書いてプログラムを動かしながら、Chainerの使い方を学ぶことができます。
 詳細は、下記のリンクをご参照下さい。
  →https://play.chainer.org/book/1/1/1
  →https://docs.chainer.org/en/stable/tutorial/index.html



 今回は、『Chainerによる実践深層学習』の第7章「Recurrent Neural Network」を紹介します。
 第7章では、「RNN(recurrent neural network)」を用いて言語モデルを求める例が挙げられています。
 「RNN」は、数値の時系列データなどのシーケンシャルデータのパターンを認識するように設計されたニューラルネットワークのモデルです。。
 詳細は、下記のリンクをご参照ください。
  →https://deepage.net/deep_learning/2017/05/23/recurrent-neural-networks.html

 「n-gram言語モデル」は、単語列[w1, w2, . . . , wi]が与えられたときに、
 その後に単語 x がくる確率 P(x|w1, w2, . . . , wi) を、
 すぐ前の n − 1 個の単語を条件とした確率として計算します。
 詳細は、下記のリンクをご参照ください。
  →http://www2.nict.go.jp/astrec-att/member/mutiyama/corpmt/6.pdf

 本を参照して、以下を実行しました。
 ・「RNN」を用いて言語モデルを求めるために、オーム社のウェブサイトからダウンロードした"rnn.py"を実行

 ・言語モデルを評価するために、オーム社のウェブサイトからダウンロードした"eval-rnn.py"を実行 
  ほぼ本と同じ結果が得られ、学習する過程を確認できた。
python eval-rnn_epoch05.py ../myrnn-0.model
 →201.62623994807782
python eval-rnn_epoch05.py ../myrnn-1.model
 →181.84759840145273
python eval-rnn_epoch05.py ../myrnn-2.model
 →164.55336727454454
python eval-rnn_epoch05.py ../myrnn-3.model
 →160.3461752387527
python eval-rnn_epoch05.py ../myrnn-4.model
 →158.48824485157095

 ・「LSTM」、「GRU」についても、ほぼ同様な結果が得られた。



 次回も、『Chainerによる実践深層学習』を紹介します。



 以上、「Python(パイソン) ~その48:『Chainerによる実践深層学習』の紹介~」でした。




スポンサーサイト



テーマ:プログラミング - ジャンル:コンピュータ

Python(パイソン) ~その47:『Chainerによる実践深層学習』の紹介~


 今回は、「Python(パイソン) ~その47:『Chainerによる実践深層学習』の紹介~」です。

  Python (パイソン) はプログラミング言語です。
 オランダ人のグイド・ヴァンロッサムさんが開発しました。
 名前の由来は、イギリスのテレビ局 BBC が製作したコメディ番組『空飛ぶモンティ・パイソン』です。
 Pythonには次のような特徴があります。
  ・とても読みやすい文法
  ・直感的なオブジェクト指向
  ・広範囲に及ぶ標準ライブラリ
 詳細は、以下のリンクをご参照ください。
  http://www.python.jp/about/
  https://ja.wikipedia.org/wiki/Python

 ※注1
「オブジェクト」は、「データと処理の集まり」です。
「オブジェクト指向」は、「オブジェクト同士の相互作用としてシステムの振る舞いをとらえる考え方」です。
 以下のリンクをご参照ください。
  http://tdak.hateblo.jp/entry/20140406/1396773476

 ※注2
 「ライブラリ」は、一種の「道具箱」です。
 様々なライブラリがPythonで記述されており、テキスト処理、画像処理、音声処理、WEBから情報収集、機械学習など様々な機能を持ったライブラリ(道具箱)を利用することができます。
 →SB Creativeから出版された『Python「超」入門』p158を参照しました。
  本にご興味がある方は下記のリンクをご覧ください。
  http://www.sbcr.jp/products/4797384406.html



 私は人工知能を理解するために、Pythonを学びます。
 Pythonには、人工知能に関連したライブラリが豊富にあります。
 以下の順番で学ぶ予定です。
  ①Pythonの文法を理解し、プログラムを書けるようになること
  ②Pythonの各種ライブラリを理解し、使いこなすこと
  ③人工知能に関連したライブラリを理解し、使いこなすこと
  ④現実の問題を人工知能を使って解くこと





 今回は、オーム社から発刊された『Chainerによる実践深層学習』(著者:新納浩幸様)を紹介します。
 この本には、深層学習を用いて自然言語処理を行う方法について、基礎的なことが丁寧に書かれています。
 本の中のソースコードは下記のリンク先からダウンロード可能です。
  →http://www.ohmsha.co.jp/data/link/978-4-274-21934-4/
  →「本ファイルは、本書をお買い求めになった方のみご利用いただけます。本書をよくお読みのうえ、ご利用ください。また、本ファイルの著作権は、本書の著作者である、新納浩幸氏に帰属します」とのことです。
  →ソースコードの意味や実行方法は、本をご参照ください。


 Chainerは、ニューラルネットワークの計算および学習を行うためのオープンソースソフトウェアライブラリです。
 Preffered Networks社が開発しました。
 複雑なニューラルネットワークの構築を必要とする深層学習で主に用いられています。
 Chainerの特徴は、「Flexible(柔軟性)」「Intuitive(直感的)」「Powerful(高機能)」です。
 詳細は、下記のリンクをご参照ください。
  →https://chainer.org/
  →https://www.ossnews.jp/oss_info/Chainer
  →https://ja.wikipedia.org/wiki/Chainer


 Chainerには豊富なチュートリアル(使用方法に関する技術的な説明書)があるので、コードを書いてプログラムを動かしながら、Chainerの使い方を学ぶことができます。
 詳細は、下記のリンクをご参照下さい。
  →https://play.chainer.org/book/1/1/1
  →https://docs.chainer.org/en/stable/tutorial/index.html



 今回は、『Chainerによる実践深層学習』の第6章「Word2Vec」を紹介します。
 第6章では、「Word2Vec」を用いて単語の分散表現を求めて、共起する確率が高い単語を求める例が挙げられています。

 「Word2Vec」は、単語をベクトル化する手法です。日本人が日常的に使う語彙数は数万から数十万ですが、Word2Vecでは各単語を100~200次元くらいのベクトルとして表現します。

 例1 : 「男性」-「女性」 ≒ 「王」-「女王」
  →差分は「男性と女性の違い」を表現

 例2 : 「フランス」-「パリ」 ≒ 「日本」-「東京」
  →差分は、「国と首都の関係」を表現

詳細は、下記のリンクをご参照ください。
 →http://business.nikkeibp.co.jp/article/bigdata/20141110/273649/
 →https://qiita.com/Hironsan/items/11b388575a058dc8a46a

 本を参照して、以下を実行しました。
 ・「Word2Vec」を用いて単語の分散表現を求めるためのコーパスをダウンロード
  →オーム社のウェブサイトからダウンロードした"download.py"を実行

 ・オーム社のウェブサイトからダウンロードした"w2v.py"を実行して、分散表現を生成

 ・オーム社のウェブサイトからダウンロードした"search.py"を実行して、入力した単語に共起する単語を計算
  →本では、「ibm」と「monday」が入力されていたので、テストしたところ、少し結果が違いました。
  →同じデータで学習しても、学習過程が異なると、異なる学習modelが生成されるためでしょうか?

>> ibm
query: ibm
compaq: 0.41046619415283203
digital: 0.3738076090812683
workstations: 0.36110997200012207
mca: 0.34414780139923096
barred: 0.34183168411254883

>> monday
query: monday
late: 0.5946712493896484
friday: 0.565224289894104
tuesday: 0.5464625954627991
thursday: 0.5313445329666138
october: 0.5156435966491699


 →「tokyo」を入力すると、「london」が出てくるのは、まあ分かりますが、「wednesday」ってどういうつながり?
>> tokyo
query: tokyo
london: 0.5647199749946594
trading: 0.5116058588027954
late: 0.5066615343093872
wednesday: 0.4926563501358032
exchange: 0.48340773582458496

 →「japan」を入力すると、国や地域の名前が出てきます。
>> japan
query: japan
europe: 0.42951500415802
canada: 0.4130331575870514
southern: 0.38218623399734497
corp: 0.3816322386264801
korea: 0.3799392879009247

 →「bush」を入力すると、大統領や国の指導者の名前が出てきます。
>> bush
query: bush
administration: 0.5540839433670044
president: 0.5289150476455688
reagan: 0.5197411775588989
mr.: 0.5145369172096252
gorbachev: 0.4927402138710022

 →「white」と言えば、「house」。
>> white
query: white
house: 0.7241515517234802
republican: 0.4315698742866516
attorney: 0.41995060443878174
committee: 0.41920205950737
congressional: 0.40996187925338745

 →「new」と言えば、「york」。
>> new
query: new
york: 0.8819764852523804
stock: 0.6854040026664734
exchange: 0.6275158524513245
jersey: 0.6085870265960693
city: 0.5696918964385986

 →方角は少し面白かったです。
  学習したコーパスが古いから、「east」と「west」の入力に対して「germany」が出てきたと思います。
  「north」と「south」の入力に「pole」が出てくることを予想しましたが、出てきませんでした。

>> east
query: east
germany: 0.6518040299415588
german: 0.5891901850700378
west: 0.5401161313056946
bloc: 0.5139663219451904
coast: 0.4006878137588501

>> west
query: west
german: 0.753391683101654
germany: 0.6806437969207764
east: 0.5401161313056946
texas: 0.39075174927711487
coast: 0.36644911766052246

>> north
query: north
america: 0.6011356115341187
&: 0.48869752883911133
american: 0.4657667875289917
salomon: 0.4178721308708191
co.: 0.41369175910949707

>> south
query: south
korea: 0.6827774047851562
carolina: 0.5748740434646606
africa: 0.5623666048049927
taiwan: 0.47595086693763733
african: 0.38000667095184326



 次回も、『Chainerによる実践深層学習』を紹介します。


 以上、「Python(パイソン) ~その47:『Chainerによる実践深層学習』の紹介~」でした。




テーマ:プログラミング - ジャンル:コンピュータ

Python(パイソン) ~その46:『Chainerによる実践深層学習』の紹介~


 今回は、「Python(パイソン) ~その46:『Chainerによる実践深層学習』の紹介~」です。

  Python (パイソン) はプログラミング言語です。
 オランダ人のグイド・ヴァンロッサムさんが開発しました。
 名前の由来は、イギリスのテレビ局 BBC が製作したコメディ番組『空飛ぶモンティ・パイソン』です。
 Pythonには次のような特徴があります。
  ・とても読みやすい文法
  ・直感的なオブジェクト指向
  ・広範囲に及ぶ標準ライブラリ
 詳細は、以下のリンクをご参照ください。
  http://www.python.jp/about/
  https://ja.wikipedia.org/wiki/Python

 ※注1
「オブジェクト」は、「データと処理の集まり」です。
「オブジェクト指向」は、「オブジェクト同士の相互作用としてシステムの振る舞いをとらえる考え方」です。
 以下のリンクをご参照ください。
  http://tdak.hateblo.jp/entry/20140406/1396773476

 ※注2
 「ライブラリ」は、一種の「道具箱」です。
 様々なライブラリがPythonで記述されており、テキスト処理、画像処理、音声処理、WEBから情報収集、機械学習など様々な機能を持ったライブラリ(道具箱)を利用することができます。
 →SB Creativeから出版された『Python「超」入門』p158を参照しました。
  本にご興味がある方は下記のリンクをご覧ください。
  http://www.sbcr.jp/products/4797384406.html



 私は人工知能を理解するために、Pythonを学びます。
 Pythonには、人工知能に関連したライブラリが豊富にあります。
 以下の順番で学ぶ予定です。
  ①Pythonの文法を理解し、プログラムを書けるようになること
  ②Pythonの各種ライブラリを理解し、使いこなすこと
  ③人工知能に関連したライブラリを理解し、使いこなすこと
  ④現実の問題を人工知能を使って解くこと





 今回は、オーム社から発刊された『Chainerによる実践深層学習』(著者:新納浩幸様)を紹介します。
 この本には、深層学習を用いて自然言語処理を行う方法について、基礎的なことが丁寧に書かれています。
 本の中のソースコードは下記のリンク先からダウンロード可能です。
  →http://www.ohmsha.co.jp/data/link/978-4-274-21934-4/
  →「本ファイルは、本書をお買い求めになった方のみご利用いただけます。本書をよくお読みのうえ、ご利用ください。また、本ファイルの著作権は、本書の著作者である、新納浩幸氏に帰属します」とのことです。
  →ソースコードの意味や実行方法は、本をご参照ください。


 Chainerは、ニューラルネットワークの計算および学習を行うためのオープンソースソフトウェアライブラリです。
 Preffered Networks社が開発しました。
 複雑なニューラルネットワークの構築を必要とする深層学習で主に用いられています。
 Chainerの特徴は、「Flexible(柔軟性)」「Intuitive(直感的)」「Powerful(高機能)」です。
 詳細は、下記のリンクをご参照ください。
  →https://chainer.org/
  →https://www.ossnews.jp/oss_info/Chainer
  →https://ja.wikipedia.org/wiki/Chainer


 Chainerには豊富なチュートリアル(使用方法に関する技術的な説明書)があるので、コードを書いてプログラムを動かしながら、Chainerの使い方を学ぶことができます。
 詳細は、下記のリンクをご参照下さい。
  →https://play.chainer.org/book/1/1/1
  →https://docs.chainer.org/en/stable/tutorial/index.html




 今回は、『Chainerによる実践深層学習』の第5章「AutoEncoder」を紹介します。
 第5章では、深層学習の一種であるAutoEncoderを用いて、アヤメのデータの特徴を抽出する例が挙げられています。
 AutoEncoder(自己符号化器)とは、機械学習において、ニューラルネットワークを使用した次元圧縮に多用されるアルゴリズムです。
 詳細は、下記のリンクをご参照ください。
  →https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%BC%E3%83%88%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%80

 本を参照して、以下を実施しました。
 ・アヤメの特徴を示す4次元データを2次元に縮約
 ・オーム社のウェブサイトからダウンロードした"ae.py"を実行して、学習回数と縮約状況を比較
  深層学習する過程で、アヤメデータの特徴抽出状況がどう変わるか見たい!
   →学習途中でmodelを保存
   →各modelごとに、二次元で図示
 ・結果
  →10回    : 分類できず
  →100回    : 1つ目の特徴だけ抽出開始
  →1000回   : 1つ目の特徴だけ抽出完了、2つ目の特徴も抽出開始
  →10000回   : ほぼ2つ目の特徴も抽出完了
  →100000回  : ほぼ安定化
   ※黒は明確に分類可能ですが、一部、赤と青の分類が難しいことが分かります。




 次回も、『Chainerによる実践深層学習』を紹介します。


 以上、「Python(パイソン) ~その46:『Chainerによる実践深層学習』の紹介~」でした。




テーマ:プログラミング - ジャンル:コンピュータ

Python(パイソン) ~その45:『Chainerによる実践深層学習』の紹介~


 今回は、「Python(パイソン) ~その45:『Chainerによる実践深層学習』の紹介~」です。

  Python (パイソン) はプログラミング言語です。
 オランダ人のグイド・ヴァンロッサムさんが開発しました。
 名前の由来は、イギリスのテレビ局 BBC が製作したコメディ番組『空飛ぶモンティ・パイソン』です。
 Pythonには次のような特徴があります。
  ・とても読みやすい文法
  ・直感的なオブジェクト指向
  ・広範囲に及ぶ標準ライブラリ
 詳細は、以下のリンクをご参照ください。
  http://www.python.jp/about/
  https://ja.wikipedia.org/wiki/Python

 ※注1
「オブジェクト」は、「データと処理の集まり」です。
「オブジェクト指向」は、「オブジェクト同士の相互作用としてシステムの振る舞いをとらえる考え方」です。
 以下のリンクをご参照ください。
  http://tdak.hateblo.jp/entry/20140406/1396773476

 ※注2
 「ライブラリ」は、一種の「道具箱」です。
 様々なライブラリがPythonで記述されており、テキスト処理、画像処理、音声処理、WEBから情報収集、機械学習など様々な機能を持ったライブラリ(道具箱)を利用することができます。
 →SB Creativeから出版された『Python「超」入門』p158を参照しました。
  本にご興味がある方は下記のリンクをご覧ください。
  http://www.sbcr.jp/products/4797384406.html



 私は人工知能を理解するために、Pythonを学びます。
 Pythonには、人工知能に関連したライブラリが豊富にあります。
 以下の順番で学ぶ予定です。
  ①Pythonの文法を理解し、プログラムを書けるようになること
  ②Pythonの各種ライブラリを理解し、使いこなすこと
  ③人工知能に関連したライブラリを理解し、使いこなすこと
  ④現実の問題を人工知能を使って解くこと





 今回は、オーム社から発刊された『Chainerによる実践深層学習』(著者:新納浩幸様)を紹介します。
 この本には、深層学習を用いて自然言語処理を行う方法について、基礎的なことが丁寧に書かれています。
 本の中のソースコードは下記のリンク先からダウンロード可能です。
  →http://www.ohmsha.co.jp/data/link/978-4-274-21934-4/
  →「本ファイルは、本書をお買い求めになった方のみご利用いただけます。本書をよくお読みのうえ、ご利用ください。また、本ファイルの著作権は、本書の著作者である、新納浩幸氏に帰属します」とのことです。
  →ソースコードの意味や実行方法は、本をご参照ください。


 Chainerは、ニューラルネットワークの計算および学習を行うためのオープンソースソフトウェアライブラリです。
 Preffered Networks社が開発しました。
 複雑なニューラルネットワークの構築を必要とする深層学習で主に用いられています。
 Chainerの特徴は、「Flexible(柔軟性)」「Intuitive(直感的)」「Powerful(高機能)」です。
 詳細は、下記のリンクをご参照ください。
  →https://chainer.org/
  →https://www.ossnews.jp/oss_info/Chainer
  →https://ja.wikipedia.org/wiki/Chainer


 Chainerには豊富なチュートリアル(使用方法に関する技術的な説明書)があるので、コードを書いてプログラムを動かしながら、Chainerの使い方を学ぶことができます。
 詳細は、下記のリンクをご参照下さい。
  →https://play.chainer.org/book/1/1/1
  →https://docs.chainer.org/en/stable/tutorial/index.html



 今回は、『Chainerによる実践深層学習』の第4章「Chainerの利用例」を紹介します。
 第4章では、アヤメのデータを用いて、深層学習する例が挙げられています。

・3種類のアヤメの分類問題
 →3種類のアヤメは、setosa、versicolor、virginica
 →データ数は50セットずつで、総計150セット

・アヤメデータの詳細
 →下のデータは、左から、花びらの長さ、花びらの幅、がく片の長さ、がく片の幅(スペース区切り)
 →下のデータを見ると、がく片の長さ、がく片の幅で、アヤメの種類を分類できそうな雰囲気

setosaのうち、5セット
['5.10', '3.50', '1.40', '0.20']
['4.90', '3.00', '1.40', '0.20']
['4.70', '3.20', '1.30', '0.20']
['4.60', '3.10', '1.50', '0.20']
['5.00', '3.60', '1.40', '0.20']

versicolorのうち、5セット
['5.00', '2.00', '3.50', '1.00']
['5.90', '3.00', '4.20', '1.50']
['6.00', '2.20', '4.00', '1.00']
['6.10', '2.90', '4.70', '1.40']
['5.60', '2.90', '3.60', '1.30']

virginicaのうち、5セット
['6.70', '3.00', '5.20', '2.30']
['6.30', '2.50', '5.00', '1.90']
['6.50', '3.00', '5.20', '2.00']
['6.20', '3.40', '5.40', '2.30']
['5.90', '3.00', '5.10', '1.80']


・オーム社のウェブサイトからダウンロードした"iris0.py"を実行して、学習回数と正答率(アヤメの種類を正しく分類できた確率)を比較
 →100回    : 15 / 75 = 0.20
 →1000回   : 53 / 75 = 0.71
 →10000回   : 72 / 75 = 0.96
 →100000回  : 72 / 75 = 0.96
  ※損失関数は、「平均二乗誤差」
 →損失関数を「クロスエントロピー」にすると、73 / 75 = 0.97
  「平均二乗誤差」より精度向上
 →残り2~3個のデータは、versicolorとvirginicaの境界に分布していて、分類するのが難しい。


 次回も、『Chainerによる実践深層学習』を紹介します。


 以上、「Python(パイソン) ~その45:『Chainerによる実践深層学習』の紹介~」でした。




テーマ:プログラミング - ジャンル:コンピュータ

Python(パイソン) ~その44:形態素解析エンジンMeCab~


 今回は、「Python(パイソン) ~その44:形態素解析エンジンMeCab~」です。

  Python (パイソン) はプログラミング言語です。
 オランダ人のグイド・ヴァンロッサムさんが開発しました。
 名前の由来は、イギリスのテレビ局 BBC が製作したコメディ番組『空飛ぶモンティ・パイソン』です。
 Pythonには次のような特徴があります。
  ・とても読みやすい文法
  ・直感的なオブジェクト指向
  ・広範囲に及ぶ標準ライブラリ
 詳細は、以下のリンクをご参照ください。
  http://www.python.jp/about/
  https://ja.wikipedia.org/wiki/Python

 ※注1
「オブジェクト」は、「データと処理の集まり」です。
「オブジェクト指向」は、「オブジェクト同士の相互作用としてシステムの振る舞いをとらえる考え方」です。
 以下のリンクをご参照ください。
  http://tdak.hateblo.jp/entry/20140406/1396773476

 ※注2
 「ライブラリ」は、一種の「道具箱」です。
 様々なライブラリがPythonで記述されており、テキスト処理、画像処理、音声処理、WEBから情報収集、機械学習など様々な機能を持ったライブラリ(道具箱)を利用することができます。
 →SB Creativeから出版された『Python「超」入門』p158を参照しました。
  本にご興味がある方は下記のリンクをご覧ください。
  http://www.sbcr.jp/products/4797384406.html



 私は人工知能を理解するために、Pythonを学びます。
 Pythonには、人工知能に関連したライブラリが豊富にあります。
 以下の順番で学ぶ予定です。
  ①Pythonの文法を理解し、プログラムを書けるようになること
  ②Pythonの各種ライブラリを理解し、使いこなすこと
  ③人工知能に関連したライブラリを理解し、使いこなすこと
  ④現実の問題を人工知能を使って解くこと



 今回は、MeCabについて紹介します。
 MeCabは、オープンソースの形態素解析エンジンです。
 インストール方法などの詳細は、下記のリンクをご参照ください。
  →http://taku910.github.io/mecab/
  →https://ja.wikipedia.org/wiki/MeCab

 検索エンジンなど、日本語の言語処理では、文を単語に分割することが重要です。
 MeCabは、高速に精度よく、文を単語に分割できます。
 今回は、MeCabの実力を確認します。

 入力文1:「すもももももももものうち」
 入力文2:「今日は晴れです。」 
  →この二文はOK
 入力文3:「ピコ太郎のYoutube動画を見た。」
  →「ピコ太郎」が認識されず。
  →おそらく未知語(MeCabの辞書に登録されていない単語)の問題。 



 入力文4:「れいかやかんげんには上手なことではなくて楽しいことを見つけられる人になって欲しいです。」
  →人の名前を平仮名で書いた場合、解析精度が落ちる。
   ※入力文4は、市川海老蔵さんのブログより
    →https://ameblo.jp/ebizo-ichikawa



 入力文5:「ピンクリボンイベントということで衣装は全体的にピンク」
 入力文6:「今日は1日ゾロリDay!」
  →この二文はOK
 入力文7:「ももクロが出演させていただきます」
  →「ももクロ」が認識されず
  →おそらく未知語(MeCabの辞書に登録されていない単語)の問題。
 入力文8:「今日は朝かられにちゃんとロケ!」
  →平仮名の名前の場合、解析精度が落ちる。
  ※入力文5~8は、ももいろクローバーZの百田さんのブログより
   →https://ameblo.jp/momota-sd/
  




 次回以降は、機械学習や深層学習について紹介する予定です。


 以上、「Python(パイソン) ~その44:形態素解析エンジンMeCab~」でした。




テーマ:プログラミング - ジャンル:コンピュータ

次のページ