投稿

3月, 2020の投稿を表示しています

sudachiPy を、python から使うのと、PyCall 経由の julia で使うのはどちらが早いのか

sudachiPy を、python から使うのと、PyCall 経由の julia で使うのはどちらが早いのか比べてみます。 例文は、なぜか、あの古典で、その訳を青空文庫から落して来ます。青空文庫は shift_JIS のエンコードで、 CR/LF の改行記号です。ターミナルでダウンロードして、エンコードを UTF-8、改行記号を LF に nkf を使って変更します。なお、"さっきダウンロードしたフォルダー" というフォルダーの中にターミナルで `cd` 移動してから開始の前提です。 [ターミナル] % wget https://www.aozora.gr.jp/cards/000052/files/5016_ruby_9746.zip --2020-03-14 16:24:54-- https://www.aozora.gr.jp/cards/000052/files/5016_ruby_9746.zip www.aozora.gr.jp (www.aozora.gr.jp) をDNSに問いあわせています... 59.106.13.115 www.aozora.gr.jp (www.aozora.gr.jp)|59.106.13.115|:443 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 16790 (16K) [application/zip] `5016_ruby_9746.zip.1' に保存中 5016_ruby_9746.zip.1 100%[=============================================>] 16.40K --.-KB/s 時間 0s 2020-03-14 16:24:54 (71.5 MB/s) - `5016_ruby_9746.zip.1' へ保存完了 [16790/16790] [ターミナル] % unzip 5016_ruby_9746.zip Archive: 5016_ruby_9746.zip inflating: 01kiritsubo.txt [ターミナル] % nkf --guess 01k...

julia で、json 形式のファイルを関数で DataFrame に変換する覚え書き

julia で、json 形式のファイルを DataFrame (Array) に変換する覚え書きです。データには、 Koto Furumiya さんの pokemon_data を使わせて頂きます。julia は 1.31です。 もちろん、for ループを使って、せっせと読むでいけば、json 形式のファイルを DataFrame (Array) に変換できます。しかし、 なぜ、今さら json 形式のファイルを DataFrame (Array) に変換について記載するかというと、関数化した際の初回実行速度の問題を感じているからです。 getindex() を使いますが、利点は、 関数化 (function ... end) した際の初回実行時間の短縮 for ループの回避 (global 変数を触るのを抑える目的も兼ねる) Array の型宣言の簡略化 以上でしょう。for ループで1個の json を処理するだけなら、以下は不要かもしれません。関数化を検討していて1回目の回りが遅すぎると感じている方には役に立つと考えます。 自分の事例では、初回のみ10秒以上を費やすことが多かったためです。勝手な想像ですが、最適解を探すのに時間を使っているような印象です。 関数化2週目以降は、for ループでの制御でも、getindex() を使う下記の方法でも、自分の事例では大きくは違わない印象でした。 さて、以上が前書きです。まず、データを採ってきます。 using HTTP, JSON, DataFrames pokeData_j = HTTP.request("GET", "https://raw.githubusercontent.com/kotofurumiya/pokemon_data/master/data/pokemon_data.json") 次に json を読み込みます。 pokeData = JSON.parse(String(pokeData_j.body)) これで、 pokeData に、 julia> summary(pokeData) "918-element Array{Any,1}" julia>...