Skip to content

azooKey/Tuner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tuner

Tunerは、ユーザーが表示したアプリのテキストを継続的に記録・分析するためのmacOSアプリケーションです。

特徴

  • 継続的なテキスト記録: macOSのアクセシビリティ機能を利用し、アクティブなアプリケーションのテキスト要素を自動的に取得・保存します。
  • 効率的なデータ管理: 収集したデータはJSONL形式で保存され、追記型のファイル操作により効率的に管理されます。
  • データ品質の維持: 最小テキスト長、記号/数字のみのテキスト除外など、基本的なフィルタリングを行います。
  • 定期的なデータ浄化: バックグラウンドで定期的に重複・類似テキスト(MinHash利用)を検出し、除去することでデータ品質とストレージ効率を維持します。
  • N-gramモデル学習: 収集したテキストを利用してN-gram言語モデルを構築・追加学習します。
  • 統計情報の可視化: アプリごとのテキスト量、言語割合などの統計情報を表示します。
  • 外部データ連携: テキストファイルのインポート機能や、指定したアプリグループ (group.dev.ensan.inputmethod.azooKeyMac) を介したデータ共有が可能です。
  • アプリケーション除外機能: 現在実行中のアプリケーションから、テキスト取得を除外したいアプリを簡単に選択できます。

保存プロセス

  1. テキスト取得: アクセシビリティAPIまたはポーリングにより、テキストを取得します。
  2. 基本フィルタリング: 空文字列、最小長未満、記号/数字のみのテキストを除外します。
  3. メモリ内バッファリング: 一定期間または一定量のテキストをメモリに保持します。
  4. ファイル追記: バッファされたテキストを指定したファイル (savedTexts.jsonl) にJSONL形式で追記します。

アプリケーション除外設定

  • 実行中アプリの視覚的表示: 現在実行中のアプリケーションをアイコン付きで表示し、監視中/除外中の状態がひと目でわかるように色分け表示します。
  • 高速アプリ検索: テキスト検索機能により、多数のアプリケーションから素早く目的のアプリを見つけられます。
  • 除外アプリの一覧表示: 現在除外中のアプリケーションを上部に一覧表示し、アイコンと名前で直感的に管理できます。
  • バックグラウンド処理: アプリアイコンの取得を非同期で行い、UIのフリーズを防止します。
  • 一括操作: すべての除外設定をリセットする機能を備えています。
  • ステータス表示: 監視中/除外中のアプリ数の概要をリアルタイムで表示します。
  • 設定の永続化: 除外設定は自動的に保存され、アプリケーションを再起動しても維持されます。
  • デフォルト除外: FinderやTunerなど、特定のアプリケーションはデフォルトで除外されます。

ノイズ除去 (データ浄化)

  • 定期的実行: 一定時間間隔(例: 1時間ごと)でバックグラウンドで実行されます。
  • 重複・類似検出: ファイル全体を読み込み、MinHashアルゴリズムを用いて類似度が高いテキストエントリを検出します。
  • データ更新: 重複・類似エントリを除去した新しいファイルで既存ファイルを置き換えます。

テキスト学習

  • 増分学習(Incremental Training):

    • 新しいテキストエントリが保存される際に自動的に実行(500エントリごと)
    • lmモデル(originalモデルをベースにした追加学習用モデル)に対して実行
    • メモリ効率を考慮し、バッチ処理で実行
  • 全体学習(Full Training):

    • savedTexts.jsonlimport.jsonlの全データを使用
    • 最大100,000エントリまで使用(デフォルト)
    • originalモデル(ベースモデル)を再構築
    • データの品質を維持するため、重複や類似テキストの除去後に実行

テキストポーリング

  • 設定可能なポーリング間隔でテキスト取得を行います。
  • 特定アプリを除外するフィルタリングが可能です。

互換性

  • group.dev.ensan.inputmethod.azooKeyMacアプリグループコンテナ内にデータを保存・共有します。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published