①数値計算用知識ベースエンジンWolframを使ってみます。
ナレッジベースとしてのWolfram
ラズパイのOSとして Raspbian Stretch with desktop and recommended software を使えばプレインストールされています (サブセットとはいえ、タダで使える->すごすぎる->使わんわけにはイカン)。すごすぎる理由の一端
(現RaspbianはBusterです。Stretchのイメージ->Lite、Full)
こういう時代もありました。
SE/30とMathematicaで軽が1台買えたような…..。それが今じゃ5000円弱….。泣ける。
Wolfram-Mathematicaをインストールする必要がある場合は以下を実行
$sudo apt-get update
$sudo apt-get install wolfram-engine
メニュから「Wolfram」を起動するとLanguageのウィンドウが開きますが、graphicが使えません。
計算結果を可視化したいような場合は「Mathematica」を選んで、Wolfram Mathematica(Mathematicaノートブック)を起動します。
こんな感じで、グラフを作成できます。
ListLinePlot[{5, 6, 1, 5, 7, 8, 1, 3}]
Shift + Return
横軸はindex、縦軸に値がプロットされています。
センサーデータのグラフ化なんかに使えます。
WolframはPythonなんかとも連携できるそうです。
どう使うか、悩みましょう!
Mathematicaで機械学習ができるらしい。
数式処理以外に他の知識ベースの使い方(データの収集など)もできます。
「Wolfram言語では,現実世界の実体も一種の記号的な式です」….だそうです。
LISP?
こんな具合
現在のお天気情報を調べてみます。
ラズパイのWolfram Mathematicaノートブックは英語入出力のみですが、Wolfram|Alphaには日本語版があります。
ラズパイのターミナルからはWolframScriptでWolfram言語を扱えます。
こういう使い方もあるんですねぇ。FFTを使っています。
パラメトリック方程式は勾配とテンソル(メモ)のページでも使っています。
②パーソナルナレッジベースとして
EvernoteかGoogle keepか?
Trilium Notesも選択肢に入れたいが、現バージョンは実行できない。
Linux版は、./triliumで実行時エラー。
ソースからnpmビルドしても、これはNode.jsが10.5以上じゃないと走らない。
現ラズパイ(Stretch)はDebian 9なのでNode.jsは9。
ただラズパイに拘らずに、ネットワーク内にPCも組み込んで考えれば問題ないか?
使用制限があまりないGoogle keepを使ってみます。
ラズパイ
gkeepapiを使ってみます。
$pip3 install gkeepapi
【gkeep.py】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# coding: utf-8 import gkeepapi import sys args = sys.argv #引数をkeepに投稿 title = args[1] memo = args[2] #Gmailアカウントでログイン、xxxとyyyはご自分ので書き換え userID = "xxx" Password = "yyy" keep = gkeepapi.Keep() s = keep.login(userID,Password) #新しいメモを作成 n = keep.createNote(title, memo) #同期 keep.sync() |
$python3 gkeep.py “New Memo” ”ほにやらら”
*Google keepはChromeの拡張機能として使えるので、Webページの保存にも便利
PythonでKeepからデータを検索する場合はこちら
③SQLiteで情報を保存・取り出し
クラウドサービスには保存したくない情報の場合はローカルDBを使います。
さらに大きなデータの場合は、P2Pネットワークで分散させるという手もあります。
Webスクレイピングしたものも、ハンドリングしやすいようにDBに保存しておきます。
旧版では対象サイトのフォーマットが変更されているので実行できませんがロジック自体は有効です。
教訓:いつまでもあると思うな、そのページとAPI
Pythonでスクレイピング(準備中)
最も信頼できる2次ソースをまず探さにゃいかんけど….。
他者にとって需要な情報と自分にとって重要な情報は若干異なります。つまり、教えてくれることを待ってても情報は来ない….と。取ってきましょう(^^)。
後は、これらのデータをどう使うか?
パーソナル・アシスタントをどう作るかですね(Melissaのようなもの)。
「今日のパナスタ付近の天気はどう?揃えておいたほうがいい観戦グッズを教えて!交通状況は?スタジアムまでの最適経路を教えて!…….今日ガンバ勝つかな?」てな質問に答えてもらいましょう。
また、音声認識を使う場合、単発な質問に回答するだけではなく、複数の質問をアレンジしてSQLを発行できるような感じにもしたい。
工事中
Leave a Reply