跳去內容

語義距離

出自維基百科,自由嘅百科全書
(由語義相似度跳轉過嚟)
一個簡單語義網絡表示咗哺乳類鯨魚... 等多個概念之間嘅啦掕。由幅圖入面睇得出,貓同哺乳類之間淨係隔咗一條線,而貓同鯨魚之間隔咗兩條線。

語義距離粵拼jyu5 ji6 keoi5 lei4)係自然語言處理(NLP)上成日用嘅一個概念,指兩隻(或者第啲語言單位)之間喺意思上爭幾遠。舉個簡化嘅例子,呢兩隻字嘅語義距離好近-兩隻字都係分別表示緊某種動物,而且兩隻字所表示嘅動物好相似;相比之下,呢兩隻字嘅語義距離就遠,因為兩隻字表示嘅事物冇乜直接嘅啦掕[1]

喺實際 NLP 上,「語義距離要點量度」係一條相當受爭義嘅問題:喺最簡單嗰種情況下,語義距離可以用「兩隻字喺語義網絡入面最短要通過幾多條邊,先可以將佢哋連埋一齊」嚟量度-理論上,要過嘅邊數量愈少,兩隻字嘅語義距離就算愈短;實際計數嗰陣,研究者可以攞 WordNet 等現成嘅語義網絡-呢啲網絡會紀錄嗮隻語言入面啲之間嘅關係,然後攞要計嗰兩隻字 1 同 2,睇吓字 1 同字 2 之間「隔咗幾多隻字」,就得出一個語義距離估計值[2]。專業 NLP 上仲有更加進階複雜嘅方法計語義距離。

响廿一世紀初嘅 NLP 同相關應用上,語義距離相當有用,可以攞嚟做詞義消歧(教電腦撞到歧義情況嗰陣,同每隻有歧義嘅字搵出佢嘅意思)嘅工作[3],而且仲有認知心理學工作者提倡可以運用語義距離嘅概念嚟衡量文字作品「幾有創意[4][5]

理論基礎

[編輯]
睇埋:促發效應

語義距離建基於一個簡單嘅事實:語言文字係攞嚟表達意思嘅,每隻都梗會有某啲意思;呢個諗頭又帶起咗語義網絡嘅概念-一個基本嘅語義網絡會有[6]

  1. 若干個節點[e 1],每個節點代表一個概念
  2. 節點之間會有一啲連繫[e 2],兩個概念之間嘅連繫表達佢哋之間嘅關係。

舉例說明,想像文頭嗰個語義網絡,圖入面有哺乳類同埋毛皮等嘅節點,每個節點都代表咗個概念,幅圖仲有一條條嘅連繫(啲箭咀)喺節點之間,表示啲概念之間嘅關係-由貓指去哺乳類條箭咀表示「貓係一種哺乳類」,而由貓指去毛皮條箭咀表示「貓毛皮」... 呀噉。

語義網絡等嘅概念,就自然帶起咗語義距離嘅諗法:直覺上認為,字詞同字詞之間可以意思上相近,例如蜜蜂蝴蝶都係指緊某啲昆蟲,所以喺意思上相對近,而蜜蜂雕像(後者指緊一種死物)就俾人感覺係意思上相距遠;有人仲主張「字詞同字詞之間喺意思上爭幾遠」可以用客觀嘅方法量度,簡單嘅有「數吓嗰兩隻字詞喺個語義網絡[註 1]入面相距幾多條連繫」-呢啲噉嘅量度就可以得出語義距離嘅估計值[2][7]

要留意嘅係,啲人傾語義距離相關嘅嘢嗰陣,好多時會用語義相似度[e 3]或者語義相關度[e 4]呢類詞彙[註 2]。語義相似度係語義距離嘅相反,不過兩隻詞彙都係描述緊同一個諗頭:如果兩隻字之間喺語義上相似,佢哋之間就算係語義距離短、語義相似度高;而如果兩隻字之間喺語義上唔相似,噉佢哋之間就算係語義距離長、語義相似度低[8]

