Search
Hodně užitečných nástrojů pro uživatele počítačů má formu příkazů/skriptů spouštěných z příkazové řádky (ls, dir, grep, …). Tyto příkazy obvykle přijímají argumenty uvedené na příkazové řádce za příkazem (např. ls -la), které ovlivňují chování příkazu. Python obsahuje standardní modul argparse (tutorial), který umožňuje snadno konfigurovat možné parametry skriptu a následně je snadno zpracovat.
ls
dir
grep
ls -la
Skript, který máte vytvořit, se má chovat podle specifikací. To lze zajistit např. tak, že modul argparse pro klasifikátor k-NN nakonfigurujete následujícím způsobem:
argparse
import argparse def setup_arg_parser(): parser = argparse.ArgumentParser(description='Learn and classify image data.') parser.add_argument('train_path', type=str, help='path to the training data directory') parser.add_argument('test_path', type=str, help='path to the testing data directory') parser.add_argument('-k', type=int, help='number of neighbours (if k is 0 the code may decide about proper K by itself') parser.add_argument("-o", metavar='filepath', default='classification.dsv', help="path (including the filename) of the output .dsv file with the results") return parser
Když pak tuto funkci použijete takto:
parser = setup_arg_parser() args = parser.parse_args() print(args.train_path)
proměnná args bude obsahovat všechny potřebné informace předané skriptu na příkazové řádce a můžete s nimi dál pracovat. Pro naivní bayesovský klasifikátor stačí uvedený kód jen drobně modifikovat (odstranit argument -k).
args
-k
Soubory knn.py a naive_bayes.py můžete použít jako výchozí kostru vašeho řešení. Pokud např. modul knn.py spustíte jako
knn.py
python3 knn.py -k 3 ./train_data ./test_data
Training data directory: ./train_data Testing data directory: ./test_data Output file: classification.dsv Running k-NN classifier with k=3
Modul naive_bayes.py můžete použít obdobně.
naive_bayes.py