估計這是6月份最後一篇部落格了,這個月好像產出沒那麼多,可能是因為一直在忙於開題的事,所以沒有太多的心思放在碼**上,所以這篇部落格要發布我最新使用「全n-gram」演算法來對問題進行搜尋,準確率還是很高的,希望大家可以在剛開始做問答的時候能用到。
# -*- coding:utf-8 -*-
import ******_so as so
defi_question
(): print('請輸入問題')
question = input()
return question
'''使用n-gram演算法進行問題分析'''
defgram
(): question = i_question()
n_word =
for i in range(len(question)+2):
for n in range(len(question)):
one_anw = question[n:n+i-1]
if one_anw != ''
and len(one_anw) >= 2
and one_anw not
in n_word:
else:
continue
return n_word
'''對每個組進行問題搜尋'''
defseanswer
(): set_answer =
ron_answer =
n_word = gram()
for key_word in n_word:
answer = so.qa(key_word)
if answer != :
else:
continue
for i in range(len(set_answer)):
ron_answer.extend(set_answer[i])
return ron_answer
'''將排名前20個的答案提出來'''
這裡面是我隨意從問答庫中選擇的乙個問題和答案的截圖,請注意問題的敘述,這和接下來輸入問題的問法是不同的。
當我輸入想要的問題後,程式把前20中最後可能是答案的句子輸出了,可以看到,第一行的是34次,因此,我們可以認為該句子就是最正確的答案,其餘的句子可以忽略。大家可以只輸出第乙個句子作為答案。
人工智慧搜尋演算法 測試答案 二
1.在啟發式搜尋 有資訊搜尋 中,評價函式的作用是 b 2.在啟發式搜尋 有資訊搜尋 中,啟發函式的作用是 a 得分 總分 3在貪婪最佳優先搜尋中,評價函式取值和啟發函式取值之間的關係是 d 4.在a 搜尋演算法中,評價函式可以如下定義 d 5.為了保證a 演算法是最優的,需要啟發函式具有可容 ad...
NLP中的Ngram演算法簡易原理及overlap
查到的大多數部落格寫的都比較複雜,在看到乙個stanford cs276的課件之後,決定按照自己的理解來寫一點,權做拋磚引玉了。假定給予兩個詞 november december 則unibram是 n o v e m b e r d e c e m b e r bigram是 no ov ve e...
演算法學習 二分搜尋二分答案2
顧名思義,二分答案就是用二分查詢的思路去找答案,下面通過舉例來說明。題目 p1873 砍樹 砍下樹木的高度 h 從 0 一直到所有樹木中最高的高度 hmax 依次遞增,我們可以此為依據進行二分搜尋得出答案。includeusing namespace std long long n,m,arr 10...