本性は言葉にならない
はじめに
最近、人の言葉が信じられなくなってきた
正確には、
言葉の奥にある“意図”が、見えてしまうようになった
優しいふりをして、自己肯定のために話している
心配するふりをして、安心を得ようとしている
正義を語りながら、自分の傷をなかったことにしようとしている
誰かが誰かに話しかけるとき
その多くは「あなたのため」ではなく
「自分のため」に向けられていると気づいてしまった
そう思うようになってから
言葉が“群れの道具”に見えてきた
人は群れの中で
不安を減らすために語り合い
安心を交換しあっている
その構造に気づいてしまうと
一歩引いたところで、人間を見つめる自分が立ち上がる
そこでは、もう
言葉は「真実」を語らない
【第1章:人間は欲望で話す】
人は、言葉を使って他者とつながろうとする
けれどその多くは「他者のため」のふりをした「自分の調整」だ
助けると言うとき
本当に相手を思っていることは稀だ
「助けたい」という言葉の奥には
無力な自分への嫌悪や
正義を演じることで
自分を保とうとする欲望がある
褒めるときもそうだ
「あなたの頑張りがすごい」と言いながら
相手を持ち上げることで自分の安全を確保しようとしている
人は、言葉を通じて
他者の中に“理想の自分”を設置しようとする
そして、その像を崩さないように話し続ける
そこには
理解よりも演技が
共感よりも戦略が
無意識のうちに、染み込んでいる
【第2章:群れとしての人間】
人は言葉でつながる
だがその言葉の多くは
“孤立への不安”から発されている
群れを維持するために
同じ感情を持ち、同じ言葉を繰り返し
お互いの「大丈夫」を確認し合う
共感という言葉の裏には
「置いていかれたくない」という恐れがある
正しさを主張する声の奥には
「間違っていると思われたくない」という焦りがある
群れは、安心のために言葉を使い
言葉によって、異質を切り離す
その中にいると、安心できる
でも
その構造を一度“外”から見てしまった者は
もう元には戻れない
【第3章:人の本性は、言葉ではなく行動に出る】
人はどれだけでも言葉を飾れる
だけど、行動には飾りきれない“にじみ”がある
どんな言葉を使っても
最後に選び取った“手の動き”や“距離の取り方”がその人のすべてを語っている。
「応援してるよ」と言いながら、何も動かない
「気にしてない」と言いながら、目線をそらす
「君のためだ」と言いながら、自分の安心を優先する
本性は、言葉のなかにはいない
本性は、
“言葉と行動のあいだのズレ”にこそ宿る
沈黙していたとしても
どこに立ち、何を見て、何をしなかったかが
その人の思想を雄弁に語ってしまう
人間とは
「語られたこと」より
「語られなかった選択」の総体だ
【終章:それでも言葉を使う意味】
言葉は不完全だ
欲望にまみれ
無意識の計算に支配される
だからこそ、言葉だけを信じてはいけない
そして
言葉だけを否定してもいけない
行動が本性を語るなら
言葉は、その人が「どう在りたいか」を示す地図になる
言葉は未完成な願いだ
なれなかった自分
なりたいと思っている自分
そうであれたらよかったと思う自分
だから、僕は言葉を使う
その限界を知っていても
その矛盾を抱えてでも
本性は行動に宿る
だが、言葉はその本性と向き合おうとする意志だ
欲にまみれた言葉でも
その奥にある“問い”を手放さない限り
人は言葉によって
まだ誰かとつながることができる
たとえそれが
群れの外で
沈黙の縁を歩きながら
問いつづける者の言葉であったとしても
補遺
この記事は、言葉と行動を分けて書いた
けれども少し論点が足りなかったように思える
言葉と行動とは別にあるもの
それは沈黙なのだと思う。
語らない者が沈黙で語るとき
その沈黙ですら意図がある
関連記事
『そばにいるということ』
言葉が本性を語りきれないなら、
人はどのように他者のそばに在ればよいのか。
語ること、問うこと、黙ること。
その境界線を、倫理として見つめた詩文。
※この原稿は『本性は言葉にならない』の途中に、語彙階層モデル・HAE・SAE・Apple Watch実装構想が混入していた元データである。
後に以下の記事へ分離した。
『本性は言葉にならない』
『語彙は人間の棲む世界を映す』
『意味テンソルと存在の熱力学』
『SAEをApple Watchに載せるなら』
「日本語日常頻出語彙100語」をカテゴリ別に分類した JSON形式
{
"生理・生存": [
"飯", "食う", "飲む", "水", "風呂", "トイレ", "寝る", "起きる",
"疲れた", "腹減った", "うまい", "まずい", "暑い", "寒い"
],
"金銭・消費": [
"金", "高い", "安い", "買う", "売る", "バイト", "稼ぐ",
"使う", "払う", "借りる", "財布", "ローン"
],
"感情・価値判断": [
"好き", "嫌い", "うれしい", "ムカつく", "やばい", "怖い", "だるい",
"楽しい", "つまらん", "イライラ", "キモい", "嬉しすぎ", "ガチ", "しんどい"
],
"人間関係・ジェンダー": [
"男", "女", "友達", "先輩", "後輩", "彼女", "彼氏", "親",
"子供", "先生", "上司", "同僚", "知らん人"
],
"罵倒・評価語": [
"バカ", "クソ", "キモい", "ださい", "うざい",
"ムカつく", "しょぼい", "サイテー", "あほ", "雑魚"
],
"生活・日課": [
"起きる", "寝る", "働く", "遊ぶ", "休む",
"行く", "帰る", "洗う", "着替える", "掃除"
],
"媒体・行動": [
"スマホ", "LINE", "動画", "ゲーム", "Twitter",
"見る", "聞く", "撮る", "送る", "シェア"
],
"嗜好・快楽": [
"酒", "たばこ", "カラオケ", "ラーメン", "チョコ",
"スイーツ", "アイス", "牛丼", "焼肉"
],
"判断・自己表現": [
"わかる", "知らん", "思う", "やる", "できない",
"マジ", "ほんと", "無理"
]
}語彙リストに対して
各語彙ごとに感情値スコア(Emotion Score)を追加した JSON形式
🔹【スコア定義】(範囲:-1.0 ~ +1.0)
• +1.0 = 強いポジティブ感情(幸福、満足、快感)
• 0.0 = 中立・中性(生理的、事実的)
• -1.0 = 強いネガティブ感情(不快、怒り、嫌悪)
{
"生理・生存": [
{"word": "飯", "score": 0.7},
{"word": "食う", "score": 0.5},
{"word": "飲む", "score": 0.5},
{"word": "水", "score": 0.2},
{"word": "風呂", "score": 0.6},
{"word": "トイレ", "score": 0.0},
{"word": "寝る", "score": 0.4},
{"word": "起きる", "score": 0.1},
{"word": "疲れた", "score": -0.6},
{"word": "腹減った", "score": -0.3},
{"word": "うまい", "score": 0.8},
{"word": "まずい", "score": -0.8},
{"word": "暑い", "score": -0.5},
{"word": "寒い", "score": -0.5}
],
"金銭・消費": [
{"word": "金", "score": 0.4},
{"word": "高い", "score": -0.4},
{"word": "安い", "score": 0.5},
{"word": "買う", "score": 0.3},
{"word": "売る", "score": 0.1},
{"word": "バイト", "score": -0.1},
{"word": "稼ぐ", "score": 0.4},
{"word": "使う", "score": 0.0},
{"word": "払う", "score": -0.2},
{"word": "借りる", "score": -0.3},
{"word": "財布", "score": 0.0},
{"word": "ローン", "score": -0.6}
],
"感情・価値判断": [
{"word": "好き", "score": 0.9},
{"word": "嫌い", "score": -0.9},
{"word": "うれしい", "score": 1.0},
{"word": "ムカつく", "score": -1.0},
{"word": "やばい", "score": 0.0},
{"word": "怖い", "score": -0.7},
{"word": "だるい", "score": -0.5},
{"word": "楽しい", "score": 0.9},
{"word": "つまらん", "score": -0.7},
{"word": "イライラ", "score": -0.8},
{"word": "キモい", "score": -1.0},
{"word": "嬉しすぎ", "score": 0.95},
{"word": "ガチ", "score": 0.2},
{"word": "しんどい", "score": -0.6}
],
"人間関係・ジェンダー": [
{"word": "男", "score": 0.0},
{"word": "女", "score": 0.0},
{"word": "友達", "score": 0.8},
{"word": "先輩", "score": 0.3},
{"word": "後輩", "score": 0.3},
{"word": "彼女", "score": 0.9},
{"word": "彼氏", "score": 0.9},
{"word": "親", "score": 0.4},
{"word": "子供", "score": 0.6},
{"word": "先生", "score": 0.2},
{"word": "上司", "score": -0.1},
{"word": "同僚", "score": 0.3},
{"word": "知らん人", "score": -0.2}
],
"罵倒・評価語": [
{"word": "バカ", "score": -0.9},
{"word": "クソ", "score": -1.0},
{"word": "キモい", "score": -1.0},
{"word": "ださい", "score": -0.8},
{"word": "うざい", "score": -0.9},
{"word": "ムカつく", "score": -1.0},
{"word": "しょぼい", "score": -0.7},
{"word": "サイテー", "score": -1.0},
{"word": "あほ", "score": -0.8},
{"word": "雑魚", "score": -0.9}
],
"生活・日課": [
{"word": "起きる", "score": 0.1},
{"word": "寝る", "score": 0.4},
{"word": "働く", "score": -0.2},
{"word": "遊ぶ", "score": 0.7},
{"word": "休む", "score": 0.5},
{"word": "行く", "score": 0.1},
{"word": "帰る", "score": 0.2},
{"word": "洗う", "score": 0.3},
{"word": "着替える", "score": 0.2},
{"word": "掃除", "score": 0.0}
],
"媒体・行動": [
{"word": "スマホ", "score": 0.4},
{"word": "LINE", "score": 0.5},
{"word": "動画", "score": 0.6},
{"word": "ゲーム", "score": 0.7},
{"word": "Twitter", "score": 0.3},
{"word": "見る", "score": 0.2},
{"word": "聞く", "score": 0.2},
{"word": "撮る", "score": 0.3},
{"word": "送る", "score": 0.1},
{"word": "シェア", "score": 0.4}
],
"嗜好・快楽": [
{"word": "酒", "score": 0.6},
{"word": "たばこ", "score": -0.2},
{"word": "カラオケ", "score": 0.8},
{"word": "ラーメン", "score": 0.7},
{"word": "チョコ", "score": 0.8},
{"word": "スイーツ", "score": 0.8},
{"word": "アイス", "score": 0.9},
{"word": "牛丼", "score": 0.6},
{"word": "焼肉", "score": 0.9}
],
"判断・自己表現": [
{"word": "わかる", "score": 0.6},
{"word": "知らん", "score": -0.1},
{"word": "思う", "score": 0.2},
{"word": "やる", "score": 0.1},
{"word": "できない", "score": -0.5},
{"word": "マジ", "score": 0.0},
{"word": "ほんと", "score": 0.1},
{"word": "無理", "score": -0.7}
]
}🔷【モデル概要】語彙頻度 → 人格・傾向の定量推定
◉ 入力:
• 対象者の発話ログ/SNS書き込み/日常会話のログ
• 単語ごとの頻度・文脈
• 各語に付随する「感情値」「カテゴリ(快楽/社会/攻撃)」などのラベル
◉ 出力:
• 感情傾向(喜怒哀楽バイアス)
• 欲求構造(食・性・金などの比率)
• 関係志向(自己中心性 vs 他者志向)
• 認知傾向(抽象語の多さ、否定形の出現率など)
🔶【構造モデル例】(簡易図式)
語彙頻度ベクトル V = {
"飯": 24, "酒": 17, "嫌い": 12, "寝る": 30, "LINE": 5, ...
}
↓ 各語に重みベクトル(感情値 × カテゴリベクトル)を乗算
→ 意味テンソル Φ_i = 感情 × 内容カテゴリ × 出現重み
↓ 統合 → 主成分抽出・クラスタリング
→ 個体特徴テンソル T(χ) = {
"快楽依存": 0.82,
"攻撃性": 0.45,
"共感性": -0.10,
"金銭志向": 0.35,
"自己指向性": 0.67
}🔷【概念構造】語彙階層 = 世界階層辞書(World-Level Dictionary)
各語彙は、単なる意味ではなく、
「世界の階層への所属」を帯びている。
その語が発されるとき、
発話者の存在がどの世界に沈んでいるのか/立ち上がっているのかが露呈する。
🔶【辞書モデル例(試案)】
{
"本能": [
"眠い", "だるい", "飯", "やりたい", "トイレ", "寝たい", "ムラムラ", "うまい", "疲れた", "あつい"
],
"感情": [
"嬉しい", "悲しい", "ムカつく", "イライラ", "好き", "嫌い", "しんどい", "うざい", "怖い", "優しい"
],
"社会": [
"俺", "私", "あの人", "相手", "彼女", "彼氏", "同僚", "上司", "親", "部下"
],
"制度": [
"仕事", "契約", "会社", "ルール", "法律", "義務", "税金", "保険", "社会", "システム"
],
"抽象": [
"自由", "愛", "誠実", "意味", "孤独", "真理", "運命", "倫理", "存在", "無"
]
}🔸【階層的読み取りの応用】(例)
「この人の発言は“本能語彙”に偏っている」→
→ その瞬間、その人は“動物的世界”に沈んでいる
「“制度語”と“抽象語”が頻出する」→
→ 法律・哲学・規範の世界に存在している
✅ 結論:
◉ 語彙の選択によって、「人がいまどの世界に生きているか」が可視化できる
◉ その語彙を束ねていくことで、「世界ごとの辞書」が成立する
◉ 意味テンソル理論において、それは多層存在圏のトポロジーを記述する辞書構造である
🔷 世界認識の5層構造モデル
語彙分布によって「人が属している世界階層」を可視化するための基本辞書(β版)
🔶【定義】5つの存在階層
層
名称
世界の特徴
主な関心
L1
本能
生理的欲求/快不快/衝動
飯、眠気、性欲、痛み
L2
感情
情動反応/情緒/自己状態
喜怒哀楽、共感、葛藤
L3
社会
関係性/役割/対人意識
自他、地位、所属
L4
制度
組織・規範・責任・ルール
法、義務、職務、契約
L5
抽象
概念・倫理・存在・意味
愛、自由、死、真理

