Skip to main content
QUICK REVIEW

[論文レビュー] Recognizing Handwritten Source Code

Qiyu Zhi, Ronald Metoyer|arXiv (Cornell University)|Jan 1, 2017
Software Engineering Research参考文献 38被引用数 2
ひとこと要約

本稿では、商用の手書き認識エンジンにプログラミング言語の文法規則を組み込むことで、手書きPythonソースコードの認識精度を向上させる手法を提案する。MyScriptの出力を文法的制約とトークンレベルの補正を用いた後処理によって改善することで、単語誤り率(WER)8.6%、文字誤り率(CER)3.6%を達成。これは標準的な認識性能を上回り、仮想キーボード入力と同等の性能を示す。

ABSTRACT

Supporting programming on touchscreen devices requires effective text input and editing methods. Unfortunately, the virtual keyboard can be inefficient and uses valuable screen space on already small devices. Recent advances in stylus input make handwriting a potentially viable text input solution for programming on touchscreen devices. The primary barrier, however, is that handwriting recognition systems are built to take advantage of the rules of natural language, not those of a programming language. In this paper, we explore this particular problem of handwriting recognition for source code. We collect and make publicly available a dataset of handwritten Python code samples from 15 participants and we characterize the typical recognition errors for this handwritten Python source code when using a state-of-the-art handwriting recognition tool. We present an approach to improve the recognition accuracy by augmenting a handwriting recognizer with the programming language grammar rules. Our experiment on the collected dataset shows an 8.6% word error rate and a 3.6% character error rate which outperforms standard handwriting recognition systems and compares favorably to typing source code on virtual keyboards.

研究の動機と目的

  • タッチスクリーン端末における手書きソースコードの正確な認識という課題に取り組む。従来の手書き認識システムはプログラミング言語の構文をサポートしていないため、この課題に失敗する。
  • 自然言語に最適化された汎用的手書き認識エンジンの限界を克服する。これらは、コードに一般的なキャメルケース、下線、スペースを含まない識別子などの構文的特徴を正しく処理できない。
  • ベースの認識エンジンを再トレーニングせずに、認識精度を向上させる実用的な文法拡張後処理フレームワークを開発する。
  • 今後の手書きコード認識研究を支援するため、15名の参加者から得た555行の手書きPythonコードの公開データセットを提供する。
  • 文法に配慮した補正が、手書きソースコード認識における誤り率を顕著に低減できることを示し、スタイラス入力によるプログラミングが仮想キーボード入力の代替手段として実用的であることを示す。

提案手法

  • スタイラスとタブレットを用いて、15名の参加者から555行の手書きPythonコードのデータセットを収集。共有コードサンプルと参加者固有の関数を含む。
  • ベースラインとしてMyScript手書き認識エンジンを採用。すべての手書き入力をその商用APIを介して処理。
  • Pythonの文法規則を活用した後処理パイプラインを実装。トークン化、構文検査、文脈に応じた語の置換を含む。
  • 正規表現と文法生成規則を用いて、誤認識された識別子、欠落または誤った演算子、不適切な空白などの一般的な誤りを特定・修正。
  • 文脈に応じてトークンを結合または分割するルールベースのアプローチを採用。たとえば、'ifthen'を文脈的に適切であれば'if then'に、'variableName'を'verifiable name'に修正。
  • 正解コードとの比較により、認識結果を評価。全データセット上で単語誤り率(WER)と文字誤り率(CER)を測定。

実験結果

リサーチクエスチョン

  • RQ1標準的手書き認識エンジンを単独で使用するのと比較して、文法に配慮した後処理を用いることで、手書きソースコード認識における誤り率を顕著に低減できるか?
  • RQ2MyScriptのような汎用エンジンを用いた場合、Pythonコードにおける一般的な手書き認識誤り(例:誤認識された識別子や不適切な空白)はどのように現れるか?
  • RQ3既存の商用手書き認識システムは、言語固有の後処理を施すことで、どの程度ソースコード認識の性能を向上できるか?
  • RQ4誤り率とプログラミングタスクにおける使いやすさの観点から、手書き入力と仮想キーボード入力の性能はどのように比較できるか?
  • RQ5どのような誤りパターンが、構文的および語彙的制約を用いて体系的に修正可能か?

主な発見

  • 文法に配慮した後処理により、収集したデータセット上で単語誤り率(WER)が8.6%、文字誤り率(CER)が3.6%に低下。ベースラインのMyScript認識エンジンを著しく上回る性能を示した。
  • 本システムの性能は、仮想キーボード入力と同等であり、7.81%の総誤り率(TER)が報告されている。これは、手書き入力がモバイルプログラミングの代替手段として実用的である可能性を示唆する。
  • MyScriptの出力における一般的な誤りには、キャメルケース識別子の誤認識(例:'myVariable' が 'my variable' や 'myvariable' に変換)、演算子周囲の不適切な空白、'def' や 'return' のキーワード認識失敗が含まれる。
  • 言語の文法規則を活用することで、複数トークンにまたがる誤りの効果的な補正が可能となり、とくに語の境界が曖昧な場合の複合識別子の認識が向上した。
  • 15名の参加者から得た555行の手書きPythonコードのデータセットは公開されており、今後の手書きソースコード認識研究の貴重なベンチマークを提供する。
  • 結果から、文法に配慮した補正を施した手書き入力は、特にコード編集の場面では、モバイル端末やタッチスクリーンデバイスにおける実用的で正確な入力方法となり得ることが示唆された。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。