Gradioで作る!英作文の自動添削アプリ
✍️Gradioで作る!英作文の自動添削アプリ(language_tool_python使用)
🚀 はじめに
このページでは、Gradioとlanguage_tool_python
を使って、英作文を自動添削してくれる簡単なWebアプリを作成します。
ユーザーが英文を入力すると、スペルや文法のミスをチェックして指摘してくれる仕組みです。
ポイント:
-
HuggingFaceや重たいライブラリは不要
-
オフラインでも動作(言語パックは初回DLのみ)
-
VSCodeでそのままPythonスクリプトとして動かせる
-
GradioのUI操作も自然に学べる!
🧰 必要な環境
前提環境
OS:Windows
10/10 または 11-
PythonPython:3.83.8以以降(インストール済) -
VSCode(VSCode:インストール済(任意だが作業しやすいため推奨)
Javaランタイム(JRE):インストール必須!
-
language_tool_python
は内部でJavaベースの文法チェッカーを使用します -
仮想環境Oracle JDK または使わなOpenJDK 17以降 をインストールしてくてもOK(任意ださい(詳細は後述)
Javaが未インストールだと以下のようなエラーになります
ModuleNotFoundError: No java install detected. Please install java to use language-tool-python.
使用ライブラリ
-
gradio
(UI) -
language_tool_python
(英文の文法チェック)
📦 ステップ① ライブラリのインストール
まずは必要なライブラリをインストールします。
VSCodeのターミナル(PowerShellやcmd)で以下を実行してください。
pip install gradio language-tool-python
初回使用時にLanguageToolの言語モデルがダウンロードされます(英語モデルは比較的軽量です)。
📝 ステップ② Pythonスクリプトを作成
以下のコードをgrammar_checker.py
として保存します。
import gradio as gr
import language_tool_python
# LanguageToolの英語インスタンスを作成
tool = language_tool_python.LanguageTool('en-US')
def check_grammar(text):
# エラーの指摘を取得
matches = tool.check(text)
if not matches:
return "✅ 文法上の問題は見つかりませんでした!"
# 各エラーを表示形式にまとめる
results = []
for match in matches:
results.append(f"❌ {match.message}\n→ 誤り部分: 『{text[match.offset:match.offset + match.errorLength]}』\n提案: {', '.join(match.replacements)}\n")
return "\n\n".join(results)
# Gradioのインターフェース
demo = gr.Interface(
fn=check_grammar,
inputs=gr.Textbox(lines=5, placeholder="ここに英文を入力してください", label="英作文"),
outputs=gr.Textbox(label="添削結果"),
title="英作文 自動添削アプリ",
description="英文を入力すると文法やスペルミスをチェックしてくれるツールです。",
)
# アプリ起動
demo.launch()
🖥 ステップ③ 実行してアプリを起動
保存後、VSCodeのターミナルで以下を実行します:
python grammar_checker.py
ブラウザが自動で立ち上がり、http://127.0.0.1:7860
でアプリが表示されます。
🔍 使い方とサンプル
例えば、次のような文章を入れてみましょう:
He go to school every day.
→ 出力例:
❌ Did you mean 'goes'?
→ 誤り部分: 『go』
提案: goes
🎁 発展アイデア(+5分)
-
✅ チェック対象言語を英語だけでなく日本語などに切り替え(
LanguageTool('ja-JP')
) -
📝 添削後の文章を自動で修正提案(
tool.correct(text)
で全自動修正) -
📋 チェック内容を表形式で出力(
gr.DataFrame
の出力に対応可能)
🏁 おわりに
GradioとLanguageToolの組み合わせは、
-
軽い
-
ローカルで完結
-
使って楽しい
という点で初心者にもぴったり。今回のように、**「ユーザーが入力 → AIが応答」**という基本パターンをマスターすれば、他のアプリにも応用しやすいです。
気に入ったら、今度は「要約」や「翻訳」などのテーマにも挑戦してみてね!