サクッと。
成果物
コード
list_conjugation.py
#!/usr/bin/env python3 # -*- coding: utf-8 -*- import csv import sys def _csv_files(): # 用言(動詞、形容詞、助動詞) return ('Verb.utf8.csv', 'Adj.utf8.csv', 'Auxil.utf8.csv') def show_help(): import os this_file_name = os.path.basename(__file__) doc = '''\ 概要 : 入力した用言の活用形一覧を返す。 使い方 : 第一引数に用言の基本形を入力する。 コマンド書式: python3 {0} 用言 (デリミタ)" コマンド例 : python3 {0} '動く'" : python3 {0} '動く' ','" : python3 {0} '動く' $'\\n'" : python3 {0} '動く' $'\\t'" : python3 {0} '楽しい'" : python3 {0} '如し'" 必要なもの : 辞書ファイル {1}\ '''.format(this_file_name, _csv_files()) print(doc) # 入力した用言(基本形)における他の活用形名を出力する def list_conjugation(): if 2 > len(sys.argv): show_help() sys.exit() conjugations = _read_csv(sys.argv[1]) if 0 == len(conjugations): print("ERROR: 用言「{}」は辞書にありませんでした。".format(sys.argv[1]), file=sys.stderr) sys.exit() show_list(conjugations) # 入力した基本形に一致するレコードをCSVから取得する def _read_csv(word): res = [] filenames = _csv_files() for filename in filenames: if 0 < len(res): return res reader = csv.reader(open(filename, "r", encoding="utf-8")) for row in reader: if word == row[10] and row[9] not in res: res.append(row[9]) return res def show_list(conjugations): delimiter = "\n" if 2 < len(sys.argv): delimiter = sys.argv[2] print(delimiter.join(conjugations)) if __name__ == '__main__': list_conjugation()
- 実行パスに辞書ファイルが存在すること
- 前々回作成したヤツ
実行
python3 list_conjugation.py 叩く
基本形 未然形 未然ウ接続 連用形 連用タ接続 仮定形 命令e 仮定縮約1
叩く
という用言には、上記のような活用形がある。
対象環境
- Raspbierry pi 3 Model B+
- Raspbian stretch 9.0 2018-11-13 ※
- bash 4.4.12(1)-release ※
- Python 3.5.3
- SQLite 3.29.0 ※
- MeCab 0.996ユーザ辞書
$ uname -a Linux raspberrypi 4.19.42-v7+ #1218 SMP Tue May 14 00:48:17 BST 2019 armv7l GNU/Linux