2019年7月30日火曜日

開発環境

はじめての機械学習 (小高知宏(著)、オーム社)の第3章(帰納的学習)、3.1(暗記学習)、3.1.2(n-gram 出現頻度に基づくテキストデータの学習)、(3)n-gramの出現頻度の解析(rankプログラム)をC言語ではなくPythonで取り組んでみる。

コード

Python 3

#!/usr/bin/env python3
import sys
from collections import Counter

counter = Counter((s.strip() for s in sys.stdin))

for ngram, count in counter.most_common():
    print(f'{count:4} {ngram}')

入出力結果(Bash、cmd.exe(コマンドプロンプト)、Terminal、Jupyter(IPython))

$ ./ngram.py 5 < alice.txt | ./rank.py > rank.txt
$ head rank.txt 
7646 
1570 the
 888 '
 877 said
 758 and
 523 that
 485 she
 468 d the
 458 , and
 429 .
$ tail rank.txt 
   1 ld-li
   1 d-lif
   1 -life
   1 ppy s
   1 py su
   1 y sum
   1 ays.
   1 ys.
   1 En
   1 End o
$ head -20 rank.txt 
7646 
1570 the
 888 '
 877 said
 758 and
 523 that
 485 she
 468 d the
 458 , and
 429 .
 399 Alice
 392 Alic
 383 with
 333 was
 329 ' sai
 307 you
 291 very
 257 aid t
 253 this
 240 they
$ 

0 コメント:

コメントを投稿