Python関連のことを調べてみた2021年02月10日

Python関連のことを調べてみた2021年02月10日
目次

Janomeで簡単に品詞登場順の精度を上げる隠し味

Janomeって便利ですよね。でもやはり自然言語処理は難しいものです。 初心者である私が品詞の登場順解析で精度向上した工夫を記します。 #目次 [1.はじめに](#1-はじめに) [2.前処理編(カウント前)](#2-前処理編(カウント前)) [3.後処理編(カウント時)](#3-後処理編(カウント時)) [4.調理例](#4-調理例) [5.おわりに](#5-おわりに) #1. はじめに “`python a = Analyzer(char_filters=cf,token_filters=tf)#解析器生成 results = a.analyze(text)#解析 “` の過程で、“`Analyzer“`を使うわけですが、この引数の部分をいじります。 **簡単に**を目指しているので複雑なことはしません。ごめんなさい。 #2. 前処理編(カウント前) 順位を出す前に予め文字を処理します。そこで登場するのがこちらです。 “`python cf = [UnicodeNormalizeCharFilter()]#前処理フィルタ “` ### Uni
元記事を表示

【Python実践編】ビットコインのアービトラージ(裁定取引)コード例

この投稿では、Python3を使って**仮想通貨の裁定取引**を行います。 今回は、**コインチェック**と**GMOコイン**の価格差を利用してサヤ抜きを行うことを目指します。 以前自分のブログで、 [【Pythonデモコード】仮想通貨のアービトラージ(裁定取引)botの作り方](https://in-base.com/arbitrage-bitcoin-python) という記事を公開したのですが、こちらはあくまでもシュミレーションで実際に売買が作動することはありませんでした。 今回は実際に取引所のAPIを操作するところまでコートに組み込んでみました。 なおコインチェックと GMO コインの口座開設から API キーの発行までは下の記事で公開している手順と全く同じです。 一応画像付きで解説しているので、まだ API キーを発行していない人は参考にしてみてください。 (必要なライブラリなども下記記事内で言及しています) ・[【コピペOK】仮想通貨をPythonで自動売買する方法を初心者向けに解説【coincheck】](https://in-base.com/crypt
元記事を表示

pyenv virtualenv ワンライナーインストール

## 概要 サーバなどを立てたときに、pyenv-virtualenv 環境をワンライナーでインストールします。 3.7.4 をとりあえず。 ## コマンド 2パターン書いています。 1パターン目はdockerコンテナとして立ち上げたubuntu環境上でのコマンド。 2パターン目はコンテナではなく立ち上げたubuntuインスタンス上でのコマンド。 違いはsudoをつけるかどうかだけです。 #### pyenv & virtualenv 環境 for ubuntu on docker “`bash apt update &&apt install -y wget git&& apt install build-essential -y&& git clone https://github.com/pyenv/pyenv.git ~/.pyenv &&\ echo ‘export PYENV_ROOT=”$HOME/.pyenv”‘ >> ~/.profile &&\ echo ‘export PATH=”$PYENV_ROOT/bin:$PATH”‘ >> ~/.pro
元記事を表示

pandasでカンマ区切りの値や正規化されたデータをダミー変数に変換を行う

ダミー変数変換(Dummy Variable Encoding)は One-Hot Encoding とも呼ばれるデータ変換手法です。 pandas では `get_dummies` メソッドを使うと、以下のようにダミー変数へ変換できます。 “`python df = pd.DataFrame({‘user’: [1,2,3], ‘flag’: [‘a’,’b’,’a’]}) pd.get_dummies(df[‘flag’]) “` | | a | b | |:-:|:-:|:-:| | **0** | 1 | 0 | | **1** | 0 | 1 | | **2** | 1 | 0 | 文字列の値をバイナリ値の複数列に変換します。 ## カンマ区切りの値が入っている場合の変換方法 次に、以下のようなカンマ区切りで値を持っているデータフレームでダミー変数への変換を行おうとする場合、 “`python df = pd.DataFrame({‘user’: [1,2,3,4,5],
元記事を表示

ROSの勉強 第8弾:少し発展的なアクション

# #プログラミング ROS< 少し発展的なアクション > ##はじめに 1つの参考書に沿って,ROS(Robot Operating System)を難なく扱えるようになることが目的である.その第8弾として,少し発展的なアクションを扱う. ##環境 #####仮想環境 ||| |:-:|:–| |ソフト|VMware Workstation 15| |実装RAM|2 GB| |OS|Ubuntu 64 ビット| |isoファイル|ubuntu-mate-20.04.1-desktop-amd64.iso| #####コンピュータ ||| |:-:|:–| |デバイス|MSI| |プロセッサ|Intel(R) Core(TM) i5-7300HQ CPU @ 2.50GHz 2.50GHz| |実装RAM|8.00 GB (7.89 GB 使用可能)| |OS|Windows (Windows 10 Home, バージョン:1909)| #####ROS ||| |:-:|:–| |Distribution|noetic| |プログラミング言語|Python 3.8.5
元記事を表示

AWS Lambdaで列車運行情報を定期的にLINEへ通知してみた【Python】

# 背景 近年、電車の運行情報は各事業者が、メール通知サービスや公式twitterアカウントなどで発信していたり、公式アプリでも情報がリアルタイムに見れたりしますね。 しかし、twitterや公式アプリは利用者側が情報を見に行く手間がかかります。メール通知サービスは、メールが多い人はすぐにメールボックス内に埋もれてしまい、情報が取り出しにくいというデメリットも潜在します。 そこで、LINEで定期的にプッシュ通知できるようにしてみました。 電車の運行情報だけでなく、他のことにも応用できると思いましたため、ここにまとめます。 先人たちの知恵をお借りするなどして解決できたことを、この場をお借りして感謝するとともに、大変恐縮ですが**自分のメモ**として、こちらへまとめておきます。   ◆◆◆◆◆◆◆◆◆◆◆ 今回は、特に以下の記事が大変参考になりました。 また、執筆者の [@nsuhara](https://qiita.com/nsuhara)様 には何度も質問させていただき、都度ご丁寧に回答いただきましたことを、大変感謝しております。この場をお借りして御礼申し上げます。 – [
元記事を表示

Word2Vec-Python実装

#Word2Vec-Python実装の概要解説 ##Word2Vecとは 深層学習を使用し、単語をベクトルに変換するアルゴリズムです。 ■入力:単語 ■Word2Vec ■出力:配列(50次元) ##白ヤギが作った日本語Word2Vecモデル Word2Vecを使用し単語をベクトルに変換するためには、事前にWord2Vecの深層学習の重みの学習を完了させておく必要があります。 「word2vec.gensim.model」、「word2vec.gensim.model.syn1neg.npy」、「word2vec.gensim.model.wv.syn0.npy」は白ヤギコーポレーションがPython用ライブラリGensimに用意されているword2vecを実装し、学習を完了させた深層学習の重みデータを使用するためのファイルです。 ##白ヤギが作った日本語word2vecモデルのインストールから実装 __①データを取り込む__ http://public.shiroyagi.s3.amazonaws.com/latest-ja-word2vec-gensim-model.zip
元記事を表示

【cmake】cmakeの最も簡単なversionのupdate方法

背景

cmakeのversionをupdateするのってかなりややこしい。 しかもミスると色々と大変 pipでcmakeのversionをupdate出来るそうな “` pip3 install cmake –upgrade “` “` $ cmake –version cmake version 3.18.4 “`
元記事を表示

ConfigDict()の基本のき

# ConfigDict()とは > This is a container for configurations. It behaves similarly to Lua tables. Specifically: – it has dot-based access as well as dict-style key access, – it is type safe (once a value is set one cannot change its type). Lua tables? 使ったことないからわからない。 # 簡単に辞書が作れるイメージで返り値はyamlっぽいやつ “`python from ml_collections import config_dict dict_name = config_dict.ConfigDict() dict_name.key = value dict_name.new_dict = config_dict.ConfigDict() dict_name.new_dict.new_key = new_value dic
元記事を表示

Keyhac 超入門

ここ数日、Python の学習を兼ねて Keyhac というツールと格闘していまして、 やっと使い方がわかってきたので、シェアしたいと思います。 ## Keyhac とは [@craftware](https://github.com/crftwr) 様が公開されている、キーボード操作を柔軟に変更できるアプリケーションです。 [変換]キーが押されたら、IMEをONにする のような単純なキーの置換から、 エクセル操作中は[F1]キーを無効にするなどのアプリケーション別の設定、 特定のキーを押すだけで、キーボードマクロの実行や別アプリケーションの起動など幅広いことができます。 また、設定スクリプトを Python で記述できるため、 Python の柔軟な文法と強力な機能を使うことができます。 ## Keyhac の導入 下記の公式サイトからダウンロードしてください。 Windows版と、Mac版があります。 – https://sites.google.com/site/craftware/keyhac-ja ## Keyhac の設定方法 Keyhac の設定は、co
元記事を表示

【Python備忘録】random関数について学んだので記します( random関数 / randint() / choice() )

#はじめに 数字やリストの中の要素からランダムに選ぶ機能を持った「random関数」について学んだので、randintとchoiceのふたつの使い方について備忘録として記します。 #使用する関数 「random関数」を用います。 使用する際は、randomモジュールをimportしてから使用します。 “`sample.py import random “` Pythonには print() や max() のようにいつでも使える機能があります。 しかしそれ以外に、使いたい時に取り込む機能もあります。 毎回使わないものは、 import してから使うように作られています。 #「最小の整数 <= n <= 最大の整数」の範囲の整数をランダムに返す 「randint()」を使用します。 ```sample.py random.randint(最小の数, 最大の数) ``` これにより、最小の数と最大の数の間に含まれている数の中からランダムに数値を選択することができました。 #リストからランダムに1つの要素をえらぶ 「random.choice()」を使用します。 ```s
元記事を表示

【Python備忘録】対象の文字列の中に特定の文字列が含まれているかの判別をする (in演算子)

#はじめに pythonで、「in演算子」を用いて対象の文字列の中に特定の文字列が含まれているかの判別をする方法を学んだので、備忘録として記します。 #使用する関数 今回使用するのは「in演算子」というものです。 “`sample.py “特定の文字列” in “対象の文字列” “` 上記のように記すことで、「対象の文字列」の中に「特定の文字列」が含まれているかどうかを判別することができます。 #実際に使ってみる if文での条件分岐と組み合わせて実際に使用してみます。 今回は「いちごりんごみかんなしももブドウパイナップル」という対象の文字列の中に「りんご」という特定の文字列が含まれているか判別し、含まれていた場合、「りんごが含まれています」という文字列を表示することを目標に使用してみます。 “`sample.py line = “いちごりんごみかんなしももブドウパイナップル” if “りんご” in line: print(“りんごが含まれています”) “` これを実行すると、「りんごが含まれています」と無事表示されました。 したがって、対象の文字列の中に
元記事を表示

Visual Studio Code で pipenv を使えるようにする

# はじめに pipenvとVSCodeを使って開発しようと思ったときに,設定に手こずったので備忘録として書いておくことにしました. これが自分の初めての記事なので,見苦しい点など数多くあると思いますが,温かい目で見ていただけるとありがたいです. # 問題 pipenvで作った環境がVSCodeで認識されない.例えば,pipenvを通してダウンロードしたパッケージが認識されないなど. # 解決方法 まずpipenvで作った環境で作動しているpythonの位置を取得します. “`terminal % pipenv shell % which python “` 自分の環境では以下のようなパスが得られました. “`text /Users/ユーザー名/.local/share/virtualenvs/sample-C_0pq_kD/bin/python “` pipenvのshellに入ってからwhichコマンドを使うと,pipenvで使用しているpythonの位置が表示されます. これで得られたパスをVSCodeのsetting.jsonに書き込みます. “`jso
元記事を表示

古いUbuntuにpyenvで新しいPythonを入れる

やんごとなき理由により # 環境 – Ubuntu 14.04 # やりたいこと – pyenv で Python 3.9.0を入れる 普通にやると以下のようなエラーが出てしまう “` ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib? “` # やること ## 新しいopensslを導入 14.04のopensslは古いので、Python 3.7以降が必要とするopenssl 1.0.2以降をビルドしてインストールする。 “`bash cd /tmp mkdir openssl-build wget https://www.openssl.org/source/openssl-1.1.1i.tar.gz tar xvfz openssl-1.1.1i.tar.gz cd openssl-1.1.1i ./config –prefix=/usr/local/openssl/1_1_1i –openssldir=/usr/local/openssl shared m
元記事を表示

【GoogleDrive】グーグルドライブにアップしたファイルをターミナルで指定の場所に保存する方法(Mac)

こんにちは。かをるです。

今回は、グーグルドライブにアップしたファイルを指定の場所へ保存する方法をご紹介します。

データ量が大きくなってアップロードできない場合もコマンドで読み込めば対応可能な場面がありますので覚えておいてもいいと思います。

詳細はブログに記載しました。 https://kaworublog.com/wp-admin/post.php?post=1273&action=edit
元記事を表示

pyenv install 3.x.x で error: C compiler cannot create executables

## 忙しい人向け 細かいことはいいから結論が知りたい人向けに先に結論を記載します。 [解決法3 xcode-betaのインストールと適用](#解決法3-xcode-betaのインストールと適用) で筆者は解決しました。 ## はじめに 久々にPythonで遊ぼうと思ってpyenvでPython3系をインストールしようと思ったらハマって1時間かかったのでメモとして残します。 ## 開発環境 – OS: macOS Big Sur 11.2 – pyenv: 1.2.22 ## 事象 “`zsh $ brew install pyenv “` 実行後にバージョンを指定してPythonをインストールしようとするとタイトルのエラーが発生 します。 筆者の場合は3.9.1をインストールしようとしてエラーになりました。 “`zsh $ pyenv install 3.9.1 ~中略~ BUILD FAILED (OS X 10.15.7 using python-build 20180424) Inspect or clean up the working tre
元記事を表示

【備忘録】python decimalについて

AtCoderでしばしば必要となる浮動小数点演算を行うDecimalについての備忘録。本当は適当に$10^k$倍して整数にして計算すればいいんだけど、割と思い出せなかったりなんだかんだでエラーになったりするので残しておきます。 “`python 1.1 + 2.2 == 3.3 # False “` pythonでこんな感じのことをすると浮動小数点の誤差による影響でFalseになります。(細かい理由は割愛) “`python 1.1 + 2.2 # 3.3000000000000003 “` 確かに$10^{-16}$の桁で誤差が生じています。 ※たまに誤差による影響を受けないものもあります(0.1+0.1 とか 0.2+0.2+0.4とか) “`python from decimal import Decimal Decimal(“1.1”) + Decimal(“2.2”) == Decimal(“3.3”) # True “` こんな感じでDecimalを使えば誤差なく(日常的な感覚の)10進数による小数点演算が行えます。 Decimalを使う際
元記事を表示

【重回帰分析】ボストン住宅価格データセットを重回帰分析で解析する

## 概要 scikit-learnのサイトでは、いくつかToyデータセットが用意されています。 そのうちの一つの「ボストン住宅価格データセット」を使って重回帰分析を行い、残差プロットをしてみたところ、気になる外れ値が見つかったのでその原因を考察してみました。 ## ボストン住宅価格データセットを重回帰分析する ### 必要なライブラリのインポート “`py import matplotlib.pyplot as plt import numpy as np import pandas as pd from sklearn.linear_model import LinearRegression from sklearn.preprocessing import StandardScaler from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error from sklearn.datasets import load_boston %mat
元記事を表示

【Python】ブックやシートのセルを保護する

pythonを使用してExcelファイルの操作を勉強しています。 本日の気づき(復習)は、ブックやシートのセルの保護に関してです。 pythonでExcelを操作するため、openpyxlというパッケージを使用しています。 # ブックを保護する WorkbookProtectionオブジェクトをWorkbook.securiti属性に代入することで ブックを保護する事が出来ます。 また、パスワードが必須なのでこちらも一緒に設定します。 “`python:protect_book.py from openpyxl import load_workbook from openpyxl.workbook.protection import WorkbookProtection wb = load_workbook(‘資料.xlsx’) # ブックを保護 wb.security = WorkbookProtection( workbookPassword=’test’, lockStructure=True ) wb.save(‘資料_保護済.xlsx’) “` これで
元記事を表示

ArduinoとRaspberryPiでECメーターを作ってみた

#概要  本記事は、ArduinoとRaspberryPiおよびコンセントの端子を用いてEC計を作製した記録です。Arduinoをアナログデータ(EC値)の取得に用い、RaspberryPiでcsvファイルへの連続的なデータとしての保存とインターネット接続によるIoT化を図りました。コンセントとArduinoを使用したEC計はMichael Ratcliffe氏が作製したもの*1をベースにしています。  作製した結果、概ね通常の(amazonで数千円くらいの)肥料濃度計測に使用する分には問題のないレベルの測定装置を作成することができました。また、cronを活用することでcsvファイルへの連続的なEC値の記録を可能とします。 #0. そもそもEC計とは  この記事をご覧になられているということは、EC値を図りたいという良い意味で変態の方であるので笑、今さら説明は不要かと思いますが、私の勉強のため記しておきます。不要な方は読み飛ばしてください。  詳細な式展開を伴う正確な理論は、教科書に譲るとして、今の私たちの目標は養液の濃度(特に養液栽培等農業分野における養液の濃度)を図ることです。  
元記事を表示

OTHERカテゴリの最新記事