關于智能聊天機器人讨論收集:
(1)首先要有個詞庫,記錄那幾個漢字是一個詞。 得到句子後,就要把句子分成若幹個詞。 同時你有準備好的很多回答的句子,每個句子對應幾個問題關鍵詞。 得到問題後,把問題分解成問題關鍵詞。 然後在答案資料庫裡找,當然不一定能找到正好關鍵詞是一緻的,但總能找一個盡量比對的。然後就回答他對應的答案。大概是這麼個想法,還有待優化。
(2)QQ小強,基本原理就是有一個對照表。 例如,你說:“去死吧”,他就會在對照表中找到與“死”有關的記錄,然後對比“去死”,确認與“去死”相關的記錄,随機找出一條(這樣對話就不會重複)。 如果句子過長,例如,“我今天很不開心”,找出句子中的“主謂賓”,這将語句分為:“我”,“不”,“開心”,逐一組合與答複對應表進行比對,再将初步篩選的記錄針對“我不開心”進行最近似比較,最終确認回複的記錄。 如果是短語/詞彙就相對簡單,隻需要最多2層篩選就可确認。
(3)補充一點,從一個句子中,确認主語是非常關鍵的,這樣,可以決定回複的對象,例如:“你”,那麼,回複是,一定會有“我”,如果主語為“我”,那麼回複中,則确定對象為“你”。 其次,是邏輯判斷,即“是”、“否”、“不是”、“可能”、“不”、“肯定”等,來确定後面附帶的名詞或動詞的含義(即相應動詞或名詞所關聯的對應表)。 例子分析:“你去死吧”,提取關鍵字:“你”(主語)、“死”(動詞) 主語對應表: 主語“你” 關聯回複:我 主語“你” 關聯回複:那麼你 動詞對應表: 動詞“死” 關聯回複:不要死 動詞“死” 關聯回複:想死嗎 動詞“死” 關聯回複:為什麼想死 動詞“死” 關聯回複:死是很可怕的 經過篩選後,按照主謂賓格式輸出: 我不要死 那麼你想死嗎 那麼你為什麼想死 我為什麼想死 我死是很可怕的 。。。。。。。。。 等組合。
(4)例子二: 輸入語句:我今天非常不開心,提取關鍵字:“我”,“不”,“開心” 主語對應表: 主語“我” 關聯回複:你 主語“我” 關聯回複:那麼我 動詞與邏輯對應表: 1 動詞“開心” 邏輯:不 關聯回複:想想憂傷的事情 2 動詞“開心” 邏輯:不 關聯回複:世界上還有很多人更不幸 3 動詞“開心” 邏輯:不 關聯回複:感到難過 4 動詞“開心” 邏輯:是 關聯回複:也很開心 5 動詞“開心” 邏輯:是 關聯回複:值得慶賀 經過主語、邏輯、動詞篩選後,按照主謂賓格式輸出隻會輸入:1-3(邏輯字段為: 不): 你想想憂傷的事情 你世界上還有很多人更不幸 你感到難過 上面的回複就太勉強了,如果想讓句子生動,那麼就需要加入形容詞的分析和相應的回複對應表。我感覺如果要開發小強,需要大量的動詞表和行為解釋表,這樣才能使句子更加流暢,否則,就會答非所問。
載自 Friecin(雪客)