自然語言生成

自然語言生成粵拼zi6 jin4 jyu5 jin4 saang1 sing4英文natural language generation,NLG)係自然語言處理(NLP)嘅一個子領域。NLP 係人工智能嘅一部份,研究點樣教電腦處理自然語言,而 NLG 就係 NLP 下嘅一門,集中研究點樣用 NLP 嘅技術,教電腦產生用自然語言組成嘅 output [1][2]。喺最基本上,一個 NLG 程式[3]

後現代主義生成器呢個網站曉用 NLG 技術產生假嘅後現代主義學術文

不過由 2010 年代經已有人喺度提出,NLG 程式嘅 input 未必一定要係語言或者文字:攞做例子,人可以(例如)攞住幅圖像睇,跟住用口講嘅字描述幅圖像-input 係幅圖像,而 output 係一段講嘢嘅語音(由自然語言組成嘅 output[4],NLP 工作者可以寫程式模仿呢種認知過程,而呢種做法都會產生自然語言 output,所以屬 NLG 嘅一部份[3][5]

NLG 技術最早可以追溯到 1960 年代。到咗廿一世紀初,NLG 技術經已取得咗相當嘅成功,俾人攞嚟造天氣報告[6]或者傾偈機械人等嘅用途[7]。除此之外,甚至仲有人嘗試教電腦用 NLG 技術創造散文虛構故仔作品,令 NLG 變成運算創意(computational creativity)嘅一環[1]

基本定位

內文:自然語言處理

自然語言生成係自然語言處理(NLP)嘅一門。NLP 包含所有「教電腦處理自然語言」嘅技術,例如係教電腦做翻譯呀噉,而 NLG 就專指教電腦產生自然語言 output 嘅技術-當中嘅 output 可以係文字或者講嘢嘅語音都得[註 1]。喺最基本上,NLG 程式會攞某啲嘢做 input運算[註 2]一輪之後再俾段字或者語音出嚟做 output,涵括咗[3]

  • 機械翻譯,簡稱機翻:指教電腦做翻譯嘅技術;一個文字機翻程式會攞一段用源頭文字(例如英文)寫嘅字(input),再將段字轉換做用目標文字(例如粵文)寫嘅字(output)[8]
  • 自動總結:教部電腦自動噉同一段字「做總結」;一個噉嘅程式會攞一段文字做 input,跟住 output 就會俾出段字嘅「總結版本」-output 段字明顯短過 input 段字一大截,但同時又講到嗮 input 段字啲要點[9]
  • 電腦輔助評閱:教部電腦自動噉評閱一份文件;例如係教電腦檢查啲文字有冇串錯字噉,input 會係段要檢查嘅文字,而 output 就會係改啱嗮啲串法嘅字,又或者係啲串錯字標好嗮嘅字[10]

... 呀噉。要留意嘅係,NLG 嘅 input 唔一定要係文字或者語音:NLP 工作者一致同意,NLG 嘅 output 一定係自然語言(文字或者語音),但 input 就可以係啲非自然語言嘅嘢,例如人有能力望住一幅圖像(幅圖像係 input),再用言語嚟描述幅圖入面嘅嘢(由自然語言組成嘅 output),如果有 NLG 研究者整到個程式能夠做到同樣嘅嘢,噉嗰個程式都可以算係 NLG;事實係廿一世紀初嘅研究表明,同攞自然語言做 input 嘅 NLG 比起嚟,攞非自然語言做 input 嘅 NLG 撈絞好多[3]

大致步驟

睇埋:自然語言理解

NLG 主要會有以下呢啲步驟[11]

  • 內容決定:即係例如用 NLG 產生天氣報告,個程式第一步要決定個天氣報告要包含嗰啲數據(個氣溫攝氏幾多度、濕度係幾多 %... 呀噉);
  • 結構決定:決定啲內容以咩次序講出嚟,例如用返天氣報造個例子,研究者要決定「講咗氣溫先,定講咗濕度先」噉嘅資訊
  • 結合:將啲相似嘅句子結合,用數量最少同最短嘅句子講最多嘅資訊;
  • 選字:揀適當嘅用字。
  • 評估:評估一個 NLG 系統掂唔掂。

註釋

  1. 不過廿一世紀初嘅 NLG 多數都係 output 文字。
  2. 原則上,「運算」可以係「按某啲法則揀 input 入面嘅字,再按某啲法則將揀咗嘅字砌做 output」咁簡單。

睇埋

文獻

  • Bateman, J. A., & Zock, M. (2005). Natural Language Generation. In Mitkov, R. (Ed.), The Oxford Handbook of Computational Linguistics. Oxford University Press, Oxford,UK.
  • Gatt, A., & Krahmer, E. (2018). Survey of the state of the art in natural language generation: Core tasks, applications and evaluation. Journal of Artificial Intelligence Research, 61, 65-170.
  • Krahmer, E., & Theune, M. (2010). Empirical Methods in Natural Language Generation. Springer, Berlin & Heidelberg.
  • McIntyre, N., & Lapata, M. (2009, August). Learning to tell tales: A data-driven approach to story generation (PDF). In Proceedings of the Joint Conference of the 47th Annual Meeting of the ACL and the 4th International Joint Conference on Natural Language Processing of the AFNLP (pp. 217-225).
  • Reiter, E., & Dale, R. (2000). Building Natural Language Generation Systems. Cambridge University Press, Cambridge, UK,呢本俾人指係最重要最全面嘅 NLG 書之一,到咗 2020 年代(出版咗成廿年之後)都仲成日俾人攞嚟睇。

  1. 1.0 1.1 Daza, A., Calvo, H., & Figueroa-Nazuno, J. (2016, June). Automatic text generation by learning from literary structures (PDF). In Proceedings of the Fifth Workshop on Computational Linguistics for Literature (pp. 9-19).
  2. Reiter, Ehud; Dale, Robert (March 1997). "Building applied natural language generation systems". Natural Language Engineering. 3 (1): 57-87.
  3. 3.0 3.1 3.2 3.3 Gatt, A., & Krahmer, E. (2018). Survey of the state of the art in natural language generation: Core tasks, applications and evaluation. Journal of Artificial Intelligence Research, 61, 65-170.
  4. Farhadi A., Hejrati M., Sadeghi M.A., Young P., Rashtchian C., Hockenmaier J., Forsyth D. (2010-09-05). Every picture tells a story: Generating sentences from images (PDF). European conference on computer vision. Berlin, Heidelberg: Springer. pp. 15-29.
  5. Reiter, E., & Dale, R. (2000). Building Natural Language Generation Systems. Cambridge University Press, Cambridge, UK.
  6. Goldberg E, Driedger N, Kittredge R (1994). "Using Natural-Language Processing to Produce Weather Forecasts". IEEE Expert. 9 (2): 45-53.
  7. Dale, Robert; Reiter, Ehud (2000). Building natural language generation systems. Cambridge, U.K.: Cambridge University Press.
  8. Hutchins, W. J., & Somers, H. L. (1992). An introduction to machine translation, Vol. 362. Academic Press London.
  9. Clarke, J., & Lapata, M. (2010). Discourse Constraints for Document Compression. Computational Linguistics, 36(3), 411-441
  10. Kukich, K. (1992). Techniques for automatically correcting words in text. ACM Computing Surveys (CSUR), 24(4), 377-439.
  11. Artificial Intelligence | Natural Language Generation. GeeksForGeeks.