Repository navigation
Conversation
…iew cleanup and capture device touch diagnostics
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
絵文字の正式名称を知らなくても、日本語の読み・用途・感情から探せるオフライン検索を追加します。絵文字モード内の私有かなパネルでクエリを編集し、入力先アプリへは選択した絵文字だけを既存経路で入力します。
preview(e3cc93537c1c0912cb451b39133c270d39a10b9b)feature/emoji-semantic-search(8d4d9eab98b3c70ed2414d7bfa71e03f137b0b1f)検索データと処理
CLDR 48.2の日本語名称・キーワード(Unicode-3.0)、既存同梱辞書の読み、MITの用途・感情73概念を組み合わせます。カテゴリ・順序は既存のUnicode Emoji 17.0 metadataを使い、実収録1,902種類だけを返します。先行調査1,914種類とは共通1,898/調査側だけ16/実収録だけ4(髪の部品)です。CLDR原本・ハッシュ・完全な許諾文・再生成手順を保存し、APKにも許諾文を同梱します。
名称・同義語の完全一致、前方・部分・複数語・関連語を共通の重みで順位付けします。NFKC・かな・英字ケース・表示セレクタ・肌色の差を照合側で吸収し、入力するUnicode文字列を保持します。履歴で関連度を逆転させず、弱い候補で枠を埋めません。モデル・ベクトル・ORT等の追加はありません。
UIはEditText/InputConnectionを検索用に使いません。削除、押したままの検索移行、Backとkeyup、肌色、履歴、モード切替、入力セッション終了・回転を扱います。50ms debounceと取消・世代番号で古い結果を抑止し、検索・データ読込はワーカーで行います。検索未使用時はデータをロードしません。かなパネルは漢字変換・ローマ字変換・自由なカーソル編集を提供しません。Google絵文字表示切替には依存しません。
品質
28語と開発用24語は辞書作成・一致規則の検討に利用しています。独立評価ではありません。 未使用24語も実装者が作った小標本で、利用者による包括的な関連度評価ではありません。未使用集合の結果から辞書や重みを追加調整していません。母集団・説明データが違うため、先行E5より一般化が優れるという主張はしません。
「心から感謝しています」で🈯️、「ちょっと一息つこう」で🤏・1️⃣、「今日は土砂降り」で⌛️・⏳️が上位になる誤一致を確認しています。未知の言い換え・活用・含意・否定・皮肉の理解には限界があります。「感激で胸がいっぱい」→🥲は妥当でも代表正解外のため未命中です。
各クエリのCSV・測定生データ。
DictionaryEmojiSearchEngineそのものを実行し、実データ検証はアプリ側のLOUDS readerでも照合します。検証と性能
最終head
8d4d9eab98b3c70ed2414d7bfa71e03f137b0b1fのCIが成功。以下はテストXMLと端末ログを確認した結果です。Android値は実機・Releaseの性能ではありません。ホストの値からAndroidの速度を推定しません。検索はUI外のワーカーで実行し、50ms debounceと取消・世代管理を使います。端末の操作列時間にはアクセシビリティ探索・OSイベント注入・画面保存が入り、検索レイテンシや起動時間として扱いません。
ホスト:p99 0.908ms、repository生成 26.2ms、予熱・GC後の保持ヒープ増分 1,071,000 bytes、割当 3,128 bytes/query。AndroidプロセスPSSは検索前 190,318KB → 操作・履歴・検索測定後 194,825KB(差4,507KB)。同じプロセスでホストActivityとIME等が動いており、検索単体の常駐量ではありません。検索データは初回の検索開始時にIOワーカーで読み込み、検索未使用時は読み込みません。キーボード全体の初期化時間への因果的な影響は未測定です。
検索TSV 270,098 bytes+許諾文 2,352 bytes(Full Preview APK圧縮後計 76,815 bytes)。同じFull Standard Preview unsigned構成の基点APK 173,741,858 bytes → 最終APK 173,840,798 bytes、差 +98,940 bytes(約0.057%)。追加モデル・vector index・推論runtimeは0。元XML・評価ツールはAPKへ入れません。versionCodeやビルド由来のprofile等も変わるため、APK差はこの2ビルド間の実測です。
Android 14のARM64実機での速度・メモリ・電力・温度、通常入力の長時間使用、floating/splitでの検索操作、横向きで検索を開き直した際の操作感は未検証です。回転時の状態破棄はAPI 34で検証済みです。
APK
両APKのmetadata・SHA-256・検索asset・ARM64/x86_64ライブラリ同梱を確認しました。検証用merge commit
602aeca54228726a62e92efaa962a0737acca7eeのtree0ebac72a96399b9fa68de59511b8edaa243f6098は最終feature headと完全一致しています。sumire-emoji-search-debug-testbench.apk。実際にAPI 34へインストールして試験した同一APKです。別IDcom.kazumaproject.markdownhelperkeyboard.preview.testbench、CI生成のDebug証明書、ARM64/x86_64同梱、185,133,928 bytes。adb install -r -t sumire-emoji-search-debug-testbench.apkで導入し、Androidのキーボード設定から有効化できます。SHA-256:3e301b362de66fce264b54504c0c25a31bff3ea2f87ba136818cc8ee59cb3f66。2c29081fa2683bd1dd740fe9e2f46d93d8fa9fc7271533f246e44315bf34450e。既存のFull Preview署名jobは保護された
previewでの所有者の手動実行に限定され、今回は条件どおりスキップされています。署名条件・鍵・既存CIの設定は変更していません。Debug検証版は通常のSumire/Previewと共存する別IDです。署名情報・秘密鍵の出力はありません。主な変更と拡張点
EmojiSearchRepository:実収録集合と検索メタデータの対応。EmojiSearchEngine/辞書実装/Normalizer:Androidに依存しない検索と順位付き結果。EmojiSearchInputState/EmojiSearchInputView/CustomSymbolKeyboardView/日英リソース:私有入力と結果UI。IMEService:検索中の物理入力・戻る・セッション終了の接続。tools/emoji_search、単体・実IMEテスト、専用Android 14 CI。既存Preview CI・署名設定は変更せず、Pagingはテストの参照用に既存と同じ版だけを追加。将来E5を追加する場合は
EmojiSearchEngineの別実装から同じ結果形式を返し、repositoryのidentityでindexと実収録を対応付けます。UIは再利用できます。モデルhash・tokenizer・前処理・indexの整合、取消、専用ワーカー、未知表現の独立評価は追加側の課題です。辞書方式は登録した用途・感情の短い語に強く、広い言い換えや文脈を扱うにはEmbedding等の候補生成が必要になります。