コンテンツにスキップ

更新履歴


v4.7.0-beta.1(2026年7月)— β版: 数学マーク採点(連鎖配点・複数桁設問)モード

β版(Pre-release)

実運用での検証を目的としたβ版です。一般利用には最新の正式リリース (v4.5.2)を推奨します。

新機能

  • 数学マーク採点(複数桁設問)モード: 共通テスト数学のような連鎖配点に対応。 連続する複数のマーク行で1つの値(-24 等)を構成し、全行正解のときのみ 得点する「完答」方式で採点する。起動画面に「🔢 数学マーク採点のみ」 「🔢✏ 数学マーク採点+記述採点」の2モードを追加
    • 紙面: 各解答番号行に -, 0〜9, a, b, c, d の15マークを持つ専用 テンプレートを使用(選択肢問題も同じ紙面で混在可能)
    • 正答データ: 問題番号列の範囲表記「1-3」+正答「-24」で複数行を 1問に束ねる。単独行に複数文字の正答を書けば文字数ぶん自動割付 (範囲の手計算不要)。列構成は従来と共通で後方互換
    • 採点: グループ内に無マーク・ダブルマークが1行でもあれば不正解。 0⇔10の等価判定は複数桁モードでは適用しない
    • 解答用紙: ○×・得点はグループ先頭行に1つ、誤答時の正答は各行の 正しいマーク位置に赤記号で表示。特例「全員正解」の★もグループ対応
    • 読取結果Excel: セル値を紙面記号(-、a〜d)で出力
    • 集計・CTT・R連携: グループ=1項目(項目ID「1-3」)として完全一致で 0/1化。得点一覧の列名も「問1-3」表示
  • 正答チェックと模範解答の書き出し(標準モードでも利用可): 正答データの選択時に登録内容を自動検証し、GUIログに要約を表示。 「📋」ボタンでいつでも再実行できる
    • <ファイル名>_check.md: 検証結果・行割当表・集計(満点・観点別・残り行数)
    • <ファイル名>_模範解答.md: 問/解答番号/正答/配点/観点の配布用一覧 (エラーがある間は書き出さない)
    • 採点(Step2)・集計(Step3)の実行時にも自動再生成し、古い模範解答を 配布する事故を防止
    • 検出内容: 範囲の重複・範囲長と正答文字数の不一致・使用できない記号・ 使用行の中抜け・入力が不完全な行・座標ファイルのマーク行数超過 など

修正・改善(ペルソナ監査による)

  • マークチェックの訂正入力が複数桁モードの記号(-、a〜d)に対応。 訂正値-がエスケープされて正答と一致しなくなる書き込み側の不具合も修正
  • Excelが問題番号「1-3」を日付(1月3日)に自動変換した場合を検出し、 セルを文字列書式にするよう案内(標準モードの生クラッシュも解消)
  • 標準モードで複数桁用の正答データを読み込んだ際に、数学マーク採点モードで 起動し直すよう日本語で案内
  • マークチェッカーを「xlsxに反映」せずに閉じる際、未反映の訂正があれば確認
  • 起動モードと座標ファイルの選択肢数が食い違う場合(数学モード×10択座標等)に 警告を表示し、無言の誤採点を防止
  • OMR読取結果の表示値(raw_choice)が座標Excelの値ヘッダを正しく参照する よう修正(標準テンプレートでは挙動不変)
  • 受験者0件時にCTT選択肢分析がエラーになるエッジケースを修正

v4.6.0-beta.3(2026年7月)— β版: 不適切問題の特例対応「全員正解」

β版(Pre-release)

実運用での検証を目的としたβ版です。一般利用には最新の正式リリース (v4.5.2)を推奨します。

新機能

  • 不適切問題の特例対応「全員正解」: answer_key.xlsx に任意列「特例」を新設 (ドロップダウン: 空欄/全員正解)。「全員正解」を選ぶと、その設問は無回答・ 誤答を問わず全員に満点を付与する。正答が未確定でも指定できるよう、特例行は 正答欄が空欄でも採点対象になる(配点は必須のまま)
    • 解答用紙: 特例設問の正答位置に赤い★を描画して特例適用を明示 (正答未登録なら左端の選択肢位置)。詳細設定でON/OFF可能(デフォルトON)
    • CTT分析・R連携: 得点・正誤データには全員正答として反映しつつ、 正答率・識別指数・I-T相関・α係数・選択肢分析・トレースライン・相関行列の 項目分析統計からは除外(項目全体シートに除外注記を表示)。R連携キットは 既存の分散ゼロ自動除外により同様に除外される
    • 成績表Excel: 設問分析シートの種別欄に「マーク(全員正解)」と明示
    • 特例列のない既存の answer_key.xlsx は従来どおり動作(後方互換)
    • 採点済みデータへの遡及適用も可能: answer_key.xlsx に特例を追記し、 同じOMR読取結果を指定して採点を再実行すればよい
  • 配点ゼロの運用整理: 不適切問題の配点を除外したい場合は、従来どおり 配点列に 0 を入力する(○×は実際の正誤どおり表示され、得点・満点には 算入されない)。特例列に「配点ゼロ」の選択肢はあえて設けていない