🔸【語彙定義:階層別代表語彙(L1〜L5)】
{
"L1_本能": [
"飯", "食う", "うまい", "まずい", "酒", "ラーメン", "寝る", "眠い", "だるい", "トイレ",
"ムラムラ", "暑い", "寒い", "疲れた", "痒い", "喉乾いた", "セックス", "快感", "痛い", "くさい"
],
"L2_感情": [
"嬉しい", "悲しい", "ムカつく", "好き", "嫌い", "イライラ", "びっくり", "安心", "しんどい",
"寂しい", "恥ずかしい", "優しい", "怒る", "泣く", "笑う", "焦る", "キモい", "怖い", "不安", "満足"
],
"L3_社会": [
"私", "俺", "あの人", "彼女", "彼氏", "友達", "親", "上司", "部下", "同僚",
"先輩", "後輩", "先生", "仲間", "社会", "知り合い", "関係", "立場", "他人", "自分"
],
"L4_制度": [
"仕事", "会社", "契約", "ルール", "法律", "義務", "責任", "税金", "制度", "年金",
"罰則", "手続き", "許可", "労働", "就職", "福利厚生", "評価", "査定", "罰金", "書類"
],
"L5_抽象": [
"自由", "愛", "死", "真理", "意味", "存在", "運命", "正義", "誠実", "倫理",
"希望", "孤独", "信仰", "魂", "無", "可能性", "普遍", "本質", "矛盾", "永遠"
]
}🔹【語彙分布モデルの構築】
対象者の発話・文章・チャットログなどから出現語を抽出し、以下のような「階層比率テンソル」を導出:
◉ 出力例(Aさん):
{
"L1_本能": 0.35,
"L2_感情": 0.28,
"L3_社会": 0.22,
"L4_制度": 0.10,
"L5_抽象": 0.05
}これにより、
✅「この人は本能と感情の領域に7割生きている」
✅「抽象思考や制度言語が極端に少ない」
などの世界階層プロファイリングが可能になる。
🔸【応用モデル】意味テンソル座標としての語彙重心ベクトル
\mathbb{X}_{\text{world}} = \sum_{i=1}^{5} p_i \cdot \vec{e}_i• p_i:各階層の語彙出現比率
• \vec{e}_i:意味空間上の基底ベクトル(L1〜L5)
• \mathbb{X}_{\text{world}}:「存在がどの階層に重心を置いているか」の位置ベクトル
✅ 結論:
◉ 語彙の分布は、「どの世界に自分が棲んでいるか/留まっているか」を示す
◉ この構造をテンソル化・視覚化することで、個人・集団・物語の「意味階層地形」が見える
「語彙によって“世界の層”が見える」構造と、
この HAE(Hiroki Action Entropy) を統合することで、さらに次の補強が可能です:
🔷 補強コンセプト:
HAE × 語彙層モデル = 「存在の熱力学」
語彙の選択と行動の乱雑さは、同じエントロピー空間に位置している
🔶【補強1】語彙層分布 → 意識の位相空間へのマッピング
今回、提案した5層モデル(本能〜抽象)は、
「語彙による存在階層の指標化」であると同時に、
“思考の自由度”や“内的基準の軸ブレ”の可視化にも対応可能です。
ここで仮定:
• 本能・感情語に偏るほど、選択は衝動的・外部反応的 → HAEが高い
• 制度・抽象語に偏るほど、選択は内省的・構造的 → HAEが低い
つまり:
✅ 語彙層の分布からも、精神の秩序性を間接的に評価できる
🔸【補強2】語彙選択のエントロピー = Semantic Entropy(SE)
語彙の出現頻度を \text{p}(w_i) としたとき、
その分布の乱雑さ(多様性、バラつき)を:
\text{SE} = -\sum_i p(w_i) \log_2 p(w_i)
と定義できる。
ここで、語彙に「所属階層(L1〜L5)」のラベルを付けた場合、
L1〜L5にどの程度偏っているか(=語彙重心の低層/高層偏差)は、HAEと密接に関係する。
🔷 補強モデル式(統合定式)
1. Semantic Action Entropy(SAE):
「語彙と行動の両方のエントロピー」から、精神位相を統合的に記述する
\text{SAE} = \alpha \cdot HAE + \beta \cdot SE
• HAE:行動の乱雑さ(実際の選択履歴)
• SE:語彙の乱雑さ(発話の階層偏差)
• \alpha, \beta:個人特性や社会環境による重み調整
🔶【補強3】SAEと「意味現在点」\mathfrak{n}_\chi の連動
TET理論で定義された:
\mathfrak{n}\chi := \arg\max{x} \|\eta_\chi(x)\|^2
この「現在点」は、意味干渉の主成分(集中点)であるが、
SAEが高い場合、「\mathfrak{n}\chi が定まらず、分散する=現在が曖昧」
SAEが低い場合、「\mathfrak{n}\chi が明確に集中=現在がはっきりしている」
つまり:
✅ SAEは、「意味の現在性」と「精神の秩序性」を連動させるテンソル的温度指標となる
✅統合モデルの本質:
項目
意味
HAE
外的行動の選択分岐の乱雑さ
SE
内的語彙の意味分布の乱雑さ
SAE = a • HAE + ß • SE
精神と行動の意味温度/存在エント
ロピーの複合指標
SAEN
意図の集中、意味の現在点が鋭利、精神秩序が高い
SAET
衝動性・反応性・語彙分散、精神混
濁/多世界漂流

