# 問句分析 (Question Analysis) 問句 = input("請輸入你的問題: ") 代表問句的一組資訊詞 = 問句分析(問句) 使用者意圖 = 意圖識別(代表問句的一組資訊詞, 知識圖譜) # 片語映射 (Phrase Mapping) if (使用者意圖 == Null) 問句 = input("我不懂你的意思,請換個方式告訴我: ") else if (使用者意圖 == 特定服務) 服務所需的一組資訊詞 = 所缺的資訊詞填入預設值(代表問句的一組資訊詞) 問句資訊詞的本體 = 自然語言映射到本體(服務所需的一組資訊詞, 知識圖譜) # 查詢建構 (Query Construction) 答案的關鍵內容 = 查詢(問句資訊詞的本體, 各種API服務) 答案的本體 = 服務映射到本體(答案的關鍵內容, 知識圖譜) 一組候選答案 = 產生答案(答案的本體, 知識圖譜) # 消歧 (Disambiguation) 一組候選答案 = 消歧(一組候選答案, 服務所需的一組資訊詞) # 答案生成 (Answer Generation) 一個答案 = 排序(一組候選答案) 回答 = 轉換成自然語言(一個答案, 回答模板) print(回答)