その他の修正

  • CTT分析で記述問題を統合する際、内部フラグ列の欠損値(NaN)が真偽判定で True 扱いになり、記述問題が項目分析から誤って除外され得る問題を修正 (本機能の実装過程で発見。既存リリースでは特例フラグ自体が無いため実害なし)

v4.6.0-beta.2(2026年7月)— β版: 白塗りオプションの文字潰れ修正

β版(Pre-release)

実運用での検証を目的としたβ版です。一般利用には最新の正式リリース (v4.5.2)を推奨します。

  • 白塗りONで得点表示が潰れる不具合を修正(beta.1の実運用検証で発見): 観点①の白背景が直前に描いた得点の数字を上書きして消していた。 「全白背景→全文字」の2パス描画に変更し、描画順序に関係なく 文字が白塗りに潰されないようにした

v4.6.0-beta.1(2026年7月)— β版: 新機能4件+採点整合性の修正

β版(Pre-release)

実運用での検証を目的としたβ版です。一般利用には最新の正式リリース (v4.5.2)を推奨します。βの検証が完了し次第、v4.6.0として正式リリースします。

重要修正

  • 複数正答の0⇔10等価判定漏れを修正: 複数正答(;区切り)の採点で、正答キー9;10に対する解答9;0(10番目のマーク位置)が誤答扱いになっていた不具合を修正。CTT分析側は正規化済みだったため、同じ解答で答案の得点とレポートの正答率が食い違う状態だった。該当ケースを含む過去データを再採点すると誤答→正答の方向で結果が変わる(複数正答機能を使っていない場合は影響なし)
  • 0⇔10ルールと選択肢位置解決の一元化: normalize_zero_ten / choice_to_position_index に集約し、採点・CTT分析・正答表示・マークチェック正答枠の間で判定がズレない構造に変更

新機能

  • answer_key.xlsx の視覚的リッチ化: 青ヘッダー・罫線・交互行背景・ヘッダー行固定・列幅調整を適用し、正答・配点の手入力をしやすく
  • 「問題概要」列(任意入力): answer_key.xlsx に20字程度の問題概要を入力すると、CTT PDFレポート・Excel項目統計シート・R連携item_info.csvに表示される。未入力・列の無い旧テンプレートでも従来どおり動作
  • 複数PDFの一括選択: PDF入力で複数ファイルを選択可能に。展開画像名は{PDF名}_pNNN.png形式となり、どのPDFの何ページ目かを後から特定できる
  • 採点結果文字の背景白塗りオプション: 詳細設定で有効化すると、○×・得点・観点・正答番号の文字背景を白塗りし、マークシートの選択肢9/0の印字と重なっても読みやすくなる(デフォルトOFF)

その他の修正

  • 白さ指標計算・safe_printのサイレントフォールバックにログを追加
  • CorrectedImageCacheのLRU操作をロックで保護(スレッド安全性)
  • コーナーマーカー基準比率をconstants.pyに一元化
  • CTT選択肢分析でレガシー"10"表記の解答が選択肢分析表から消える不整合を修正
  • 開発ドキュメントの陳腐化した記述(存在しない先読み機構への言及等)を削除

v4.5.2(2026年7月)— exeビルドのsklearn同梱不具合修正

.github/workflows/release.yml の依存インストールリストに scikit-learn が 記載されておらず、GitHub Actions経由でビルドされた配布用exe(v4.5.1含む)に scikit-learn / joblib が実際には同梱されないままリリースされていたことが判明しました。 K-meansクラスタリングを用いるマーク認識モードが動作しない状態でした。

重要修正

  • release.yml に scikit-learn を追加: exeビルド時の依存インストールリストに漏れていた scikit-learn を追加し、saitensamurai.spec の collect_all('sklearn') が正しく解決されるように修正
  • CI(pytest自動実行)を新規導入: これまでpush/PRでテストが自動実行される仕組みが存在せず、上記のような不具合が検出されないままリリースされていたため、.github/workflows/test.yml を新設
  • 上記のほか、Excelフォーミュラインジェクション対策・スレッド安全性・データロスト防止など、コードベース全体の監査で見つかった緊急度の高い不具合を修正

