Skip to content
EclairCJ edited this page May 18, 2021 · 7 revisions

KeyMoji

KeyMoji 服務介紹

KeyMoji 關鍵情緒偵測 (SENSE2、SENSE8、Tension) 採用不同於其它「素人標記」和「純機器學習」的文本情緒偵測分析工具,結合了「句型」、「邏輯語意」和「詞彙模型」,設計出一個完整的「情緒計算過程」。 並依中文的句法結構,定義了幾種句型:

  • 正向表述句型 > 川普終於輸了! (e.g., X 終於 Y 了!)
  • 負向表述句型 > 你是有天才嗎? (e.g., X 是有 Y 嗎?)
  • 趨中性句型    > 我只是要他開心一點 (e.g., X 只是要 Y )
  • 反轉極性句型 > 你不是有個富爸爸 (e.g., X 不是有 Y )
  • ...

此外,KeyMoji 同時整合了「句法知識」和「詞彙模型」,將 Rule-based 和 Data-driven 兩種方法 Hybrid 在一起。

Emotions in Formula

情緒的組成是由:詞彙 + 句型 + 語境 + 個人習慣 構成。

關鍵情緒偵測

KeyMoji 透過「句型」+「詞彙模型」的混合式演算法,將每一句的情緒偵測結果投射到二維 (SENSE2) 及八維 (SENSE8) 的情緒空間裡。另將「句型」本身的權重效果獨立成「情緒張力」(Tension) 的結果。

Context Sensitivity (語境敏感功能)

KeyMoji 有 Context_Sensitivity (語境敏感開關) 的設計。 如果前幾句是「正向描述」而這一句是「中性描述」的話,那麼這個「中性描述」也會被前文裡「正向描述」的情緒延續,使分數拉高一點。這麼一來,就能呈現「因前後文的語境」帶出的正負向情緒計算了。

舉個例子:

「終於買到 PS5 啦!」(正向描述) 「還有維京紀元」(中性描述,被前文帶出正向) 「黑色行動」(中性描述,被前文帶出正向) 「也一起入手了」(中性描述,被前文帶趨近正向)

語境敏感開關

由於不同的文化族群會有不一樣的價值觀 KeyMoji 排除涉及文化道德社會善良風俗判斷的詞彙。 像是「世界終於被政治正確毀滅了」「阿哲終於考上台大醫學院了」都是正向情緒。

Scoping

在語言裡還有一個叫 "Scope" 的概念,它是用來計算某些語意的控制範圍的 比如說「每個」和「某個」都是屬於帶有 "Scope" 的運算子 (operator)。那麼,以這個句子為例:

  • 遊戲裡的每個玩家都選擇某個角色
    • 當「每個」的 scope 大於「某個」的時候,每個玩家扮演的是 不同 的角色
    • 當「某個」的 scope 大於「每個」的時候,每個玩家扮演的是 同一 個角色

簡單地說,這些含有 "socping" 語意功能的詞彙,會影響句子語意的計算結果。而我們已經知道像是「每個」、「」、「」、「沒有」…這些詞彙都是帶有 "scoping" 語意功能的詞彙。因此在 KeyMoji 裡,我們也加入了計算 Operator 的 "Scope" 的處理。如下圖: Socping_1 Socping_2

KeyMoji 在設計時,涉及了許多語言學典範轉移以後,對人類認知系統的許多理解的計算公式,然後利用形式語意學裡計算 Scope 的方法,最後再加上詞彙自帶的正負面表示,綜合起來得到的情緒正負面計算結果。

文本情感分析的神兵利器 KeyMoji - Emotions in Formula
Clone this wiki locally