技術資料

目次 

1. 目標
2. 必要なソフトウェアのインストール
3. データベースの作成
4.データベースからコーパスの作成
5. 学習モデルの作成
6. 学習モデルを用いた支援システムの作成

関連:
テキストマイニング入門(小野田さん)
スクレイピング・クローリング入門(小野田さん)
スクレイピング(沼田さん)

1. 目標 

特許データを収集して学習させることで, 新たな発明案を提案するシステムを開発する.

2. 必要なソフトウェアのインストール 

本実験ではGPUマシンが必要なため, Teratermを用いて研究室のGPUマシンにアクセスする

Teratermは以下のページを参考にインストールする.

Teratermのインストール方法

zu1.png

画像のIPアドレスを入力.(※変更される場合があるので注意。)

zu2.png

パスワードは渡辺に聞く.

以下を入力して、anacondaの環境の設定を進める

wget https://repo.anaconda.com/archive/Anaconda3-2019.10-Linux-x86_64.sh
bash Anaconda3-2019.10-Linux-x86_64.sh

指示に従ってインストールしていく

ただし以下の質問はnoで答える

installation finished. Do you wish the installer to initialize Anaconda3 by running conda init? [yes|no]

パスを反映させてanacondaを使えるようにする

source ~/.bashrc

環境構築 

以下のコマンドでconda仮想環境の作成ができます。

conda create -n [仮想環境名] python=[pythonのバージョン]

必要なパッケージをここからインストールする

srcディレクトリを作成、以下の3つを入れる

作った仮想環境を実行可能な状態にする

pip install -r requirements.txt

英語用形態素解析機punktをインストール(pythonコマンド上で実行)
分かち書き(word_tokenize)

import nltk
nltk.download('punkt')

品詞の取得(pos_tag)

import nltk
averaged_perceptron_tagger

英語の言語処理用辞書をインストール

python -m spacy download en_core_web_sm

termextractをインストール(pipに対応していないため)

wget http://gensen.dl.itc.u-tokyo.ac.jp/soft/pytermextract-0_01.zip

zipファイルを解凍する

unzip pytermextract-0_01.zip
python setup.py install

3. データベースの作成 

今回は小野田の構築したMongoDBを利用する。接続情報は以下の通り。
IPアドレス:192.168.0.116
ポート番号:27017

自分でインストールする場合
参考
(Ubuntu 18.04 に MongoDB の最新版を apt インストールする)

まずいかの通りほしいキーワードのリストをtxtファイルで作成(著者はdataディレクトリのwordlist.txtという名前で保存した)

roboto
AI
IoT
time machine

MongoDBの環境ができたら、以下のコマンドを実行して、特許データのクロールを行う。

python patent_crawler.py ../data/wordlist.txt

実行結果は以下のとおり

output.png

4. データベースからコーパスの作成 

5. 学習モデルの作成 

6. 学習モデルを用いた支援システムの作成 













(基本的に山元さんの環境に合わせて進めていく。)

ディレクトリを作成(今回は"sample"という名前)、
drive 3つダウンロード、入れる


今回は、windows powershellで進めた。

python get333.py


使用するchromeのバージョンをそろえる必要があるので、以下インストール

pip install selenium
pip install chromedriver-binary==78.0.3904.105

