From 6e557adc746e2e7d65f846bf432894a1af79d592 Mon Sep 17 00:00:00 2001 From: Yoshihiro Misawa Date: Mon, 21 Sep 2026 01:30:42 +0900 Subject: [PATCH 1/2] Integrate multilingual CC0 pilot and document corpus scarcity --- docs/v3-foundation-results.md | 6 ++++ docs/v3-script-corpus.md | 56 +++++++++++++++++++++++++++++++++++ src/ext/uchardet | 2 +- 3 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 docs/v3-script-corpus.md diff --git a/docs/v3-foundation-results.md b/docs/v3-foundation-results.md index f33f6a7..0d10646 100644 --- a/docs/v3-foundation-results.md +++ b/docs/v3-foundation-results.md @@ -121,3 +121,9 @@ BOM分割の一部を改善する一方、通常入力の候補副作用、compl - #125/#126: 3.0採用範囲、移行契約、試作の採否 上記を完了扱いにせず、保留部分を切り離して後続の独立作業を進める。 + +## 多言語script pilotの追加(2026-09-21) + +[日本語・アラビア語・ヘブライ語CC0 pilot](v3-script-corpus.md)を追加した。 +31文・186 variantsの再生成一致を確認したが、日本語・アラビア語は各2文しかない。 +取得成功を代表的な精度評価や十分なcoverageと扱わず、追加sourceの必要性を記録した。 diff --git a/docs/v3-script-corpus.md b/docs/v3-script-corpus.md new file mode 100644 index 0000000..e3d1fd4 --- /dev/null +++ b/docs/v3-script-corpus.md @@ -0,0 +1,56 @@ + +# Tatoeba追加script pilotと不足量 + +2026-09-21。既存の仏語・露語CC0 adapterに日本語・アラビア語・ヘブライ語の +公式CC0 exportを追加した。独立MIT toolの拡張であり、本文のCC0とは分けて扱う。 + +## 結果 + +| 言語 | available / selected | encoding | generated / skipped | +| --- | ---: | --- | ---: | +| 日本語 | 2 / 2 | UTF-8 / CP932 | 12 / 0 | +| アラビア語 | 2 / 2 | UTF-8 / CP1256 | 12 / 0 | +| ヘブライ語 | 27 / 27 | UTF-8 / CP1255 | 162 / 0 | + +各言語200文を要求したが、snapshot全体がこの件数だった。 +取得成功を十分なcoverageと扱わず、特に日本語・アラビア語の各2文は +モデル学習・代表的な精度評価には使えない。ヘブライ語27文も小規模pilotに留まる。 +変換できた例だけを選んだわけではなく、全31文をID順で採用した結果である。 + +3 snapshotの圧縮転送量は合計1,783 bytes。本文はGitへ追加せず作業ディスクに保存。 +別出力のingest/generateは全ファイルbyte一致し、従来fra/rusの再ingestも以前の出力と一致した。 +5 manifest・431 source recordsの横断split監査が成功した。 +翻訳関係を解決したわけではないため、全言語を共通origin `tatoeba:cc0-pilot` のvalidationへ保持する。 + +native予測・新しいmodel学習・独立holdout評価は行っていない。 +候補出力、既定API、既存model、codec対応は変更していない。 + +## 再現 + +許可した5言語以外のexport、通常ライセンスのexport、任意URL、redirectは受け付けない。 +新規取得だけがnetworkを使用する。取得済みsnapshotは再取得せずofflineで検証する。 + +```sh +uv run --no-project python src/ext/uchardet/corpus/sources/tatoeba.py \ + validate /disk/tatoeba-jpn-snapshot-1 +uv run --no-project python src/ext/uchardet/corpus/sources/tatoeba.py \ + ingest /disk/tatoeba-jpn-snapshot-1 /disk/tatoeba-jpn-input-1 --limit 200 +uv run --no-project python src/ext/uchardet/corpus/framework.py generate \ + /disk/tatoeba-jpn-input-1/config.json /disk/tatoeba-jpn-generated-1 \ + --failure-policy record-and-continue +``` + +snapshot hash、manifest content hash、件数はnative側の +[結果JSON](../src/ext/uchardet/corpus/sources/tatoeba-script-pilot-2026-09-21.json)、 +取得と分割の契約は[日本語説明](../src/ext/uchardet/corpus/sources/TATOEBA.md)を参照する。 +週次更新URLを固定revision扱いせず、実際の取得byteのhashで区別する。 + +## 次のsource選定への制約 + +- 今回のCC0 subsetだけで対象言語の評価を完了しない。 +- 文書・著者・genreの多様性を持つ、別の権利確認済みsourceが必要。 +- 通常exportへ無断で切り替えてライセンス条件を変えない。 +- 採用順をnative予測やlegacy codecでの表現可否に依存させない。 +- variant数と独立した元文章数を別に記録する。 + +この不足は #124 に残し、データ取得toolの完成だけで精度評価を完了扱いにしない。 diff --git a/src/ext/uchardet b/src/ext/uchardet index 9aac6f1..664101c 160000 --- a/src/ext/uchardet +++ b/src/ext/uchardet @@ -1 +1 @@ -Subproject commit 9aac6f101b514b7ab54de06cb617501f05086ebf +Subproject commit 664101c089ce519c0ba6a91c4fe705071a384094 From 71a3c6ff6a8fe6dc5f11a49c239b4c2dd9101a43 Mon Sep 17 00:00:00 2001 From: Yoshihiro Misawa Date: Mon, 21 Sep 2026 01:41:06 +0900 Subject: [PATCH 2/2] Integrate read-only language state observations --- docs/v3-adoption-gates.md | 2 +- docs/v3-foundation-results.md | 18 +++++++++++++++++- src/ext/uchardet | 2 +- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/docs/v3-adoption-gates.md b/docs/v3-adoption-gates.md index c348337..c424fcb 100644 --- a/docs/v3-adoption-gates.md +++ b/docs/v3-adoption-gates.md @@ -9,7 +9,7 @@ | 対象 | 確認済み | 採用前に残るもの | 現在の扱い | | --- | --- | --- | --- | | C++20 | native matrix、Python 30 wheelのbuild/installed smoke | 最低runtime、新たに導入する標準library機能のavailability | build opt-in。既定規格は維持 | -| 内部trace | group直下のstate/active、同一feedの小fixture出力一致 | 内部language状態、reject/ranking理由 | 開発用・既定OFF。公開APIではない | +| 内部trace | group直下のstate/active、language detectorのstate/counter、同一feedの小fixture出力一致 | reject/ranking理由、一般的な無効時cost検証 | 開発用・既定OFF。公開APIではない | | corpus生成 | manifest検証、split監査、変換不能の明示、実pilot再生成一致 | domain/言語の多様性、translation/近重複確認、独立評価 | 生成基盤として採用。精度向上とは数えない | | 新規model形式 | 明示契約、人工tableのC++構造体適合、provenance、未較正training profileの再現性 | engine filter適合、未使用data上の品質、配布条件 | 実験用。既存modelを置換しない | | 保存観測分析 | corpus hash照合、exact/compatible/decode-equivalent分離 | 実Web頻度、独立corpus、原因診断 | 評価tool。candidate順位を変えない | diff --git a/docs/v3-foundation-results.md b/docs/v3-foundation-results.md index 0d10646..b9cc54f 100644 --- a/docs/v3-foundation-results.md +++ b/docs/v3-foundation-results.md @@ -115,7 +115,7 @@ BOM分割の一部を改善する一方、通常入力の候補副作用、compl - #116: C++20の30 wheel build/smokeは成功。最低配布runtimeと新標準library機能のavailability確認は残る - #118/#119: P01の安全性検証と修正。OOM注入・weight/reset契約も未完了 -- #120: group直下の状態は追加済み。内部language detector・reject/ranking理由は未観測 +- #120: group直下とlanguage detectorのstate/counterは追加済み。reject/ranking理由は未観測 - #123: native filterとtrainingの適合、model品質比較、生成modelの権利判断 - #124: 独立corpus・real-world入力を含む失敗分析、family/coverage/校正の原因分類 - #125/#126: 3.0採用範囲、移行契約、試作の採否 @@ -127,3 +127,19 @@ BOM分割の一部を改善する一方、通常入力の候補副作用、compl [日本語・アラビア語・ヘブライ語CC0 pilot](v3-script-corpus.md)を追加した。 31文・186 variantsの再生成一致を確認したが、日本語・アラビア語は各2文しかない。 取得成功を代表的な精度評価や十分なcoverageと扱わず、追加sourceの必要性を記録した。 + +## language detector観測の追加(2026-09-21) + +既定OFFのnative traceで、内部language detectorのstate・累積文字数・sequence統計を +読み取れるようにした。追加のconfidence計算や名前取得methodは呼ばず、既存headerは +friend宣言のみ。モデル名は静的labelであって予測結果ではない。 + +従来の空・ASCII・135-byte日本語の同一feedで旧snapshot/raw Reportと最終候補が一致した。 +GCC16.2.1の同一Release buildでは全61 engine object memberがbyte一致した。 +archive自体のmetadata差、他compiler、一般的な性能測定とは区別する。 +手順・比較のskip条件は[native診断文書](../src/ext/uchardet/benchmark/introspection.ja.md)。 + +日本語fixtureのFrench language modelではsequence総数35に対して4分類counter合計0を +観測した。model外の文字対は分母のみ増えるため、単純なcategory比率と同一視できない。 +これはUnicode language detectorの観測であり、新規SBCS trainerとの適合を確認したわけではない。 +reject/ranking原因はunknownを維持し、#120全体は未完了とする。 diff --git a/src/ext/uchardet b/src/ext/uchardet index 664101c..a56fd95 160000 --- a/src/ext/uchardet +++ b/src/ext/uchardet @@ -1 +1 @@ -Subproject commit 664101c089ce519c0ba6a91c4fe705071a384094 +Subproject commit a56fd9584d11e7a1f5cbcc75df9b5c3ec4837ab4