2020-01-01から1年間の記事一覧

PythonのNLPライブラリ入門 - NLTKと spaCyの比較

NLPで使用されている2つの重要なライブラリはNLTKとspaCyです。両者にはそれぞれ性質が異なる。 機能性・言語対応 NLTKは、研究者のためさまざまな問題のために選択するアルゴリズムを提供するが、逆にこれは開発者のための悩みの種となっています. 一方、sp…

vimでsetとletの違い

vim

let は変数に値を代入し、set は Vim の内部オプションの一つに値を代入します。 例えば、次のような場合は :let mystring='Hello! を使って新しい変数を宣言します。 :set tabstop=4 或いは :set expandtab 使用して Vim のオプションを設定します。

syntax on と syntax enableの違い

syntax on vs syntax enable syntax enable コマンドは、現在の色の設定を保持します。これにより、 :highlight コマンドを使用して、このコマンドを使用する前または使用した後に好みの色を設定することができます。Vim にデフォルトの設定を上書きさせたい…

Vimのexpression register とは

vim

expression register ("=")を使用することで式を実行することができる。これは例を出すとわかりやすい。挿入モードで、Ctrl-r =と入力すると、コマンドラインに「=」の記号が表示されます。そして、2+2 <エンター>と入力すると、4が出力されます。これを使…

sizeを指定してtermコマンド

termの++cols/++rowsオプションを使う :vertical term ++cols=100 比率でsplitしたい場合はprintfなどを使うと exe printf("vertical terminal ++cols=%d<CR>",winheight(0) * 2/3)</cr>

pandasでgroupbyしたオブジェクトの中身をみよう