v4.5.1(2026年2月)— 安定化・性能改善・レポート整合性修正

v4.5.0 の K-means 認識とマークチェック機能を運用しながら見つかった、 GUI 安定性・表示性能・レポート整合性の課題を重点的に改善しました。

重要修正

  • 学生別サマリーの学籍番号セルの不整合修正: OMR読取結果xlsxの行順はマルチスレッド読込の完了順となりファイル名の自然順と一致しないが、学籍番号だけを行の位置インデックスで参照していたため、別の生徒の学籍番号が割り当てられていた不具合を修正。学籍番号をファイル名キーで引くよう変更し、行順・桁数(学籍番号列数)に依存しないよう整合性を確保(得点・観点別集計・氏名欄・統計・CTT・R連携はファイル名に紐付くため従来から影響なし)
  • K-means HTMLレポートのクラスタ整合性修正: 画像ごとに独立実行される K-means のラベル差異(0/1 の反転)を、レポート集約時に正規化してから描画するように修正。filled_ratio ヒストグラムと PCA 散布図の「Marked / Empty」対応が実データと一致するよう改善
  • マークチェック高速化(白さキャッシュ): OMR 実行時に設問単位の白さを計算し、01_Results/whiteness_cache.json として保存。マークチェック起動時は JSON を優先読み込みし、白さ順ソートの待ち時間を大幅短縮
  • 選択肢カテゴリのレビューUI刷新: 「選択肢 n」カテゴリでは通常ページャーの代わりに 薄い解答 / 濃い解答 タブを表示。疑義が出やすい上下端サンプル(原則各100件)を即時レビュー可能に変更

GUI / UX 改善

  • グリッド描画の安定化: 固定ページ(100件)+ 一括再接続描画の方針を継続し、大量データ時のメモリピークと描画揺れを抑制
  • カテゴリ連動動作の明確化: ノーマーク一括ボタンはノーマーク選択時のみ表示、選択肢カテゴリではタブモードへ自動移行
  • 操作ラベル改善: マークチェックの更新ボタンを「xlsxに反映」から「データの更新(再読み込み)」へ変更し、実際の挙動(反映 + 再読み込み)と文言を一致

テスト

  • GUI 契約テストを拡張し、以下を検証対象に追加
    • 選択肢カテゴリタブの表示切替
    • タブ初期状態(薄い解答)
    • 更新ボタン文言
    • 白さ JSON ローダーの読み込み整合性
  • ローカル統合実行(2026-02)
    • tests/test_v45_gui_contract.py: 全件 pass
    • 主要 GUI/採点系の回帰テスト: pass
    • フル実行では環境依存の Tcl/Tk 初期化失敗(init.tcl 不在)を 1 件確認(アプリロジック起因ではなく実行環境要因)

v4.5.0(2026年2月)— K-means マーク認識・グリッドビュー

マーク認識アルゴリズムに K-means クラスタリングを導入し、認識精度と安定性を向上させました。 マークチェック画面にはグリッド表示モードを追加し、大量のエラー修正を効率化しました。

新機能

  • K-means マーク認識: 全マーク領域から4次元特徴量(filled_ratio, mean_inv_brightness, dark_pixel_ratio, std_inv_brightness)を抽出し、KMeans(K=2) クラスタリングで「マーク済み / 空白」を自動分類。従来の固定閾値方式に比べ、画像ごとの濃淡差に強い安定した認識を実現
  • 認識モード選択: GUI に「認識方式」コンボボックスを追加。K-means(デフォルト)と従来の閾値方式をワンクリックで切り替え可能
  • K-means レポート: K-means 認識完了後、filled_ratio ヒストグラムと PCA 散布図を含むインタラクティブな HTML レポートを自動生成。認識結果の妥当性を視覚的に確認可能
  • マークチェック グリッド表示: マークチェック画面に「グリッド表示」トグルボタンを追加。エラー項目をサムネイルカード一覧で表示し、エラー種別でフィルタリング可能
  • 一括 -1 設定: グリッド表示モードで、未チェックの NoMark 項目をまとめて -1(無回答)に設定するバッチ操作機能を追加

内部改善

  • バージョン文字列の一元管理: constants.APP_VERSION に集約し、GUI・ダイアログ・docstring で参照
  • 閾値方式フォールバック: K-means モードでもサンプル数が50未満の場合は自動的に従来の閾値方式にフォールバック(後方互換性を維持)
  • テスト追加: K-means エンジンの単体テスト17件を追加(特徴量抽出、クラスタリング精度、レポート生成、後方互換性)

v4.4.1(2026年2月)— マークチェックバグ修正