🎯補強の意義(まとめ)
◉「どんな語を話すか」は「どんな行動を選ぶか」に対応している
◉「語彙」と「行動」のエントロピーは、「存在の温度」そのもの
◉ HAEを語彙分布と接続することで、存在の熱力学的モデルが完成する
🔷 SAE 時間遷移モデル(Semantic–Action Entropy Time Dynamics)
【定義】
1時点 t における SAE(意味–行動エントロピー)を:
SAE(t) = \alpha \cdot HAE(t) + \beta \cdot SE(t)
• HAE(t):その時点の行動履歴から算出されるエントロピー(選択の分岐と衝動)
• SE(t):その時点の対話ログ(語彙)から算出される意味エントロピー(使用語彙の階層・分布)
🔶【1】入力構造
◎行動ログ(例)
時間
行動
カテゴリ
09:00
スマホを見ながら歩く
分散・衝動系
09:15
コンビニで衝動買い
分岐行動
10:00
約束の場所に遅れて到着
計画不整合
→各行動 arに対して出現頻度p(ak)を集計し、HAE(t)を算出

◉ 対話ログ(例)
「だるいわ…マジ無理。まあでも飯食ったらちょっと回復」🔸【2】出力例:SAEの時間変動
時間帯
HAE(t)
SE(t)
SAE(t)
備考
09:00
3.1
2.8
2.95
通勤中に衝動・スマホ徘徊+感情語多め
10:00
2.0
1.2
1.60
会話少・行動整然
12:00
3.5
3.2
3.35
SNSでキレた+予定キャンセル
15:00
1.1
0.9
1.00
集中作業中、語彙も抽象・少量🔷【3】SAE時間曲線の図解イメージ:
• 横軸:時間(09:00〜15:00)
• 縦軸:SAE値(高=存在の分散/混乱、低=秩序・集中)
• 曲線の山=意味と行動が乱れた瞬間(カオス)
• 谷=意図と行動が一致している“現在点”の集中
✅ 意義:
◉ 「あなたは今日、どれだけ意味的に揺らいでいたか」
◉ 「どの瞬間に“現在点”を見失ったか」
◉ それを、語と行動の履歴から描くことができる
✅ Apple WatchにSAE(Semantic–Action Entropy)モデルを搭載することは技術的に可能
ただし、そのためには「行動+言語データをリアルタイムに取得・処理・推論するミドルウェア」が必要です。
以下、構成・必要要素・制限・実現ルートを3段階構造で整理します。
⸻
🔷【1】必要なデータ:Apple Watchで取得できるもの/できないもの
✅ Apple Watchで取得可能なデータ(行動ログ側:HAE)
センサ/API
取得できる情報
HAEにおける役割
加速度センサ
歩く/立ち止まる/衝動的な動き
行動パターンの分岐数評価に使用
GPS
予期せぬ移動/ルート逸脱/寄り道検出
意図とのズレ(カオス性)を数値化
心拍数・HRV
ストレス反応・衝動性(戦う/逃げる)
意図と感情の不一致性の指標
睡眠・立ち上がり検知
不規則な生活・無意識行動の出現
HAE増加要因
❌ Apple Watch単体では取得困難な情報(語彙ログ側:SE)
必要情報
現状のWatch機能
補完手段
発話ログ
✕
iPhoneマイク連携 or 音声メモ認識
SNS/対話アプリ履歴
✕
iPhoneアプリから定期同期
意味階層辞書
搭載必要
ローカル辞書 or iCloudベース
🔶【2】実現アーキテクチャ:SAE搭載の3層構成
[Apple Watch]
└─ センサ(加速度・GPS・心拍) → HAE(t)推定
[ペアリングiPhone]
└─ 音声記録・入力履歴(例:Siriログ/LINE) → SE(t)推定
[SAEエンジン(iPhoneアプリ or iCloud)]
└─ SAE(t) = α・HAE(t) + β・SE(t)
→ 現在点推定・ヒートマップ表示・通知
🔶 むしろ倫理的に“有用”である
◉ 衝動的な行動に先立って「今、あなたのSAEが上がってます」と知らせてくれる
→ 暴言、浪費、依存行動、破局的選択を未然に検知・反省機会を提供する
◉ 逆に、秩序的な1日には「SAEが安定しています」と視覚化してくれる
→ 自己認知と安定のトラッキングが可能
これは、「自分の意味的健康状態を可視化するウェアラブル」と言ってよい。
⸻
✅ 結論(倫理論争の本質):
◉ SAEアプリに倫理的問題はない。
◉ 「他者を測定すること」が問題になるだけで、「自分の存在を測定しようとする意志」にこそ、倫理的意義がある。
むしろこれは、
倫理を“規範”として守るのではなく、
“存在の秩序”として観測する手段
である。


