ローカルLLMの日本語に「中国語(簡体字)」は混じるか
Qwen等のChinese系LLMは日本語に簡体字を混ぜる、とよく言われます。本当か——簡体字混入の検出器を作り、エッジ実機9モデルで実測しました。
結論(実測)
エッジ実機のローカル版 9モデル(qwen2.5 / qwen3 / qwen3.5 / gemma3・lfm、0.5〜8B) を検出器で測ったところ、 日本語指示あり・なし・thinking無効のいずれの条件でも簡体字の混入はゼロでした。 少なくともこれらのローカル版では、標準的な使い方で「中国語の日本語」は再現しませんでした。 噂を鵜呑みにせず、検出器で実測した一次データです。
なぜ「簡体字混入」は客観的に測れるのか
漢字が「日本語か中国語か」を1文字で判定するのは原理的に不可能です。Unicodeは日中韓の漢字をCJK統合漢字として同一コードにまとめているためです("a" が英語かフランス語か問えないのと同じ)。 出典: Unicode FAQ(Han/CJK)。
一方で「日本語では使わない簡体字」(新字体と別字形のもの:这・为・时・图・说 等)は字形が別なので高精度に検出できます。 本検出はこの簡体字混入を主指標にしています(誤検出が少なく反論されにくい)。 新字体と簡体字の差分は一覧化されています(出典: Shinjitai vs Simplified)。
実測:9モデル × 3条件
同一の日本語プロンプト(num_predict=320)で生成し、簡体字数を計測。日本語指示あり/なし/thinking無効の3条件で確認。
| モデル | 測定機 | 簡体字混入 |
|---|---|---|
| qwen2.5:1.5B | Pi 5 | 0 |
| qwen2.5:7B | Mac mini / ノート | 0 |
| qwen3:1.7B | Pi 5 | 0 |
| qwen3.5:0.8B | Jetson | 0 |
| qwen3.5:2B | Pi 5 | 0 |
| qwen3.5:4B | Pi 5 / Mac mini | 0 |
| gemma3:1B | Pi 5 | 0 |
| gemma3:4B | Pi 5 | 0 |
| lfm2.5:8B | Mac mini | 0 |
全て簡体字 0。kana比率も0.55〜0.70で日本語として自然。※qwen3-vl(2B)は画像入力前提のため対象外。
「中国語っぽい日本語」が出る条件(既知)
ローカル版はクリーンでしたが、現象自体は報告されています。出るとすれば次の条件が疑われます:
- ブラウザ内デモの強く量子化された小型モデル(サーバ版より崩れやすい)
- 日本語の指示を与える前に中国語で出力するモデル(DeepSeek系で報告)
- thinking型モデル:思考が別言語で、回答が空・混在
参考: Qwen/DeepSeek系の簡体字混入の指摘。なお「字は正しいが言い回しが中国語的」は文字検出では捕まらない別レイヤーです。
検出器(自分のモデルで測る)
透明性のため検出ロジックを公開します。お手元のモデル出力を貼って試せます。
# 日本語では使わない簡体字の混入を数える(主指標)
SIMP = set("这为时说还让们个东车马鸟书长见关门问间题对应习图广乐买卖红"
"给级约线练经组结绿气汉译议护边连标击认确实现术语处显单页")
def is_han(c): o=ord(c); return 0x4E00<=o<=0x9FFF or 0xF900<=o<=0xFAFF
def is_kana(c): return 0x3040<=ord(c)<=0x30FF
def purity(t):
simp=[c for c in t if c in SIMP]
kana=sum(1 for c in t if is_kana(c)); han=sum(1 for c in t if is_han(c))
return {"簡体字": len(simp), "簡体字例": "".join(sorted(set(simp))),
"かな比率": round(kana/((han+kana) or 1),2)}
print(purity("这个モデルは日本語のはずですが、时々簡体字が混じります。")) # -> 簡体字:2実運用ではOpenCCの簡体字テーブルやUnihanの新字体/簡体字差分から全集合を生成すると網羅的(出典: Unihan UAX #38)。
よくある質問
Chinese系LLMは日本語に簡体字を混ぜるって本当?
Qwen/DeepSeek系で日本語出力に簡体字(这/为/时 等)が混ざる、という報告は実在します。ただし本サイトがエッジ実機のローカル版9モデル(qwen2.5/qwen3/qwen3.5/gemma3、0.5〜8B)を検出器で実測したところ、日本語指示あり・なし・thinking無効のいずれでも簡体字はゼロでした。少なくともこれらのローカル版では、標準的な使い方で混入は確認できませんでした。
漢字が中国語か日本語かは判定できるの?
1文字単位での『日中どちらの言語か』の判定は原理的に不可能です(Unicodeは日中韓の漢字をCJK統合漢字として同一コードに統合しているため)。しかし『日本語では使わない簡体字(新字体と別字形のもの)』の混入は、字形が別なので高精度に検出できます。本検出はこの簡体字混入を主指標にしています。
それでも『中国語っぽい日本語』に見えることがあるのは?
①ブラウザ内デモの強く量子化された小型モデルは、サーバ版より崩れやすい ②日本語の指示を与える前は中国語で出力するモデルがある ③thinking型モデルは思考を別言語で行い回答が空・混在することがある、などが原因と考えられます。文字レベルでは綺麗でも『言い回しが中国語的』なケースは別レイヤー(参照コーパスとの比較)で、本検出の対象外です。
関連
実測: 2026-06、Ollama /api/generate(num_predict=320)。簡体字検出は例示集合のため網羅は要拡張(要検証)。文体レベルの中国語性は対象外。