困ったー

WIN10・アプリ・ゲームで困ったことを調べてみた

「こまったー」は困ったことを調べたブログです。

コロナ対策 |  Teams |  ARK |  Satisfactory |  フォートナイト

スポンサーリンク


【Visual Studio 2019】Pythonで文章や画像解析

Pythonは、人工知能・機械学習系ライブラリが結構そろっていることでも人気のプログラム言語です。

ここでは便利な関数をまとめていきます。

文章の解析

a65

文章を解析していこうとすると、単語や動詞、形容詞などに分解させたい場合があります。

 

そんなときに便利なのがMecabです。

 

ここでは「mecab-python-windows」を使うので先にインストールしておきましょう。

Visual StudioでPythonのライブラリをインストールする方法については以下参照ください。

【Visual Studio 2019】Pythonの始め方 インストールは?PIPは? - 困ったー

 

形態解析

PYファイルでは、以下のようにMecabオブジェクトを作り、解析したい文字を渡します。

 

import MeCab
t = MeCab.Tagger('mecabrc')
print(t.parse("俺現実から締め出され、何が起きているかわからない"))

 

実行すると以下のように名詞や助詞、動詞などに分解してくれます。

f:id:apicode:20190628085920p:plain


名詞だけ抜き出すには、以下のようにします。

 

import MeCab
t = MeCab.Tagger('mecabrc')
t.parse('')
m = t.parseToNode("俺現実から締め出され、何が起きているかわからない")
while m:
  if m.feature.split(',')[0] == '名詞':
    print(m.surface)
  m = m.next

 

実行するとこんな感じで、「俺」「現実」「何」といったことばが出力されました。

f:id:apicode:20190628090832p:plain

 

 

画像の解析

2012 Helsinki municipal elections IV

画像認識で便利なのがOpenCVというライブラリです。

ここでは「opencv-python」というライブラリを利用するので、先にインストールしておきましょう。

 

顔認識

ここでは人物画像「temp.png」をロード。顔認識したら顔の位置に四角形を描画して「temp2.jpg」として書き出します。

「detectMultiScale」のところまでが顔認識で、以降は四角形の描画と出力となります。

 

import cv2
img = cv2.imread("temp.png")
cascade = cv2.CascadeClassifier("haarcascade_frontalface_default.xml")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
face = cascade.detectMultiScale(gray, minSize=(150, 150)) for (x, y, w, h) in face:
  cv2.rectangle(img, (x, y), (x + w, y+h), (0,0,200), thickness =3) cv2.imwrite("temp2.jpg",img)

 

しかしこれを実行するとdetectMultiScaleのところで「Assertion failed」エラーとなりました。

 

ぐぐってみると顔定義のXMLファイルのエラーのようで、以下のファイルを作っているプログラムのフォルダ(PythonApplication1など)へ直接入れたら治ったようです。

 

実際「C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64\Lib\site-packages\cv2\data」にあった「haarcascade_frontalface_default.xml」ファイルを、「C:\Users\{ユーザ名}\source\repos\PythonApplication1\PythonApplication1」へコピーしたらエラーが回避されました。

参考:OpenCVで顔認識をしてみた - Qiita

 

今回試した画像はこちら(画像:http://www.ashinari.com/

f:id:apicode:20190628093946j:plain

 

顔の位置を認識してマーキングするとこんな感じになりました。

f:id:apicode:20190628093948j:plain

 

 

 

 


Python 1年生 体験してわかる!会話でまなべる!プログラミングのしくみ
最新価格は以下のおすすめストアで確認ください。
楽天 >>
Amazon >>
Yahoo!ストア >>

 

[Visual StudioでPython]

  1. 【Visual Studio 2019】Pythonの始め方 インストールは?PIPは?
  2. 【Visual Studio 2019】Pythonでインターネットの関数
  3. 【Visual Studio 2019】Pythonで文章や画像解析
  4. 【Visual Studio 2019】PythonでTkinterを使うには?

このブログは、ネットや書籍上の情報、個人の体験や感想を中心にまとめたものです。 正確性を期していはいますが、間違い・誤訳等あるかもしれません。 当サイトの情報によって生じたいかなる損失について一切の責任を負わないものとします. あらかじめご了承ください。

利用規約・プライバシーポリシー |〇問い合わせ