無能学生の作業ログ

せっかく新しいことやっても作業ログがないと身にならないので.

Windowsでconda createで仮想環境を作る手順.

生じたこと

自然言語処理の一つのトピックモデルを触ってみようと思い,pip install gensimをした後,jupyter notebook上でfrom gensim import corporaをしようとしたらNo moduleになってしまった問題.しかしライブラリのリストにはgensimがあるぞ??

先輩曰く,python3.6.0のバージョンが悪いっていうことだったのでpython3.5系を使える環境を作った.

$ conda create -n python35 python=3.5.2 anaconda

conda createで仮想環境作りますの指示.python35は環境の名前,python = 3.5.2ではバージョンの指定をしている. anacondaを最後に書くことで自動でanacondaがインストールされる.

$ ipython kernel install --user --name python35

で名前を指定してkernelにinstallする.

おまけ

$ pip install -U gensim

-Uの部分はアップグレードの意

$ python -V

でバージョンの確認.

hexo関連で色々面倒なことをまとめてみた

hexoとは?

静的なホームページを生成しくれるもの. mdファイルを作ればインストールしたテーマに沿ったhtmlが生成する. \public 以下のファイルを全てWebサーバに送ることでサーバがhttpのポートを開けていればWebサイトにつながる.

hexo -g

.mdに沿ったhtmlファイルを作る.

まあもちろんhexoはデフォルトでは使えないので,インストールしないといけない. homebrewMacのパッケージ管理ツールとして知られているが,hexoに必要なnpmを入れるのにも使える. npmはnode.jsのパッケージ管理ツール.

brew install node

npmが使えるように. node packege manager かな?

npm install -g hexo

hexoのインストー-gはグローバルの意. node_modulesというディレクトリにインストールしたパッケージが配置される.

hexo g 

でhtmlとかを生成 ggenerateの意味.

PATHを通すって結局何なの?

どうやらコマンド検索パスを追加することらしい.

参考サイト http://qiita.com/soarflat/items/09be6ab9cd91d366bf71

コマンド検索パス=シェルがコマンド実行ファイルを探しに行くパスのこと 例えば,lsというコマンドは/binディレクトリに格納されているはず つまり実行は,

/bin/ls

であるはずだが,

ls

と入力するだけで実行される.

aprioriアルゴリズムってなんぞ?

apriori algorismとは

アイテムの出現頻度からアイテム間の関連性を出そうとするアルゴリズム. いわゆるビールとオムツの関係を出す. {オムツ,ビール} {オムツ,洗剤,お菓子} {ビール,お菓子,アイス}…みたいなデータ

支持度=アイテムA,アイテムBが共に含まれる確率

確信度=アイテムAが含まれるうちアイテムA,アイテムBが含まれる確率

ブランド推薦なら支持度がある程度低くても確信度の高いブランドを推薦する. 支持度を低くしすぎるとアイテムCが含まれる確率よりアイテムA,アイテムBが共に含まれる確率が高くなる. そもそもアイテムCの頻度が小さいならあまり正確ではない.

f:id:sakamoto-ryoma0930:20170603131109p:plain 使ったデータ.

参考サイト

実装したやつ.環境はpython2なので環境を分けないとな. github.com

skzy.hatenablog.com

ゴールから始めるC#-値渡しと参照渡し

メソッドの中にある値は別のメモリを使っているため,「値渡し」では元の変数と別の場所で計算される.

元の変数を変更したい場合は「参照渡し」でその変数を指定しなくてはならない.

 

値渡し

int a=10;
Add(a);     //a=10

private void Add(int a){//仮引数なので他の名前に変更しても良い
    a++; //a=10→11
}
 
aを変更したい場合は戻り値をつけるか,参照渡しにする.
int a=10;
a=Add(a);
private int Add(int a){//仮引数なので他の名前に変更しても良い
    a++; //a=10→11
    return a;
}
 
参照渡しでは実引数にも影響.
int a=10;
Add(ref a);     //a=10→11

private void Add(ref int r){
    r++;//rの参照先を変更します.
}
 
参照渡しの1種で,呼び出し元での初期化が不要なoutというものがある.
 
int n,m; //初期化の必要なし
simpleMethod(10,5,out n, out m); //メソッド内で計算された n=15,m=5が返る

private void simpleMethod(int a, int b, out int sum, out int diff){
    sum = a+b;
    diff = a-b; //必ず値を代入しなくてはならない.
}