こんにちは。デジビ生田です。
最近、PoCを進める中でJava以外の言語、例えばPythonを利用する機会も増えてきました。
今回はPythonについて
Python、個人的に利用する理由は以下です。
■データ分析や機械学習、画像処理やRPAなどの用途で便利なライブラリが揃っている
(Pandas、Scikit-learn、Tesseract、Automagica、その他数万個以上のライブラリ群)
■オンプレからクラウドまで、ツール類や環境が充実している
(Anaconda3、Cloud9、SageMakerなど)
■コミュニティからの情報量、Kaggleなどのコンテストなども活発
Python人気?
「Stack Overflow」の開発者アンケート、やはりPythonは愛されている言語みたいですね。
私の周りもPython好き多いです。
連携API
デジビでは、OSSなどを利用して何かしらとiAPを連携する検証も行っています。
昨年度、IM-LogicDesignerからPythonを利用したいケースがあり、OSSを利用して何となくシームレスに連携できるAPIが出来たのでご紹介します。
事例:自然言語処理を利用した関連ワードの抽出
Fessという検索エンジンの管理にPythonを利用しました。
ドキュメントデータを分析、類似語や関連ワードなどの自動メンテナンスを行っています。
IM-LogicDesigner
今回、IM-LogicDesignerのスクリプト定義から主に以下のPython処理を実行しています。
・ドキュメントデータのクロール
・モデルファイルの転送
・各種分析(予測)
・Fess設定の更新(設定洗い替え)
また、メンテナンスをBPM側で管理できるようにもしました。
IM-BPM
その他の事例としては、需要予測などがあります。また機会があればご紹介します。
API
ご紹介した事例、OSSをラッピングしたAPIを利用しています。
API、個人的に利用するシチュエーションは以下の何れかです。
■スクリプト開発やJavaEE開発モデルから、ちょこっとPythonコードを利用したいケース
■IM-LogicDesignerのスクリプト定義から、ちょこっとPythonコードを利用したいケース
■PythonコードをIM-LogicDesignerの拡張プログラミングで部品化したいケース
■その他Javaアプリに埋め込みたいケース
興味がございましたら是非、以下のサンプルもご覧ください。
APIサンプル.zip
iAPからpythonのモジュールが活用できるのはとても嬉しいです。
特に、anacondaに含まれるNumpy,pandasなどのモジュール群を活用ししたいと思います。
readmeに以下の記述がありますが、”ツール本分としての利用”とは、どのような利用でしょうか?
対象者:
“データ分析者としての利用:Anacond-WinPythonなどのツール本分としての利用は想定していません。”
竹内紀夫 様
コメントありがとうございます。
サンプルはintra-mart開発者を想定して作成しました。
開発用途でご利用いただきたい旨で、readmeに記述させて頂きました。
シチュエーションにもよりますが、データ分析者の視点では、繰り返しコードを変更、結果を確認しながら分析を行う作業が想定されます。
そのようなシチュエーションでは「Jupyter Notebook」や「WinPython」などのツールの方が、UIや機能が充実しており使い勝手が良いかと存じます。
一方でintra-mart開発者の視点では、ある程度仕上がった機能要件・仕様の下で機能を作成する作業が想定されます。例えば、スクリプト開発やJavaEE開発、LogicDesigner等で部品を作成する際に、Numpy,pandasなどのライブラリを組み込んで頂くのが宜しいかと存じます。
以上です。
どうぞよろしくお願いいたします。
デジビ