🛠️ SAEプロトタイプ設計(SwiftUI)
✅ 1. 基本構成(View階層)
SAEApp
├── SAEView // メイン画面(SAEグラフ)
│ ├── SAEChart // 折れ線グラフ(時間 × SAE値)
│ └── SAEStatusCard // 現在のSAE値と時刻表示
│
├── NotificationView // 「意味が乱れてます」通知
│
└── SettingsView // α・βの設定、通知トリガー閾値設定✅ 2. 状態モデル(Model.swift)
struct SAEPoint: Identifiable {
let id = UUID()
let time: Date
let saeValue: Double
}
class SAEModel: ObservableObject {
@Published var saeHistory: [SAEPoint] = []
@Published var currentSAE: Double = 0.0
func updateSAE(hae: Double, se: Double, alpha: Double = 0.5, beta: Double = 0.5) {
let sae = alpha * hae + beta * se
let point = SAEPoint(time: Date(), saeValue: sae)
saeHistory.append(point)
currentSAE = sae
}
}✅ 3. グラフ表示(SAEChart.swift)
struct SAEChart: View {
@ObservedObject var model: SAEModel
var body: some View {
Chart(model.saeHistory) {
LineMark(
x: .value("Time", $0.time),
y: .value("SAE", $0.saeValue)
)
}
.frame(height: 200)
}
}✅ 4. SAE通知(NotificationView.swift)
struct NotificationView: View {
var saeValue: Double
var body: some View {
VStack {
if saeValue > 3.0 {
Label("今、あなたは意味が乱れています", systemImage: "exclamationmark.triangle.fill")
.foregroundColor(.red)
.padding()
}
}
}
}✅ 5. UI統合(SAEView.swift)
struct SAEView: View {
@StateObject var model = SAEModel()
var body: some View {
VStack {
SAEChart(model: model)
SAEStatusCard(currentValue: model.currentSAE)
NotificationView(saeValue: model.currentSAE)
}
.padding()
.onAppear {
simulateSAEUpdates(model: model) // ダミーデータ更新
}
}
}✅ 6. ダミーデータ生成(開発用)
func simulateSAEUpdates(model: SAEModel) {
Timer.scheduledTimer(withTimeInterval: 10.0, repeats: true) { _ in
let randomHAE = Double.random(in: 1.0...4.0)
let randomSE = Double.random(in: 1.0...4.0)
model.updateSAE(hae: randomHAE, se: randomSE)
}
}チェック今後の拡張
ポイント(設計済)
項目
実装内容例
Watch # UI
SAEのみの簡易表示+現在点バイ
ブ通知
iCloud同期
日別SAE履歴を保存して「週次SAE
平均」など可視化可能
音声/NLP連携(SE)
SwiftSpeechKit+ローカル辞書で
感情語/本能語などを解析
行動センサ連携(HAE)
CoreMotion/HealthKitで加速度・ルート逸脱などを検出