groupbyオブジェクトをprintする方法 groupbyしたあとは「DataFrameGroupBy」オブジェクトになる。その中身をみるには以下のような方法がある df = pd.DataFrame([{"a" : 1,"b" : 2 , "c" : 3 },{"a" : 2 , "b" : 3, "c" : 5},{"a" : 1 , "b" : 9, "c" : 5} …

pandasでDataFrameで差分をとる

以下のようなDataframeを考えよう。 df = pd.DataFrame([{"a" : 1,"b" : 2 , "c" : 3 },{"a" : 2 , "b" : 3, "c" : 5},{"a" : 1 , "b" : 9, "c" : 5} ] ,index=['1','2','3']) # df a b c 1 1 2 3 2 2 3 5 3 1 9 5 このとき、a列の値ごとに差分をとりたい場…

provider.iamRoleStatementsでLambdaの権限を追加

LambdaのIAM Roleの設定 Serverless frameworkのLambda関数のIAM Roleの設定を行う。 設定は設定ファイルserverless.ymlで行う。 デフォルトIAM Role デフォルトでは、1つのIAM Roleはサービス*1内のすべてのLambda関数で共有されます。また、デフォルトでは…

「serverless create」でテンプレからのserverless framework入門

serverless frameworkのテンプレ機能を使って気軽に入門 serverless create --template aws-python3 --name hello-world このコマンドを実行後ファイルは以下のようになる .gitignore handler.py serverless.yml

serverless frameworkを設定する : AWS編

インストール 以下のコマンドでグローバルインストール sudo npm install -g serverless Serverless frameworkの設定 serverless config credentials --provider aws --key <ACCESS KEY ID> --secret <SECRET KEY> クレデンシャルファイルにキー/シークレットを保存しておけば、各コマン</secret></access>…

serverless frameworkでpython packageのバンドルを楽々に

serverless frameworkのpython packageバンドリングプラグイン: serverless-python-requirements serverless-python-requirementsとはrequirements.txtの依存関係を自動的にバンドルし、PYTHONPATHで利用できるようにするためのServerless v1.xプラグイン。 …

よく使うzipオプション

-f freshen: 変更されたファイルのみ -u update: 変更されたか新しいファイルのみ -d zipfile 内のエントリを削除 -m zipfile に移動 (OS ファイルの削除) -r ディレクトリへの再帰 -j ジャンク(記録しない)ディレクトリ名 -0 ストアのみ -l LF を CR LF に…

Poetryを使ってLambda関数をデプロイしたい

AWSのドキュメントに従ってAWS Lambda用のPythonスクリプト(Poetryの仮想環境内)をパッケージ化してデプロイしたい。 背景 serverless frameworkを使ってPython Lambda関数をデプロイする方法については、すでに多くの記事が存在するが、Poetryと組み合わ…

Python、distutilsの削除提案

Pythonではdistutils モジュールのかわりにsetuptools パッケージの使用を推奨してきたた。setuptools は最近 distutils の完全なコピーを統合し、この標準ライブラリに依存しなくなった。Pip はすでに長い間、パッケージをインストールする際に黙って distu…

Pythonのライブラリ・フレームワークにおけるloggingの設計基礎、4つのキワードを理解する

Pythonのログイングを理解する上で重要な4つのキーワードを解説する Loggers : loggingシステムにメッセージを送信するためにアプリケーションコードによって使用される Formatters : 出力のためにメッセージをフォーマットする Filters : 細かい出力制御を…

aws s3にあるファイルサイズなどを取得するaws-cliコマンド

取得予定のファイルサイズを知りたいことってあるよね。 aws s3にあるファイルサイズなどを取得するaws-cliコマンドを以下に示します aws-cliコマンド aws s3 ls s3://[バケット名]/[フォルダ名]/ --recursive --human --sum オプションの説明: --human-read…

yum install したライブラリのインストールディレクトリを調べる

rpm -ql t を使う rpm -ql t libraryname 例: yum install でlogstashをインストールした場合 rpm -ql t logstash |fgrep bin/logstash

shell scriptでcsvファイルのカラム数を数える

headerがあるcsv、または1行目のカラム数が最大のカラム数であることが保証されているとすると以下のスクリプトが使える head -1 yourcsvfilename.csv | sed 's/[^,]//g' | wc -c point sedコマンドを使いカンマ以外の文字列を削る

Elasticsearchでのreindexとclone indexの違い

Question: Elasticsearchでのreindexとclone indexの違いはなに? ElasticSearch 7.4からは、新しく導入されたClone Index APIとreindexの違いはんだろうか? Clone API Reindex API 答え: Reindexは、ソースインデックスから設定をコピーしない。マッピング…

Rundeckのオプション設定講座

許容値/許可された値(Allowed values) 許可される値は、引数が取り得る値のこと。これには、値の静的なリストや、オプションデータを提供するサーバーへのURLを含めることができる。値は、,(カンマ) 区切りの文字列を入力として指定することができますが、"…

run task時のtask definitionのoverride

run-task コマンドの--overridesオプションを指定することで既存のタスク定義をオーバーライドすることができる。例えばtask definitionで設定されたデフォルトの環境変数をオーバーライドして新しい環境変数を追加したりできる。ただしオーバーライドには合…

shell scriptでエラーをみやすくする

GNU/Linux上で書かれテストされたスクリプトがmacOS上で正しく実行されない、あるいはその逆で、コアとなるユーティリティのGNU版とBSD版の違いのために正しく実行されないというのはよくある問題です。エラーメッセージはスクリプトの出力で溺れてしまうこ…

shellで拡張子を落とす方法

shellで拡張子を落とす方法 : cut commandを使う name=$(echo "$filename" | cut -f 1 -d '.')

aws s3のcliでs3 lsを使ってディレクトリだけ取得する

sedを使っていらないものを削除。 sed のオプション d ... sedで削除 E ... sedの正規表現 source awsc.sh ; aws s3 ls s3://bucketname/path/to/file/ | awk '{print $2}' |sed -E '/.*[^\/]$/d' > folders.txt

shell scriptでファイル読み込みながらloopをぶん回す

while read do ..done < filename でできる while read f do echo $f done < load.txt

shellスクリプトで環境変数を読み込んでその値のまま他のコマンドを実行する方法

「;」を使って以下のように1行でかける secrets.sh ... 環境変数などの設定が書いてるシェル do.py ... その設定ファイルをもとに実行したいスクリプト $ source ./secrets.sh; sh do.py

ファイルディスクリプタとは

ファイルディスクリプタ(File descriptor,FD)とは、OSがカーネルのレイヤで用意している抽象化の仕組みの一つ。POSIX系のOSでは可能な限り多くのものが「ファイル」として抽象化される。例えば、いわゆるファイルとしてイメージされるもの以外のOSやCPUに内…

Rで回帰分析 with mtcars

mtcarsで回帰分析 Rのビルトインデータフレームmtcarsを使って、回帰分析をしてみる。 燃費( mpg )と重量( wt )は逆相関の関係がある。 mpg ~ wtという式はwtが説明変数mpgが教師データであることを示す plot(mpg ~ wt, data = mtcars, col=2) # Weight …

mtcars: Rのビルトインデータフレーム

Rのビルトインデータフレーム : mtcars ビルトインのmtcars データフレーム。 1974年の『Motor Trend US』誌から抜粋した、32台(1973~74年モデル)の自動車の燃費と、自動車のデザインと性能の10の側面から構成されている。 詳細については、 help(mtcars)…

DataFrameでDate Typeを降順にsortする

Rでdate type columnをsortする testdata <- data.frame(value=c(1, 2,4), date=as.Date(c('2004/1/10 ', '2006/1/11 ', '2001/1/2'))) testdata[order(testdata$date),] 数値型などだと-をつけると逆にsortできる。 日付だと「-」はつけれないのでrev関数を…