英語文型の判断ロジックが大体できたかなと思っているので、もう一度プログラムの骨格をもう少し詳細を交えて書いてみます。
言語はpython3.6です。
・英語 ⇔ 日本語 が書かれた単語リストを外部ファイルから読み込む。
・英文をキーボードから入力する。
・入力された単語をスペースで区切って単語に分け、リストかディクショナリに格納していく。
・格納した単語1つ1つに品詞を振っていく。(名詞、動詞、副詞・・・)
・文型を判断する(第1文型 ~ 第3文型)
・動詞のタイプが自動詞か、他動詞かで分岐
・第1文型のとき(S+V)
あれ?どうするんだっけ?
・第2文型のとき(S+V+C)
be動詞ならSはCです。
be動詞以外なら・・・?
・第3文型のとき(S+V+O)
SはOをVます。
・判断した文型に対応する日本語の語順で、英単語のまま新しいリストに並び変える。
・英単語を日本語に置き換える。
・判断した文型に対応して、日本語の語尾を変化する。
・printでコンソールへ表示
ここでは、動詞が自動詞、他動詞のどちらもタイプにも成るものは除外。
と書いてみましたが、文型判断後の処理が曖昧だったことがわかりました。
曖昧ということは、英語の「学習」という点においても、ポイントが捉えられていないのだと思います。
どう処理するか?を判断できるまで、文法を学ばないとプログラムには反映できません。
もう少し勉強が必要ですね。
AIってこのへんはある程度曖昧でもプログラミングできたりするのだろうか。
多分、AIプログラミングのやり方次第だろうけど、ニューラルネットとファジーの使い方は興味があるなぁ。