SAE(Semantic–Action Entropy)プロトタイプの全コードを提示します。
✅ SAEApp.swift
import SwiftUI
@main
struct SAEApp: App {
var body: some Scene {
WindowGroup {
SAEView()
}
}
}✅ SAEModel.swift
import Foundation
import Combine
struct SAEPoint: Identifiable {
let id = UUID()
let time: Date
let saeValue: Double
}
class SAEModel: ObservableObject {
@Published var saeHistory: [SAEPoint] = []
@Published var currentSAE: Double = 0.0
func updateSAE(hae: Double, se: Double, alpha: Double = 0.5, beta: Double = 0.5) {
let sae = alpha * hae + beta * se
let point = SAEPoint(time: Date(), saeValue: sae)
saeHistory.append(point)
currentSAE = sae
}
}✅ SAEChart.swift
import SwiftUI
import Charts
struct SAEChart: View {
@ObservedObject var model: SAEModel
var body: some View {
Chart(model.saeHistory) {
LineMark(
x: .value("Time", $0.time),
y: .value("SAE", $0.saeValue)
)
.foregroundStyle(Color.red)
.lineStyle(StrokeStyle(lineWidth: 2))
}
.frame(height: 200)
}
}※ Charts は iOS 16+ で利用可能な Apple 純正の Swift Charts API。
✅ SAEStatusCard.swift
import SwiftUI
struct SAEStatusCard: View {
var currentValue: Double
var body: some View {
VStack(alignment: .leading) {
Text("SAE")
.font(.caption)
.foregroundColor(.gray)
Text(String(format: "%.2f", currentValue))
.font(.system(size: 40, weight: .bold, design: .rounded))
.foregroundColor(.white)
}
.padding()
.background(RoundedRectangle(cornerRadius: 12).fill(Color(.darkGray)))
}
}✅ NotificationView.swift
import SwiftUI
struct NotificationView: View {
var saeValue: Double
var body: some View {
if saeValue > 3.0 {
HStack {
Image(systemName: "exclamationmark.triangle.fill")
.foregroundColor(.red)
Text("今、あなたは意味が乱れています")
.foregroundColor(.white)
.font(.subheadline)
Spacer()
Text(Date(), style: .time)
.foregroundColor(.gray)
.font(.caption)
}
.padding()
.background(RoundedRectangle(cornerRadius: 10).fill(Color.black))
.transition(.opacity)
}
}
}✅ SAEView.swift
import SwiftUI
struct SAEView: View {
@StateObject var model = SAEModel()
var body: some View {
VStack(spacing: 20) {
Text("SAE Prototype")
.font(.title)
.foregroundColor(.white)
Text("Semantic–Action Entropy")
.font(.subheadline)
.foregroundColor(.gray)
SAEChart(model: model)
SAEStatusCard(currentValue: model.currentSAE)
NotificationView(saeValue: model.currentSAE)
Spacer()
}
.padding()
.background(Color.black.edgesIgnoringSafeArea(.all))
.onAppear {
simulateSAEUpdates(model: model)
}
}
}✅ Simulator.swift(開発用ダミー)
import Foundation
func simulateSAEUpdates(model: SAEModel) {
Timer.scheduledTimer(withTimeInterval: 10.0, repeats: true) { _ in
let randomHAE = Double.random(in: 1.0...4.0)
let randomSE = Double.random(in: 1.0...4.0)
model.updateSAE(hae: randomHAE, se: randomSE)
}
}✅実行環境要件
項目
内容
Xcode
14以降(SwiftUI+ Charts)
ios
16以降推奨(Chart使用のため)
デバイス
phone/Apple Watch
(SwiftUI 構成)
・拡張可能性
・SpeechKit 経由で語彙からの SE 推定統合
(今後)
・CoreMotion / HealthKit連携でHAEリアルタイム取得
・SAE 予測AI:過去分布から次の「意味ゆらぎ」
を予測(RNN or 時系列モデル)

いいなと思ったら応援しよう!
応援よろしくお願いします!いただいたチップは研究費用に回します。