v4.4 のマークチェック機能で発見されたバグを修正しました。

バグ修正

  • 正答枠が二重表示される問題: 先読み済み画像に既に描画された正答枠が、表示時に再度描画されて二重になる問題を修正
  • 正答枠が表示されない場合がある問題: 二重 fit_image_to_display による座標ずれで描画が画像外になる問題を修正
  • キーボードショートカットのエラー: 修飾キー(Shift, Ctrl 等)押下時に ValueError が発生する問題を修正

v4.4(2026年2月)— 視認性改善・マークチェック効率化

記述式採点のプレビュー画質と、マークチェック画面の操作効率を改善しました。

新機能

  • 記述式採点 クリーンプレビュー: 記述式採点画面のプレビューに、マーク認識枠(BOXED)が描画されていないクリーンな画像を表示するようにしました。手書き文字の視認性が向上します
  • マークチェック 正答枠表示: マークチェック画面で、正答(Answer Key)に該当する選択肢の位置に赤色の点線枠を表示するようにしました。どの選択肢が正しいのかが一目で分かり、修正作業が効率的になります

UX改善

  • Answer Key ダイアログの統合: OMR認識完了後に表示されていた2つのダイアログ(Answer Key入力案内 + 処理完了通知)を1つのダイアログに統合。操作フローがシンプルになりました
  • 再実行時のダイアログ抑制: 正答データが入力済みの状態で閾値変更などにより再実行した場合、Answer Key入力案内ダイアログが不要に表示される問題を修正
  • エキスパート向けフロー: Answer Key入力案内で「後で入力する」を選択した場合、正答データパスの自動設定を行わないようにしました(手動で管理するユーザー向け)

v4.3(2026年2月)— 安定性・ユーザビリティ向上

配布版(EXE)の安定性と、採点フローのユーザビリティを改善しました。

バグ修正

  • EXE実行時の多重起動問題: multiprocessing.freeze_support() の追加により、バックグラウンド処理実行時に誤ってアプリが多重起動し、大量のホーム画面が表示される問題を修正
  • ログ機能の安定化: GUIモード(コンソールなし)で実行した際に sys.stdout が None となり発生していた AttributeError を修正
  • バックグラウンド処理の改善: 枠描画処理時の出力処理を見直し、EXE環境での安定性を向上

機能改善

  • Answer Key 入力ガイド: マーク認識完了時、answer_key.xlsx が新規作成(未入力)状態の場合にカスタムダイアログを表示し、正答・配点の入力手順をステップバイステップで案内。保存フォルダを直接開くボタンも搭載

v4.2(2026年2月)— ドキュメント整備・配布準備

ドキュメントの全面改訂と配布(exe)準備を行ったリリースです。

ドキュメント

  • MkDocs によるドキュメントサイトの構築・公開
  • ユーザー向けマニュアルの全面刷新(ステップバイステップ化)
  • 開発者ガイドの追加
  • スクリーンショットの再生成

システム

  • GitHub Actions による自動ビルド・リリース
  • ダウンロード数の日次自動集計

v4.1(2026年2月)— 初回公開リリース

採点侍の最初の公開バージョンです。

採点モード

  • マーク採点モード: Mark2 形式のマークシートを OMR で自動読み取り・採点
  • 記述式採点モード: スキャン画像から採点領域を指定し、○×△で手動採点
  • マーク+記述 混合モード: マーク式と記述式を 1 つのワークフローで統合処理

OMR(光学マーク認識)

  • コーナーマーカー検出 + 射影変換による自動傾き補正
  • 二値化 + 面積比率によるマーク有無判定
  • K-means + 大津の二値化法による閾値キャリブレーション
  • 閾値の手動微調整 GUI

マークチェック

  • 未マーク・ダブルマーク自動検出
  • GUI での 1 件ずつの確認・修正

記述式採点

  • マウスドラッグによる採点領域設定
  • ○×ボタンによる判定 + 数字キーで部分点入力
  • 背景色フィードバック(正解: 緑 / 不正解: 赤)
  • 1 枚ずつ表示モード / グリッド一覧モード
  • 未採点フィルタ

出力・レポート

  • 採点済み答案画像(○×マーク・得点描画)
  • 生徒別成績サマリー Excel
  • 試験統計 Excel
  • CTT 分析 PDF(α係数, P値, D値, I-T相関)
  • R エクスポート(exametrika 用)

システム

  • PDF 入出力対応(PyMuPDF)
  • セッション保存・復元
  • パス修復ダイアログ
  • 氏名トリミング
  • クラッシュログ記録
  • 描画設定カスタマイズ
  • Windows 11 対応
  • 単体 exe 配布(インストール不要)