新納研新人学生の課題提出状況(Python)


課題1

0 以上 10000 以下の整数をランダムに 100個生成し、
それぞれの数を2進数に直して表示せよ。

(4月15日、西、完了(5月26日、CAO、完了(6月1日、富岡、完了

課題2

英文のファイル eng.txt の中に小文字の a,i,u,e,o がそれぞれいくつ
存在するかを数えよ。

(4月15日、西、完了(5月26日、CAO、完了(6月1日、富岡、完了

課題3

英文のファイル eng.txt の中で使われているすべての文字に
ついてその頻度を調べ、頻度が大きい順にそれらを表示せよ。

eng.txt はアスキー文字だけで構成されているとする。
文字として、 space と tab 、及び改行などの制御コードは除く。

(4月15日、西、完了(6月1日、CAO、完了(6月1日、富岡、完了

課題4

(1) http://nlp.dse.ibaraki.ac.jp/~shinnou/netnews.zip をダウンロードして、
どこかの ディレクトリの下に展開する。
1.txt から 395.txt の 395個のテキストファイルができる。

(2) 1.txt から 395.txt のテキストファイルはコードが EUC である。
これを nkf を利用して、utf-8 に変換する shell scirpt を作成せよ。
ファイル名は 1.utf8 などにする。

実行結果は以下の感じ

> ./kadai4.sh
1.txt EUC --> 1.utf8 UTF-8 変換終了
2.txt EUC --> 2.utf8 UTF-8 変換終了
・・・
395.txt EUC --> 395.utf8 UTF-8 変換終了

>

kadai4.sh が bash の shell script です。kadai4.sh を送って下さい。

(4月15日、西、完了(6月1日、富岡、完了

課題5

1.utf8 から 395.utf8 の各テキストファイルを mecab で形態素解析する
shell scirpt を作成せよ。
ファイル名は 1.mcb などにする。

実行結果は以下の感じ

> ./kadai5.sh
1.utf8 形態素解析終了 --> 1.mcb
2.utf8 形態素解析終了 --> 2.mcb
・・・
395.utf8 形態素解析終了 --> 395.mcb

>

kadai5.sh が bash の shell script です。kadai5.sh を送って下さい。

(4月19日、西、完了(6月1日、富岡、完了

課題6

課題5 で 1.mcb から 395.mcb ができている。N.mcb から名詞の単語とその頻度を表示せよ。

以下は例です。

> python kadai6.py 1.mcb
クラ 2
統計 1
手段 1
動き 1
...
経済 3
率 1
都市 1

>

kadai6.py を送付して下さい。

(4月19日、西、完了(6月1日、富岡、完了

課題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 を送付して下さい。

(4月19日、西、完了(6月1日、富岡、完了

課題8

課題7 により 1.noun から 395.noun ができている。
それらをマージして、文書集合全体の名詞とその頻度を
求めるプログラムを作成せよ。ただし頻度が1 の名詞は除く。
出力のイメージは以下。

> python kadai8.py *.noun
クラ 2
統計 20
手段 331
...
経済 101

>

kadai8.py を送って下さい。

(4月19日、西、完了(6月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 を送って下さい。

(4月20日、西、完了(6月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月27日、西、完了