やりたいこと
- 品詞を取得する
- 活用形の一覧を取得する
- 指定した活用形の語を取得する
これらができれば、あとは好きに加工できるはず。
目的 | スクリプト名 |
---|---|
品詞を取得する | get_lexical_category.py |
活用形の一覧を取得する | list_conjugation.py |
指定した活用形の語を取得する | get_conj_word |
1. get_lexical_category.py
python3 get_lexical_category.py "品詞・活用形を問わない何らかの語"
品詞名1 品詞名2 品詞名3 ...
CSVファイルの1列目に完全一致または部分一致した行があるなら、そのファイル名(品詞)を出力する。
ただ、これは
mecab
コマンドにまかせたほうがいいかもしれない。
echo "私" | mecab
私 名詞,代名詞,一般,*,*,*,私,ワタシ,ワタシ
echo "学ぶ" | mecab
学ぶ 動詞,自立,*,*,五段・バ行,基本形,学ぶ,マナブ,マナブ
echo "私はMeCabを学んで文章を生成・修正するツールを作りたい。" | mebab
私 名詞,代名詞,一般,*,*,*,私,ワタシ,ワタシ は 助詞,係助詞,*,*,*,*,は,ハ,ワ MeCab 名詞,一般,*,*,*,*,MeCab,*,* を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 学ん 動詞,自立,*,*,五段・バ行,連用タ接続,学ぶ,マナン,マナン で 助詞,接続助詞,*,*,*,*,で,デ,デ 文章 名詞,一般,*,*,*,*,文章,ブンショウ,ブンショー を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 生成 名詞,サ変接続,*,*,*,*,生成,セイセイ,セイセイ ・ 記号,一般,*,*,*,*,・,・,・ 修正 名詞,サ変接続,*,*,*,*,修正,シュウセイ,シューセイ する 動詞,自立,*,*,サ変・スル,基本形,する,スル,スル ツール 名詞,一般,*,*,*,*,ツール,ツール,ツール を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ 作り 動詞,自立,*,*,五段・ラ行,連用形,作る,ツクリ,ツクリ たい 助動詞,*,*,*,特殊・タイ,基本形,たい,タイ,タイ 。 記号,句点,*,*,*,*,。,。,。
2. list_conjugation.py
python3 list_conjugation.py "用言(基本形)"
活用形名1 活用形名2 活用形名3 ...
用言(動詞・形容詞・助動詞)の基本形を入力すると、その語がもつ他の活用形名をすべて出力する。
3. get_conj_word
python3 get_conj_word "用言(基本形)" "活用形" python3 get_conj_word "用言(活用形不問)" "活用形"
(指定した用言のうち指定した活用形の語)
基本形のほうが処理が少なくて済む。だが、もし文章中の用言であったら、一度基本形を取得してから再度実行せねばならなくなる。それは面倒なので最初から活用形不問のほうが良いだろう。
入力値は活用形不問にしておき、処理内部では基本形を取得する。
CSV内では以下のような処理になる。
- 第一引数が1列目と一致する行を探す
- その行における11列目に基本形がある
- 2で得た基本形に一致する他の行を得る
- 3で得た行のうち第二引数に一致する活用形(CSVの10列目)を探す
- 4で得た行の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