(参考: [selenium向け] ChromeDriverをpipでインストールする方法

"link", "title"というファイルが作成される

link: 検索結果のURLのリスト

link.PNG


title:検索ページのタイトルのリスト

title.PNG


Anacondaから、jupyer notebook を用いて作業を行う。

Windowsに「Jupyter Notebook」をインストールして手軽にPythonを使い始める方法


chromeで開くと、「メモリ不足で開けません」と表示される。今回はedgeで起動し作業を進める。


system-Copy5.ipynbを開く。

jupyter.PNG

上のセルから順に実行していく(選択し、Shift+Enter)


途中でエラーが発生する毎に処理が必要(必要なプログラムがインストールされていない(mecab,janome等)、ファイルのパスが異なるなど)

実行結果 


・形態素解析

keitaisokaiseki.PNG


gazou1.png


gazou2.png



























5. 脳波の測定の準備(Windows, Unix) 

Macは以下を参考に https://www.pu-toyama.ac.jp/IS/IIE/local_pages/lab_log/wiki.php?plugin=attach&refer=OpenBCI&openfile=OpenBCI%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%95%E3%82%9A%EF%BC%88macOS%29.pdf

以下のサイトでインストール http://openbci.com/index.php/downloads

#ref(): File not found: "Op_usb.png" at page "Web, Twitterからのテキストマイニングによる因果・知識の発見"

USB ドングルをコンピュータ側にでっぱりをスライドさせ、青いライトを点灯させる

#ref(): File not found: "Op_kiban.png" at page "Web, Twitterからのテキストマイニングによる因果・知識の発見"

Cyton ボードのスイッチは、上にスライドで PC 接続、下にスライドで Bluetooth 接続となる

今回はPC接続なので上にスライドする

ここから先はWindowsとUbuntuでやり方が違う

Windowsの場合 

#ref(): File not found: "GUI設定.png" at page "Web, Twitterからのテキストマイニングによる因果・知識の発見"

OpenBCI_GUI.exeを開いて

(1) LIVE from (Cyton)

(2) Serial(from Dongle)

(3) COM3

(4) 8CHANNELS

(5) START SYSTEM

以上の流れで実行できる

・エラーが出たときはOpenBCIHub.exeを起動してからOpenBCI_GUI.exeを起動する

UNIXの場合 

シリアルポートにアクセスするのに十分な特権でOpenBCIアプリケーションを起動する

OpenBCIソフトウェアをホームフォルダに展開したと仮定すると、以下のコマンドで実行できる

cd ~/application.linux64 && sudo bash OpenBCI_GUI

(1) LIVE from (Cyton)

(2) Serial(from Dongle)

(3) SERIAL / COM PORT は一番上のやつ

(4) 今回は8CHANNELS

(5) START SYSTEM

以上の流れで実行できる

 

・装着するときは電池がついている方を後ろ向きにする

・DATA LOG FILE でファイルを変更できる(デフォルトで日付)

・実行できる状態か確かめるときは、SERIAL / COM PORT の横の矢印から確認できる

・GET CHANNEL と STATUS が Success となっていれば実行可能

・脳波がとれない場合はそのチャンネルの頭のねじを回すことで調節する(2番はとれなかった)

START SYSTEM を実行すると以下のような画面になり、左上の START DATA STREAM で測定開始、STOP で測定終了となる

#ref(): File not found: "OpenBCI_start.png" at page "Web, Twitterからのテキストマイニングによる因果・知識の発見"

システム(この項目は、直接USBでデータを渡したほうが早い) 

作業する場所にフォルダを作り、以下のプログラムと画像を入れる

#ref(): File not found: "slide.py" at page "Web, Twitterからのテキストマイニングによる因果・知識の発見"

#ref(): File not found: "test.py" at page "Web, Twitterからのテキストマイニングによる因果・知識の発見"

#ref(): File not found: "Black_image.png" at page "Web, Twitterからのテキストマイニングによる因果・知識の発見"

#ref(): File not found: "guu.png" at page "Web, Twitterからのテキストマイニングによる因果・知識の発見"

#ref(): File not found: "paa.png" at page "Web, Twitterからのテキストマイニングによる因果・知識の発見"

#ref(): File not found: "tyoki.png" at page "Web, Twitterからのテキストマイニングによる因果・知識の発見"

#ref(): File not found: "white_image.png" at page "Web, Twitterからのテキストマイニングによる因果・知識の発見"

そのフォルダの中にcountというフォルダを作り、以下の画像を入れる

#ref(): File not found: "one.png" at page "Web, Twitterからのテキストマイニングによる因果・知識の発見"

#ref(): File not found: "two.png" at page "Web, Twitterからのテキストマイニングによる因果・知識の発見"

#ref(): File not found: "three.png" at page "Web, Twitterからのテキストマイニングによる因果・知識の発見"

 

python3でやる

pipのインストールはこのサイトの「pipのインストール方法」を見てやる

モジュールのインストールは以下のコマンドで

pip3 install opencv-python
sudo pip3 install pyautogui
sudo pip3 install xlib
pip3 install matplotlib
sudo apt-get install python3-tk
sudo apt-get install python-scipy
pip3 install scipy
pip install scikit-learn
pip3 install pandas
pip3 install sklearn

プログラムslide1.2.pyについて

#ref(): File not found: "test1++.png" at page "Web, Twitterからのテキストマイニングによる因果・知識の発見"

pyautogui.click(141,101)のところはとりあえずそのままで
下線部のPATHは書き換える

実行方法

slide.pyのプログラムでデータ収集

test.pyのプログラムで収集したデータから機械学習させるという流れ

1.

cd ~/application.linux64 && sudo bash OpenBCI_GUI

でOpenBCIを起動しハードのセットアップを行う

2.
ターミナルの新しいタブを開いてslide.pyのあるところに移動し、

python3 slide.py

で実行できる

10. ジャンケンの出す手の予測 

OpenBCIのスタートの位置にpyautogui.click(x,y)を合わせないといけないのでエラーが出た場合は以下のプログラムで位置を確かめられる

#ref(): File not found: "click.png" at page "Web, Twitterからのテキストマイニングによる因果・知識の発見"

このプログラムを実行したときのマウスカーソルの位置がPoint(x=588, y=482)などと表示される

実行に成功すると3,2,手の順でスライドが流れるのでその手に勝つ手を後出しで出す(100回)

ターミナル上に遅延時間が表示されているので記録しておく

終わったらOpenBCIを停止して、applicasion.linux64のSavedDataのところにあるテキストデータの名前を変更する

3.ここでもう一つのプログラムtest.pyを使う

各々で変更してほしい点は以下の点である(120行前後)

#ref(): File not found: "test2.png" at page "Web, Twitterからのテキストマイニングによる因果・知識の発見"

yamamoto_1.txtのところは2で名前を変えたテキストデータの名前にする、

隣の数字は2で記録した遅延時間なのでその数字を入れる

赤丸の部分は2でターミナル上に表示された数列をコピー&ペーストする

実行結果の例を示す

#ref(): File not found: "kekka.png" at page "Web, Twitterからのテキストマイニングによる因果・知識の発見"

これは取得した100個のデータから最初の40個のデータを訓練データとして、次の40個のデータを予測したときの正解率が37.5%であることを表している


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS