語義網絡

一個簡單嘅語義網絡,表示咗
哺乳類Mammal)、Cat)、毛皮Fur)、
動物Animal)、Fish)同鯨魚Whale)...
等多個動物相關概念之間嘅啦掕。

語義網絡(粵拼:jyu5 ji6 mong5 lok6英文semantic network)係知識庫嘅一種做法,用一幅有向圖或者無向圖表示一拃概念之間嘅關係。一個基本嘅語義網絡會有若干個

  1. 節點(node),每個節點代表一個概念
  2. 節點之間會有一啲連繫(edge),兩個概念之間嘅連繫表達佢哋之間嘅關係。

舉例說明,想像附圖入面嗰個語義網絡,圖入面有哺乳類Mammal)、Cat)同埋毛皮Fur)等嘅節點,每個節點都代表咗個概念,幅圖仲有一條條嘅連繫(啲箭咀)喺節點之間,每條連繫表示咗一段關係-由貓指去哺乳類條箭咀表示「貓係一種哺乳類」(is a),而由貓指去毛皮條箭咀表示「貓毛皮」(has)... 等等;成個網絡「表示」緊有關「拃概念之間係咩關係」嘅知識。進階嘅語義網絡模型會有更加複雜嘅結構[2][3]

語義網絡源自 1950 年代[4],喺打後幾十年內就廣泛噉俾認知科學採用:認知心理學發覺將人腦想像成語義網絡嘅話,能夠解釋到唔少有關「人腦點處理文字資訊」相關嘅現象(例子可以睇吓促發效應[5];而喺人工智能上,語義網絡仲可以攞嚟教電腦處理日常語言[6]

定義

响嚴格定義上,語義網絡係一種抽象化嘅圖有向(啲連繫有特定方向)又得無向(啲連繫冇特定方向)又得,最基本組成部份包括咗兩樣嘢[7][8]

  1. 節點(node),當中每個節點代表一個概念;概念係指對一拃嘢嘅抽象化,例如一個人睇咗 100 樖之後,發覺嗰 100 嚿物件都有「有」同「有樹幹」等嘅特徵-於是佢個裏面就組成咗「樹」嘅概念,「動物」同「」等嘅概念道理一樣[9]
  2. 節點之間會有一啲連繫(edge);精確啲講,每條連繫表達嘅係語義關係-即係話條連繫在意嘅係啲背後嘅意思;最基本嘅連繫有
    • 「係... 嘅一種」(睇埋子集)-例如「貓係動物嘅一種」同「樹係動物嘅一種」;
    • 「擁有...」(睇語言學上講嘅擁有)-例如「貓有毛皮」同「樹有」;
    • 「蘊含...」(睇邏輯學上講嘅結論)... 呀噉[10][註 1]

好似下圖噉嘅語義網絡表示咗一啲有關動物嘅知識:啲節點係哺乳類Mammal)、Cat)、毛皮Fur)、動物Animal)、Fish)、鯨魚Whale)同Water)等好多個同動物有關嘅概念,而啲連繫表示咗概念之間嘅關係-

  • 由貓指去哺乳類條箭咀表示「貓係一種哺乳類」(is a);
  • 由貓指去毛皮條箭咀表示「貓毛皮」(has);
  • 由魚指去水條箭咀表示「魚住喺入面」(lives in)... 等等[11]
Semantic Net.svg

認知心理學上,語義網絡俾人指可以攞嚟解釋促發效應(priming effect)等嘅多種認知現象[12]認知心理學家作出噉嘅想像;想像喺是但一個時間點,人腦嘅語義網絡每個節點都有個值代表佢嘅啟動程度,一個節點啟動就會引起擴散啟動(spreading activation)-

  • 引致佢掕住嗰啲節點跟住啟動;
  • 同佢連繫愈強嘅節點就會掕住啟動得愈勁;

-用日常用語講,人一講起一樣嘢嗰陣,就傾向會諗起啲同嗰樣嘢相關嘅嘢。實驗仲試過噉做:實驗者叫人類受試者喺聽到個字嗰陣有咁快得咁快撳一個掣,而喺聽打前聽到(例如)個字嘅受試者對反應會變快,彷彿好似人腦入面嘅節點一啟動,(一個同關係緊密嘅概念)嘅節點就會跟住一齊啟動,令到個腦能夠更快噉作出對節點要有嘅反應,促發效應就係泛指好似上述嘅過程噉「見到一款刺激會令個人對另一款刺激嘅反應有所變化」嘅現象[13][14]。基於呢樣發現,有唔少 AI 研究者都主張用語義網絡教電腦做推理,覺得呢種做法能夠達致更加似人嘅人造智能[15]

製作

Vehicle交通工具)、Car)、
Truck貨車)有啦掕,
俾人畫埋喺同一個語義網絡裏面。

編寫網絡

要建立語義網絡,最簡單直接嘅方法係用邏輯編程語言寫:邏輯編程語言係程式語言嘅一種,建基於形式邏輯[16];例如 Prolog 就係一隻廿一世紀初常用嘅邏輯編程語言,成日俾人攞嚟整語義網絡;呢隻語言做法係喺個程式開頭講低拃事實,包含一拃概念同啲概念之間嘅關係;呢啲事實會組成個系統嘅知識庫,而知識庫整好咗,用家就有得向佢提問,每吓提問有句嘢做 input,部電腦曉按照拃碼嚟判斷嗰句嘢係咪「合符知識庫入面其中一句嘢」 OR 「可以由知識庫度推理出嚟」,如果係嘅話就俾正確output,否則就俾錯誤output [17][18]

Prolog 碼表達起事實上嚟嘅基本格式係 relation(entity1, entity2, ....k'th entity).(當中 relation 係關係,entityn 係第 n 嚿物件)。例如好似以下噉嘅簡單 Prolog 碼噉(每行 % 後面嘅係注釋,解釋嗰行碼係做乜嘅)[18]

friends(simon, alan). % simon 同 alan 呢兩嚿物件之間係 friend(朋友)嘅關係。 
singer(helena). % helena 係 singer(歌手)。
odd_number(5). % 5 係 odd_number(單數)。

用 Prolog 寫咗上面段碼之後,部電腦就知咗「simonalan 係朋友」等嘅三件事實(組成咗知識庫);有咗個知識庫,用家就可以作出提問(Query = 提問):

Query 1 : ?- singer(helena). % 呢句嘢喺 Prolog 入面意思係「helena 係咪 singer?」噉解。
Output : Yes.

-因為段碼組成嘅知識庫入面有句嘢同 Query 吻合,所以部電腦就俾出正確output。又睇吓:

Query 2 : ?- odd_number(7). % 呢句嘢喺 Prolog 入面意思係「7 係咪 odd_number?」噉解。
Output : No.

-喺現實,7 的確係個單數,但因為知識庫入面冇講明 odd_number(7).(Prolog 碼「7 係 odd_number」噉解);部電腦搵唔到任何同 odd_number(7). 吻合嘅事實,於是就俾咗錯誤output。除咗 Prolog 之外,Lisp 亦都成日俾人攞嚟整語義網絡,例如以下呢段 Lisp 碼,表明咗金絲雀canary)同企鵝penguin)係一種(is-a雀鳥bird):

(setq *database*
'((canary  (is-a bird)
           (color yellow)
           (size small))
  (penguin (is-a bird)
           (movement swim))
  (bird    (is-a vertebrate)
           (has-part wings)
           (reproduction egg-laying))))

有咗好似 Prolog 同 Lisp 噉嘅程式語言,就可以教電腦表達一拃概念同埋啲概念之間嘅關係,設計者可以攞住呢啲語言人手噉整語義網絡[18][19]

WordNet

喺廿一世紀初,唔少認知科學資訊科技領域嘅工作者都有興趣整語義網絡,當中最出名嘅要數 WordNet:WordNet 係一個建基於英文數據庫,收錄嗮英文入面有嘅字,並且按啲字嘅意思將啲字分做一組組(每組係一組 synset),仲會講明每對 synset 之間係咩語義關係,例如[20]

喺 Wordnet 3.1 度查「wordnet」搵到嘅結果
  • 部位詞(meronym)同群體詞(holonym):如果話 A 係 B 嘅部位詞,係指 A 係 B 嘅一部份,而 B 就係 A 嘅群體詞,例如手指手掌嘅部位詞,同時手掌手指嘅群體詞;又或者指甲手指嘅部位詞,同時手指指甲嘅群體詞;
  • 上位詞(hypernym)同下位詞(hyponym):如果話 A 係 B 嘅上位詞,係指 B 係 A 嘅一種,而 B 就係 A 嘅下位詞,例如顏色紅色嘅上位詞,同時紅色顏色嘅下位詞;又或者昆蟲蝴蝶蜜蜂嘅上位詞,同時蝴蝶蜜蜂昆蟲嘅下位詞[21]
  • 同義詞(synonym):如果話 A 同 B 係同義詞,即係指兩隻字意思一樣;喺廿一世紀初嘅語言學上,同義詞呢個概念有些少爭議性-因為語言演變等嘅現象,好難話兩隻字意思會完全一樣,所以好似 Wordnet 噉嘅語義網絡好多時淨係會話「A 同 B 意思上好相似,大致上係同義詞」,而唔會真係話兩隻字係同義詞;
  • 反義詞[22]
    • 分級反義詞(graded antonym):通常淨係適用於形容詞,如果話 A 同 B 係分級反義詞,意思係話兩隻字形容緊某個連續變數嘅兩極,例如溫度係個連續變數,呢兩隻字形容緊溫度嘅兩極,所以係分級反義詞;又例如重量係個連續變數,呢兩隻字形容緊重量嘅兩極,所以係分級反義詞;又例如長度係個連續變數,呢兩隻字形容緊長度嘅兩極,所以係分級反義詞。
    • 關係反義詞(relational antonym):如果話 A 同 B 係關係反義詞,意思係話兩隻字形容緊一段關係嘅雙方,例如父母仔女,或者老師學生,或者醫生病人... 呀噉。
  • 方式詞(troponym):淨係適用於動詞,如果話 A 係 B 嘅方式詞,意思係話 A 表示做 B 嘅其中一種方式,例如狼吞虎咽食嘢嘅一個方式詞[23]

... 呀噉。Wordnet 基本上就係個語義網絡-Wordnet 啲資料可以人手摷嚟睇,但特登整到可以由電腦自動化噉查閱嘅[註 2]-一個設計者可以輕易寫個曉自己開網頁嚟睇嘅程式(可以睇吓網頁刮料等嘅技術),個程式一喺 Wordnet 攞隻字睇,即刻可以知邊隻字同呢隻字有關同埋「成咩關係」,跟手再自動噉畫幅語義網絡圖出嚟[24]

應用

語義網絡有唔少用途,尤其係喺自然語言處理(NLP;教 AI 處理自然語言嘅技術)等嘅 AI 工作上零舍有用[25]

  • 知識表示(KR):KR 涉及教電腦做出好似「有知識」噉嘅行為,係 AI 嘅重要一環[26];語義網絡可以攞嚟教 AI 做判斷,而且個 AI 淨係需要簡單噉摷個語義網絡搵想要嘅資訊;舉個簡單例子,想像而家有人問條問題「有冇脊椎?」(一條知識性嘅問題),部電腦內部有個語義網絡,攞個節點,然後摷 → 所有嘅貓都係哺乳類 → 哺乳類冚唪唥都係脊椎動物 → 脊椎動物冚唪唥都有脊椎 → 貓有脊椎,最後俾出做答案-部電腦展現出好似有知識噉嘅行為[27]
  • 詞義消歧(word-sense disambiguation,WSD):自然語言啲字入面有陣時會有歧義嘅問題,即係一隻字有多個可能意思,而 WSD 就係指教電腦撞到歧義情況嗰陣,同每隻有歧義嘅字搵出佢嘅意思;例如係以下嘅思路噉[28]
    • 想像語義距離(semantic distance)嘅概念,最基本上係指兩隻之間喺表示嘅意思上爭幾遠;例如用簡化嘅例子講,呢兩隻字嘅語義距離就好接近(兩隻字都係分別表示緊一種動物,而且兩隻字表示嘅動物好相似),而呢兩隻字嘅語義距離就相對遠(兩隻字表示嘅事物冇乜啦掕);語義距離有好多方法計,最簡單嘅方法係計吓「兩隻字喺個語義網絡[註 3]入面最短要通過幾多條邊,先可以將佢哋連埋一齊」-要過嘅邊數量愈少,兩隻字嘅語義距離就算愈短[29],進階啲嘅做法仲會將啲字按上位詞同下位詞嘅關係畫做分幾層嘅網絡,並且將「個意思喺個網絡邊層」等嘅因素納入埋考慮範圍之內[30]
    • 攞有歧義嗰隻字嚟睇,foreach 可能意思,計吓嗰個可能意思同周圍啲字(睇埋語境)之間嘅語義距離有幾遠;
    • 揀同周圍啲字語義距離最短嗰個意思。
  • 抄襲檢測(plagiarism detection):抄襲檢測係攞一份文件inputoutput 俾出「呢份文件有冇抄襲嘅成份」;最基本上,抄襲檢測做嘅嘢係攞住份文件,foreach 份文件有可能抄嘅文件,計吓份文件同 input 嗰份有幾相似,而如果相似性(similarity score)有返咁上下高,就有可能係抄襲,相似性可以用好多方法計[31]
    • 最簡單原始嗰種計法係「就噉比較兩份文件啲字似唔似」,不過噉做應付唔到「改吓字眼,意思冇變」嘅抄襲手法;
    • 潛在語義分析(latent semantic analysis,LSA):技術性噉講,LSA 會計個矩陣出嚟,矩陣每條橫行表示字詞,每條直行表示其中一份文件,每一格反映嗰隻字詞喺嗰份文件入面嘅 tf-idf(呢個值會反映嗰隻詞喺份文件入面有幾重要);跟住段演算法就會做降維-攞住個矩陣,嘗試搵個新矩陣出嚟,而個新矩陣橫行數量少咗,同時維持住直行之間嘅相似度分佈,打後得出嗰個(維數少嘅)矩陣就最代表到啲文件嘅意思,最後段演算法就用維數少嗰個矩陣比較啲文件喺意思上嘅相似度(途中可以用到語義網絡嚟睇啲字詞之間嘅意思相似度)[32][33]

... 呀噉。

註釋

  1. 噉亦即係話,語義網絡係本體嘅一種。
  2. 有關「點樣整到令電腦可以自動查閱」,可以睇吓標記語言中繼資料等嘅概念。
  3. 喺專業應用上,計數用嘅語義網絡通常會係 WordNet 等經已有喺度嘅網絡。

睇埋

文獻

  1. John F. Sowa (1987). "Semantic Networks". In Stuart C Shapiro (ed.). Encyclopedia of Artificial Intelligence. Retrieved 29 April 2008.
  2. Friedenberg, J., & Silverman, G. (2011). Cognitive science: An introduction to the study of mind. Sage. Ch. 8.
  3. Quillian, M. R. (1968). Semantic memory. Semantic information processing, 227-270.
  4. Lehmann, Fritz; Rodin, Ervin Y., eds. (1992). Semantic networks in artificial intelligence. International series in modern applied mathematics and computer science. Vol. 24. Oxford; New York: Pergamon Press. p. 6. "The first semantic network for computers was Nude, created by R. H. Richens of the Cambridge Language Research Unit in 1956 as an interlingua for machine translation of natural languages."
  5. Allan M. Collins; Elizabeth F. Loftus (1975). "A spreading-activation theory of semantic processing". Psychological Review. 82 (6): 407-428.
  6. Sussna, Michael. "Word sense disambiguation for free-text indexing using a massive semantic network (PDF)." Proceedings of the second international conference on Information and knowledge management. ACM, (1993).
  7. Berger, H., Dittenbach, M., & Merkl, D. (2003, September). Activation on the move: Querying tourism information via spreading activation. In International Conference on Database and Expert Systems Applications (pp. 474-483). Springer, Berlin, Heidelberg.
  8. Rajangam, E., & Annamalai, C. (2016). Graph models for knowledge representation and reasoning for contemporary and emerging needs - a survey (PDF). International Journal of Information Technology and Computer Science (IJITCS), 8(2), 14-22.
  9. COMPUTATIONAL LEARNING THEORY.
  10. Segev, Elad (2021). Semantic Network Analysis in Social Sciences. London: Routledge.
  11. Quillian, M. R. (1969). "The teachable language comprehender: a simulation program and theory of language". Communications of the ACM. 12 (8): 459-476.
  12. Allan M. Collins; M. R. Quillian (1969). "Retrieval time from semantic memory". Journal of Verbal Learning and Verbal Behavior. 8 (2): 240-247.
  13. Arbib, M. A. (Ed.). (2002). Semantic networks. In The Handbook of Brain Theory and Neural Networks (2nd ed.). Cambridge, MA: MIT Press.
  14. Schacter, D. L., Dobbins, I. G., & Schnyer, D. M. (2004). Specificity of priming: A cognitive neuroscience perspective (PDF). Nature Reviews Neuroscience, 5(11), 853-862.
  15. Notes on Semantic Nets and Frames (PDF). Artificial Intelligence I.
  16. Baral, C.; Gelfond, M. (1994). "Logic programming and knowledge representation". The Journal of Logic Programming. 19-20: 73-148.
  17. Bratko, I. (2001). Prolog programming for artificial intelligence. Pearson education.
  18. 18.0 18.1 18.2 Prolog | An Introduction. GeeksForGeeks.
  19. Lloyd, J. W. (1984). Foundations of logic programming. Berlin: Springer-Verlag.
  20. Steyvers, M.; Tenenbaum, J.B. (2005). "The Large-Scale Structure of Semantic Networks: Statistical Analyses and a Model of Semantic Growth". Cognitive Science. 29 (1): 41-78.
  21. Brinton, Laurel J. (2000). The Structure of Modern English: A Linguistic Introduction (Illustrated ed.). John Benjamins Publishing Company. p. 112.
  22. Cruse, D. Alan. (1992). Antonymy revisited: Some thoughts on the relationship between words and concepts. In A. J. Lehrer & E. F. Kittay (Eds.), Frames, fields, and contrasts: New essays in semantic and lexical organization (pp. 289-306). Hillsdale, NJ: Lawrence Erlbaum Associates.
  23. Fellbaum, C; Miller, G (1990). "Folk psychology or semantic entailment? A reply to Rips and Conrad (1989)". Psychological Review. 97: 565-570.
  24. G. A. Miller, R. Beckwith, C. D. Fellbaum, D. Gross, K. Miller. (1990). WordNet: An online lexical database. Int. J. Lexicograph. 3, 4, pp. 235-244.
  25. Hulpuş, I., Prangnawarat, N., & Hayes, C. (2015, October). Path-based semantic relatedness on linked data and its use to word and entity disambiguation. In International Semantic Web Conference (pp. 442-457). Springer, Cham.
  26. Roger Schank; Robert Abelson (1977). Scripts, Plans, Goals, and Understanding: An Inquiry Into Human Knowledge Structures. Lawrence Erlbaum Associates, Inc.
  27. Semantic network (Frame network) in Knowledge Representation of Artificial Intelligence. Medium.
  28. 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.
  29. 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.
  30. Budanitsky, A., & Hirst, G. (2006). Evaluating wordnet-based measures of lexical semantic relatedness. Computational linguistics, 32(1), 13-47.
  31. Foltýnek, T., Meuschke, N., & Gipp, B. (2019). Academic plagiarism detection: a systematic literature review. ACM Computing Surveys (CSUR), 52(6), 1-42.
  32. Ceska, Z. (2008, August). Plagiarism detection based on singular value decomposition. In International Conference on Natural Language Processing (pp. 108-119). Springer, Berlin, Heidelberg.
  33. Deerwester, S., Dumais, S. T., Furnas, G. W., Landauer, T. K., & Harshman, R. (1990). Indexing by latent semantic analysis. Journal of the American society for information science, 41(6), 391-407.