基本計法

[編輯]
睇埋:向量字嵌入

計語義距離嘅過程,涉及咗噉嘅運算

呢個過程會用到以下呢啲數學概念。要留意嘅係,同一嚿 input,唔同計法出嘅數值可以好唔同,分析者會睇情況決定用邊種計法。

雅卡德指數

[編輯]

雅卡德指數[e 5]統計學成日用嘅一種數值,可以攞嚟評估兩個有幾接近。想像家陣有兩個集 ,佢哋之間有個交集;指兩個集都有嘅嘢[註 3]);噉兩個集之間嘅雅卡德指數 可以用以下條式計:

數值愈大,就愈表示兩個集相似[9]。上述噉嘅思考方式可以用落句子度-想像而家 係以下呢兩句句子[10]

  1. 「個樽係空嘅。」
  2. 「個樽入面乜都冇。」

用最簡單嗰種方法諗嘅話:呢兩句嘢入面都有呢兩隻字,呢兩隻字就係 ),淨低嗰八隻字唔喺 入面(),所以噉計嘅話,兩句句子之間嘅雅卡德語義距離就係

雅卡德指數有個好處係唔受重複咗嘅字影響,例如上面句子 1 就算加多個「空」字落去,雅卡德語義距離數值都唔會變。而喺實際嘅 NLP 應用上,雅卡德指數最大嘅弱點係淨係可以攞嚟量度句子或者段落之間嘅相似度,冇得攞嚟比較字同字之間嘅相似度。

歐幾里得距離

[編輯]
想像而家 係嗰兩隻字嘅字嵌入,可以畫做空間入面嘅兩,跟住分析者就可以計兩點之間嘅距離

首先,思考字嵌入[e 6]嘅概念:家陣攞若干隻俾部電腦分析,段嘢入面每隻字都可以有件字嵌入;每件字嵌入係個以實數表示嘅 向量,啲實數會表示隻字嘅意思,所以啲數值相近嘅字嵌入會係表示緊意思上相近嘅字[11]

舉個實質啲嘅例子,想像每隻字嘅字嵌入有 30 個實數( [註 4]),當中第一個實數表示嗰隻字同「貓科」有幾強嘅語義關聯,第二個實數表示嗰隻字同「人類」有幾強嘅語義關聯,第三個實數表示嗰隻字同「昆蟲」有幾強嘅語義關聯... 等等,數值愈正就表示語義關聯愈勁,即係

  • Cat)呢隻字嘅字嵌入係 [0.9, 0.1, -0.8...]
  • Tiger老虎)呢隻字嘅字嵌入係 [0.7, -0.6, -0.75...]
  • Nebula星雲)呢隻字嘅字嵌入係 [-0.9, -0.95, -0.95...]

姑且唔好諗「點樣知一隻字嘅字嵌入數值係乜」嘅問題住[註 5]。假想而家每隻字都有咗件字嵌入,一件字嵌入係個向量,所以可以當做空間入面嘅一噉嚟睇-好似附圖噉;當咗兩隻字係空間入面嘅兩點,分析者就有得計兩點之間嘅歐幾里得距離[e 7],得出個數值嚟反映「嗰兩隻字喺意思上爭幾遠」[註 6],例如 Python 就有陳述式可以一嘢俾出兩點之間嘅歐幾里得距離[10]

# ...
# 假設 embeddings[0] = cat 嘅 embedding,embeddings[1] = tiger 嘅 embedding
  距離 = euclidean_distance(embeddings[0], embeddings[1]) # 距離嘅數值設做嗰兩個 embedding 之間嘅歐幾里得距離。

餘弦相似度

[編輯]

餘弦相似度[e 8]可以攞嚟量度兩列數之間有幾相似。計餘弦相似度嗰陣,條式會攞兩個向量input,而 output 就會俾個數 出嚟, 嘅值反映兩個向量之間「個角度有幾大」, 數值愈細就表示兩個向量愈相似[12]

