一覧に戻る
開発ログ
2026年6月7日

打鍵パターンから集中度をリアルタイム推定するアルゴリズム:ホワイトペーパー公開

Gamita Novelistの開発において研究された、打鍵ダイナミクスから執筆者の集中状態を自己適応的にリアルタイム推定するアルゴリズムのホワイトペーパー(PDF)を公開します。

Gamita Novelistの開発チームでは、執筆活動をより豊かにし、クリエイターが創作フローに入れる環境をサポートするための研究開発を続けています。今回は、その研究の一部を公開し、先行研究の内容をクリエイティブ・コモンズの公開データとして共有したいと思います。

【PDF】Gamita Novelist 打鍵ダイナミクスに基づく集中力リアルタイム推定アルゴリズム

PDFの内容は以下の通り3つのブログ記事に分けて転載しています。一部レイアウトが崩れています。正しい内容や表記については転載元のPDFをご覧ください。

Gamita Novelistは執筆者が自分の執筆スタイルを振り返ることができるアクティビティ機能を提供しています。

(※画像は開発中のものです)

アクティビティ機能では執筆に関するデータを秒単位で収集し、個人に合わせた執筆状況をリアルタイムで評価しています。

データ収集はオフラインかつ個人情報を保護しながら個人を特定しない形で個人のPC上にのみ保存しています。許諾がない限り、Gamita Novelistはサーバーに送信したり収集、学習はしません。

アクティビティ機能は何時何分に入力したというような振り返りにも使えますが、集中状態、思考状態、ストレス状態、離席状態、休憩状態を区別することができます。小説執筆アプリにおいて世界初の試みとなります。

アクティビティ機能を使うと以下のようなことがわかります。

・いつも何時に集中して作業できているのか

・集中力がどれくらい続いているのか

・過去の自分と現在の自分で、どれくらい成長できているか

・休憩をよく取るのか。それとも取らないスタイルなのか

・ストレスを感じながら執筆しているのか

・他人と比べたとき、どういった特徴を持った作家なのか

アクティビティ機能は内省ツールとしても使えますが、執筆者が集中できていないとき、またアイデアに悩んでいる状況をアプリがサポートするために開発されました。

例えばアプリの中に相棒となるキャラクターを作り出し、どの箇所で躓いているのか学習。相談相手になることもできるでしょう。集中しているときは通知をオフにしたり、フォントを見やすく調整したりするかもしれません。

執筆が続かない、あるいはやる気が起きないとき。一緒に原因や執筆スタイルの改善を提案できるかもしれません。

さて、集中力というのは個人差が大きく、従来の手法では測定することはできません。また学術論文においても研究途中の領域です。Gamita Novelistではこの解決策の一つとして、180日間の間、仮想の小説家に執筆活動を行ってもらい、その痕跡から分析を始めました。彼らは統計学的に有意なランダム性を持ちながら、執筆したり、サボったり、人格が変わったかのように執筆を行ったりと複雑な振る舞いを行います。様々な専門的な学問の観点から調査を行い、執筆には一定の等価回路に似た特性があると突き止めました。

Gamita Novelistでは独自のアルゴリズムによってこれをスコア化しました。

その成果の第一歩として、打鍵パターン(キーストローク)のみから執筆者の集中強度をリアルタイムに連続値スコアとして推定するエンジンの設計および検証結果をまとめたホワイトペーパーを公開します。

以下のリンクより、PDF版をダウンロードしてご覧いただけます。

【PDF】Gamita Novelist 打鍵ダイナミクスに基づく集中力リアルタイム推定アルゴリズム


※本アルゴリズムは初期研究であり、製品版ではさらに本アルゴリズムを改良・発展・応用したものを使用しています。また掲載されている資料はNumPyによって書かれていますが、製品版ではRustにより高度にチューニングされ、最適化されています。

本アルゴリズムの設計コンセプト

既存のタイピング監視システム等は「一定時間入力がなければ非集中」といった単純な閾値(固定値)に依存しており、小説家の「プロの長考」や個人の執筆リズムを誤判定するという課題がありました。本研究では、以下の5つの原則に基づいてアルゴリズムを設計しています。

  1. 絶対量ではなく個人内相対量 同じ打鍵速度であっても、ある人にとっては集中している状態(フロー)であり、別の人にとっては低活動な状態です。本手法では、ユーザーごとの打鍵データの統計から動的にベースラインを設定します。
  2. 「沈黙 = 非集中」ではない 小説家が執筆中に思考のために手を止める時間は、非集中ではありません。この思考的休止を受け入れる時間的パラメーター(時定数)を、アルゴリズムがユーザーごとに自動学習します。
  3. 固有値(固定パラメータ)の排除 開発者の直感による「感度調整」を不要にし、動作に必要な主要パラメータを実行時の打鍵統計量から自動算出します。
  4. 長期忘却と再学習の両立 怪我やスランプ、加齢といった長期的な執筆スタイルの変化を考慮し、過去の古いデータによる誤判定から自己を解放して再適応する忘却関数を定式化しています。
  5. 統計的堅牢性 入力データが極端に偏った場合でも、NaN(非数)や無限大(Inf)、負の分散を生成しない数学的堅牢性を保証しています。

シミュレーションによる評価

本ペーパーでは、打鍵の速さや長考の頻度が異なる8つの執筆者ペルソナ(長考型、早筆型、気まぐれ型など)をシミュレーションし、本アルゴリズムが従来の固定値ベースの判定方法(Binary、Linear、EMA等)と比べて、微小な過集中や散漫を高い統計的有意水準(P < 0.001)で分離可能であることを示しています。また、ポモドーロといわれる時間区切りの学習方法が効果的なのかも合わせて研究しています。例えば勉強記録(執筆記録)をつけたり、1週間ごとに成長記録を振り返るのは果たして意味があるのか。こういった面白い試みも行っています。 ライセンスについて 本稿および本稿に記載のアルゴリズムは、クリエイティブ・コモンズ 表示 - 非営利 4.0 国際(CC BY-NC 4.0)ライセンスの下に提供されています。商用利用のご相談につきましては、お問い合わせよりご連絡ください。