新納研学生の課題提出状況(Python)
5月23日河野君完了です。7月1日永田君完了です。
課題1
0 以上 10000 以下の整数をランダムに 100個生成し、
それぞれの数を2進数に直して表示せよ。
4月11日 河野完了、5月27日 永田完了
課題2
英文のファイル eng.txt の中に小文字の a,i,u,e,o がそれぞれいくつ
存在するかを数えよ。
4月11日 河野完了、5月27日 永田完了
課題3
英文のファイル eng.txt の中で使われているすべての文字に
ついてその頻度を調べ、頻度が大きい順にそれらを表示せよ。
eng.txt はアスキー文字だけで構成されているとする。
文字として、 space と tab 、及び改行などの制御コードは除く。
4月21日 河野完了、5月27日 永田完了
課題4
(1) http://nlp.dse.ibaraki.ac.jp/~shinnou/netnews.zip
をダウンロードして、
どこかの ディレクトリの下に展開する。
1.txt から 395.txt の 395個のテキストファイルができる。
(2) Gow の bash 上使える nkf をインストールする
(3) 1.txt から 395.txt のテキストファイルはコードが EUC である。
これを nkf を利用して、SJIS に変換する shell
scirpt を作成せよ。
ファイル名は 1.sjis などにする。
実行結果は以下の感じ
> ./kadai4.sh
1.txt EUC --> 1.sjis SJIS 変換終了
2.txt EUC --> 2.sjis SJIS 変換終了
・・・
395.txt EUC --> 395.sjis SJIS 変換終了
>
kadai4.sh が bash の shell script です。kadai4.sh
を送って下さい。
5月8日 河野完了、6月3日 永田完了
課題5
Gow の環境の中で mecab を使えるようにする
1.sjis から 395.sjis の各テキストファイルを mecab で形態素解析する
shell scirpt を作成せよ。
ファイル名は 1.mcb などにする。
実行結果は以下の感じ
> ./kadai5.sh
1.sjis 形態素解析終了 --> 1.mcb
2.sjis 形態素解析終了 --> 2.mcb
・・・
395.sjis 形態素解析終了 --> 395.mcb
>
kadai5.sh が bash の shell script です。kadai5.sh
を送って下さい。
5月8日 河野完了、6月3日 永田完了
課題6
課題5 で 1.mcb から 395.mcb ができている。N.mcb から名詞の単語とその頻度を表示せよ。
以下は例です。
> python kadai6.py 1.mcb
クラ 2
統計 1
手段 1
動き 1
...
経済 3
率 1
都市 1
>
kadai6.py を送付して下さい。
5月15日 河野完了、6月27日 永田完了
課題7
kadai6.py を利用して、N.mcb 内の名詞の単語とその頻度を記したファイル N.noun を作る。
1.noun から 395.noun を作る script を作成せよ。
以下は例です。
> ./kadai7.sh
python kadai6.py 1.mcb > 1.noun
python kadai6.py 2.mcb > 2.noun
・・・
python kadai6.py 395.mcb > 395.noun
>
kadai7.sh を送付して下さい。
5月16日 河野完了、6月27日 永田完了
課題8
課題7 により 1.noun から 395.noun ができている。
それらをマージして、文書集合全体の名詞とその頻度を
求めるプログラムを作成せよ。ただし頻度が1
の名詞は除く。
出力のイメージは以下。
> python kadai8.py *.noun
クラ 2
統計 20
手段 331
...
経済 101
>
kadai8.py を送って下さい。
5月16日 河野完了、7月1日 永田完了
課題9
課題8 で出力される名詞を索引語とする。
各名詞に 1 から N までの番号を付与して、
各文書を N 次元のベクトルで表現するプログラムを作成せよ。
まず下記のコマンドで INDEX ファイルを作成する。
python kadai8.py *.noun | awk '{print $1}' | cat -n > INDEX
# 上記のやり方でなくても良い。とにかく INDEX
ファイルを作る。
X.noun のファイルを開き、X.noun 内の各名詞
n に対して、
その頻度 h を読み、INDEX 内に n があればその
index を調べ、
index h
を出力する。INDEX 内に n がなければ何もしない。
X.noun 内の各名詞 n に対して上記の処理を行い、
その出力を X.tf とせよ。
> python kadai9.py *.noun
# 上記の結果、1.tf から 395.tf まで作成される
上記の kadai9.pl を送って下さい。
5月16日 河野完了、7月1日 永田完了
課題10
まず libsvm をインストールする。
http://www.csie.ntu.edu.tw/~cjlin/libsvm/
課題9 までで 1.tf から 395.tf までできている。
実は、以下のような記事のトピックになっている。
1 〜 63 経済
64 〜 116 国際
117 〜 173 政治
174 〜 355 社会
356 〜 395 スポーツ
1 〜 8, 64 〜 71, 117 〜 124, 174 〜 181,
356 〜 364
を訓練データ、残りをテストデータとして、
SVM により各テストデータのトピックを識別せよ。
1.tf から 395.tf から訓練データとテストデータを
作成するプログラムを作って下さい。
#訓練データとテストデータは大きさを1に正規化して下さい。
> python kadai10.py
(この結果、train.dat と test.dat ができる)
> svm-train -t 0 train.dat model
> svm-predict test.dat model kekka
kadai10.py と kekka を送って下さい。正解率も教えて下さい。
5月23日 河野完了、7月1日 永田完了