做要分析嗰兩個向量,而 嘅組成部份,噉餘弦相似度可以用噉嘅式計:

呢條式會出嘅 output 可能數值最低係 -1 最高係 1,數值愈高就表示兩個向量愈相似。如果上面條式嗰兩個向量係兩隻字嘅字嵌入,餘弦相似度就可以計到兩隻字喺語義上爭幾遠[10]

睇埋

[編輯]

文獻

[編輯]

註釋

[編輯]
  1. 假設個網絡做到準確噉描述現實。
  2. 不過有好多人嫌語義相關度呢隻詞唔嚴謹-兩隻字之間喺意思上有緊密關係,唔等如佢哋之間意思相似。可以睇吓反義詞以及部位詞同群體詞等嘅概念。
  3. 有關呢啲數學符號嘅意思,可以睇吓集合論相關嘅嘢。
  4. 喺實際應用上, 嘅數值閒閒哋會係幾百。
  5. 事實係,字嵌入嘅計法喺 NLP 上都係一條大課題。
  6. 技術性啲講,實際應用上通常會同呢個距離值做標準化

來源

[編輯]

篇文用咗嘅行話英文名如下:

  1. node
  2. edge
  3. similarity
  4. relatedness
  5. Jaccard index
  6. word embedding
  7. Euclidean distance
  8. cosine similarity

篇文引用咗以下呢啲文獻網頁

  1. Agirre, E., & Rigau, G. (1997). A proposal for word sense disambiguation using conceptual distance. AMSTERDAM STUDIES IN THE THEORY AND HISTORY OF LINGUISTIC SCIENCE SERIES 4, 161-172.
  2. 2.0 2.1 Budanitsky, Alexander and Hirst, Graeme. "Evaluating WordNet-based measures of lexical semantic relatedness." Computational Linguistics, 32(1), March 2006, 13-47.
  3. Diamantini, C.; Mircoli, A.; Potena, D.; Storti, E. (2015-06-01). "Semantic disambiguation in a social information discovery system". 2015 International Conference on Collaboration Technologies and Systems (CTS): 326-333.
  4. 4.0 4.1 4.2 Kenett, Y. N. (2019). What can quantitative measures of semantic distance tell us about creativity?. Current Opinion in Behavioral Sciences, 27, 11-16.
  5. Olson, J. A., Nahas, J., Chmoulevitch, D., Cropper, S. J., & Webb, M. E. (2021). Naming unrelated words predicts creativity. Proceedings of the National Academy of Sciences, 118(25).
  6. John F. Sowa (1987). "Semantic Networks". In Stuart C Shapiro (ed.). Encyclopedia of Artificial Intelligence. Retrieved 29 April 2008.
  7. Harispe S.; Ranwez S. Janaqi S.; Montmain J. (2015). "Semantic Similarity from Natural Language and Ontology Analysis". Synthesis Lectures on Human Language Technologies. 8:1: 1-254.
  8. Feng Y.; Bagheri E.; Ensan F.; Jovanovic J. (2017). "The state of the art in semantic relatedness: a framework for comparison". Knowledge Engineering Review. 32: 1-30.
  9. Murphy, Allan H. (1996). "The Finley Affair: A Signal Event in the History of Forecast Verification". Weather and Forecasting. 11 (1): 3.
  10. 10.0 10.1 10.2 Ultimate Guide To Text Similarity With Python. NewsCatcher.
  11. Jurafsky, Daniel; H. James, Martin (2000). Speech and language processing : an introduction to natural language processing, computational linguistics, and speech recognition. Upper Saddle River, N.J.: Prentice Hall.
  12. COSINE DISTANCE, COSINE SIMILARITY, ANGULAR COSINE DISTANCE, ANGULAR COSINE SIMILARITY.
  13. Kenett, Y. N. (2019). What can quantitative measures of semantic distance tell us about creativity?. Current Opinion in Behavioral Sciences, 27, 11-16.

[編輯]