要旨
本稿は、排泄的言語の体系的な計算分析 — 以下、💩 言語学と呼ぶ — が、コーパス言語学の正当かつ未開拓のサブフィールドを構成するという主張を論じます。この立場を支持する3つの構造的主張を示し、予想される反論に簡潔に応答します。ソースコードは本リポジトリで公開されています。
著者は自発的にこのトピックを選んでいない。
§ 1
普遍性論証
すべての人間言語は、例外なく、排泄とその産物に関する専用語彙を発達させてきました。この言語横断的な普遍性は些細なことではありません。
言語学者がすべての記録された言語に共通する特徴を観察するとき、その標準的推論は、その特徴が認知的または社会的に基本的なものを符号化しているというものです。
親族名称は普遍的。色彩語は普遍的。
そして — 💩 語も普遍的である。
したがって、💩 語彙を真剣な言語分析から排除することは中立性ではありません。それは「趣味」に偽装した、動機ある省略です。
§ 2
語用論的論証
💩 関連言語は、形式的分析に値するほど語用論的に豊かです:
-
🚽
婉曲表現の密度
は英語の意味場の中で最も高い部類に属し、高い社会的指標性を示します。
「お手洗い」「大きいほう」「用を足す」「大地に返す」 — 単一の指示対象に対する多数の符号化。
-
🗣️
レジスター変化は極端かつ急速です:同一話者が、話し相手によって同一会話内で臨床的・口語的・タブー的レジスターを使い分けることがあります。
-
🧠
メタファー生産性は例外的です。
「クソみたいな話だ」「嘘臭い」「あのプロジェクトは最悪だ」 — いずれも排泄的語根から語源的力を引き出しています。
最も語用論的に活性化した語彙を無視する分野は、シグナルを取りこぼしています。
§ 3
計算的ギャップ論証
主要な NLP ベンチマークを調査すると、排泄的用語は以下のような扱いを受けていることが分かります:
- 「有害」または「不快」として訓練コーパスから体系的にフィルタリングされている
- ほとんどの感情辞典から除外されている
- 固有名詞の曖昧性解消において過少表現(ブランド名、固有名詞に関連)
- 多言語アラインメント研究から完全に欠落している
これは測定可能なブラインドスポットを生み出します。浄化されたコーパスで訓練されたモデルは、現実世界で高頻度の特定のトークンが事実上存在しないことを学習します。
その下流効果は清潔さではなく — 脆弱性です。
💩 言語学は、生コーパスに対する Python ツールとして運用化されることで、このギャップに直接対処します。
§ 4
予想される反論
これは真剣な研究ではない。
対象の尊厳ではなく、方法論の厳密さが研究の真剣さを決定します。
音韻論者はクリック音とうなり声でキャリアを積んできた。意味論者は「えーと」という語に関する論文を書いてきた。基準は方法論であり、威信ではない。
誰も引用しない。
Zipf の最も有名な洞察は、単語頻度を手で数えることから生まれました。
Robin Lakoff のジェンダー言語に関する先駆的研究は、逸話として退けられていました。
引用数はパラダイムシフトに続くものであり、先行するものではありません。
著者が明らかにこれをやりたくなかったことは分かる。
正しい。著者は AI ツールによってこの研究に駆り立てられました。
これは上記の主張の妥当性に影響しません。
非自発的な研究も研究です。大学院の大半も参照。
§ 5
結論
💩 言語学は、学術の仮面をつけた冗談ではありません。
それはたまたま人が面白いと感じる主題を扱う学術です。
査読者がこれに対して感じる居心地の悪さ自体が、研究する価値のある言語現象です。
このリポジトリは、Pythonスクリプト一本ずつ、真剣にこの主題に向き合う試みです。
📋 査読記録 — v0.8.5
査読判定:主張はかなり通っています。ただし「隙がない」には一段足りない。v0.8.5 は "Error Federation の代表例デモ" として合格。言語 IR として隙のない主張には、追加の検証が必要です。
✓ 強い点
- 設計が明確:ScatLang / SeaIR が同じ Core AST 経由で同じ CEK trace / error signature に到達する設計はよく伝わっている。
- フラグの使い方が良い:frontend を除外した signature で同一性を見て、含めた signature で surface 差を確認するのは説明しやすい。
- 証拠が強い:3ケース全て
trace_equal=true, error_equal=true, surface_diff=true。
- 防御が堅い:「完全証明ではない」を明記している。人類にしては珍しい。
✗ 刺される点
- AST equality が未明示:「同じ trace になった」から「同じ Core AST らしい」に見える。査読者は直接比較を要求します。
- 代表ケースが3つだけ:一般性の主張には弱い。nested expr、flush 後 error 等が欲しい。
- Underflow の扱いが未明文化:なぜ error federation 対象外なのか説明が必要。
- error_message を同値性に含めている:文言変更だけで壊れる。将来は
error_code へ分離推奨。
最優先で対処すべき点
-
1
AST equality を明示的に比較する — parse(scat_src) == parse(sea_src) の結果を JSON レポートに ast_equal として追加。dataclass(frozen=True) なので基本的にそのまま動くはず。
-
2
"Why 💩 and not A?" を明文化する — 💩 と 🌊 は surface marker であり意味論的プリミティブではない。A でも同じ Core projection を持てば同じ結果になることを README か HTML に記載。
-
3
error_code の導入、または注記 — 今すぐ実装が難しければ「将来的に error_code と error_message を分離する」旨を README に書くだけでよい。