新納研学生の課題提出状況(Perl)
課題1
0 以上 10000 以下の整数をランダムに 100個生成し、
それぞれの数を2進数に直して表示せよ。
國井 4月10日完了、菊池6月11日完了
課題2
英文のファイル eng.txt の中に小文字の a,i,u,e,o
がそれぞれいくつ
存在するかを数えよ。
國井 4月10日完了、菊池6月11日完了
課題3
英文のファイル eng.txt の中で使われているすべての文字に
ついてその頻度を調べ、頻度が大きい順にそれらを表示せよ。
eng.txt はアスキー文字だけで構成せいているとする。
文字として、 space と tab 、及び改行などの制御コードは除く。
國井 4月10日完了
課題4
(1) http://nlp.dse.ibaraki.ac.jp/~shinnou/netnews.zip
をダウンロードして、
どこかの ディレクトリの下に展開する。
1.txt 箸キ 395.txt の 395個のテキストファイルができる。
(2) Cygwin の環境の中で 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
を送って下さい。
國井 4月13日完了、菊池 7月6日完了
課題5
Cygwin の環境の中で mecab を使えるように
PATH を設定する、あるいはリンクを張る
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
を送って下さい。
國井 4月26日完了、菊池 7月6日完了
課題6
課題5 で 1.mcb 箸キ 395.mcb ができている。N.mcb
から名詞の単語とその頻度を表示せよ。
以下は例です。
> perl kadai6.pl 1.mcb
クラ 2
統計 1
手段 1
動き 1
...
経済 3
率 1
都市 1
>
kadai6.pl を送付して下さい。
國井 4月27日完了、菊池 7月27日完了
課題7
kadai6.pl を利用して、N.mcb 内の名詞の単語とその頻度を記したファイル
N.noun を作る。
1.noun 箸キ 395.noun を作る script を作成せよ。
以下は例です。
> ./kadai7.sh
perl kadai6.pl 1.mcb > 1.noun
perl kadai6.pl 2.mcb > 2.noun
・・・
perl kadai6.pl 395.mcb > 395.noun
>
kadai7.sh を送付して下さい。
國井 4月27日完了、菊池 7月27日完了
課題8
課題7 により 1.noun から 395.noun ができている。
それらをマージして、文書集合全体の名詞とその頻度を
求めるプログラムを作成せよ。ただし頻度が1
の名詞は除く。
出力のイメージは以下。
> perl kadai8.pl *.noun
クラ 2
統計 20
手段 331
...
経済 101
>
kadai8.pl を送って下さい。
國井 5月2日完了
課題9
課題8 で出力される名詞を索引語とする。
各名詞に 1 から N までの番号を付与して、
各文書を N 次元のベクトルで表現するプログラムを作成せよ。
まず下記のコマンドで INDEX ファイルを作成する。
perl kadai8.pl *.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 とせよ。
> perl kadai9.pl *.noun
# 上記の結果、1.tf から 395.tf まで作成される
上記の kadai9.pl を送って下さい。
國井 5月10日完了
課題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 から訓練データとテストデータを
作成するプログラムを作って下さい。
> perl kadai10.pl
(この結果、train.dat と test.dat ができる)
> svm-train -t 0 train.dat model
> svm-predict test.dat model kekka
kadai10.pl と kekka を送って下さい。
國井 5月18日完了
課題11
上記の kekka ファイルから、正解率を計算するプログラムを作ってください。
國井 5月18日完了