999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于倒排表的圖書館參考咨詢問答系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2021-09-29 07:10:52柴源
微型電腦應(yīng)用 2021年9期
關(guān)鍵詞:圖書館用戶系統(tǒng)

柴源

(西安航空學(xué)院 圖書館, 陜西 西安 710077)

0 引言

問答系統(tǒng)是接收用戶的自然語(yǔ)言問題,向用戶返回答案的對(duì)話系統(tǒng)[1],能夠提升規(guī)律性情景交互效率。圖書館參考咨詢業(yè)務(wù)具有極強(qiáng)的重復(fù)性和規(guī)律性,問答系統(tǒng)在該場(chǎng)景下能夠提升咨詢服務(wù)的效能。

1 圖書館參考咨詢問答系統(tǒng)面臨的問題及倒排表

1.1 圖書館參考咨詢問答系統(tǒng)面臨的問題

1.1.1 圖書館參考咨詢數(shù)據(jù)繁多

隨著課程支持、學(xué)習(xí)支持、科研支持等的不斷出現(xiàn),傳統(tǒng)參考咨詢服務(wù)的內(nèi)容不斷細(xì)化。加之,現(xiàn)代信息技術(shù)的發(fā)展,QQ、微信等逐漸成為主要的咨詢渠道,參考咨詢服務(wù)的即時(shí)性和個(gè)性化要求越來越高。此背景下,具有重復(fù)性和規(guī)律性的參考咨詢數(shù)據(jù)越來越多。

1.1.2 傳統(tǒng)問答系統(tǒng)的不足

傳統(tǒng)問答系統(tǒng)是基于正向索引模式,即當(dāng)讀者在搜索某一關(guān)鍵詞時(shí),系統(tǒng)就需要掃描索引庫(kù)中的所有文檔,找出所有包含相關(guān)關(guān)鍵詞的文檔,再根據(jù)打分模型進(jìn)行打分,排出名次后呈現(xiàn)給用戶[2]。大數(shù)據(jù)時(shí)代,文檔的數(shù)目越來越多,這樣的索引結(jié)構(gòu)無法滿足實(shí)時(shí)返回排名結(jié)果的要求。

1.2 倒排表及優(yōu)勢(shì)

在問答系統(tǒng)實(shí)際的應(yīng)用中,為了通過關(guān)鍵詞的某些值查找記錄,就必須按照關(guān)鍵詞建立索引,稱作倒排索引[3]。帶有倒排索引的文件稱作倒排索引文件(也稱倒排文件),倒排文件中的次關(guān)鍵字索引稱作倒排表[4],如圖1所示。

圖1 倒排表

在處理復(fù)雜得多關(guān)鍵詞查詢時(shí),可在倒排表中先完成查詢的交、并等邏輯運(yùn)算,得到結(jié)果后再對(duì)記錄進(jìn)行存取。這樣不必對(duì)每個(gè)記錄隨機(jī)存取,把對(duì)記錄的查詢轉(zhuǎn)換為地址集合的運(yùn)算,從而提高查找效率。

2 基于倒排表的圖書館知識(shí)問答系統(tǒng)設(shè)計(jì)

2.1 系統(tǒng)設(shè)計(jì)

基于倒排表的圖書館知識(shí)問答系統(tǒng)總體設(shè)計(jì)主要包括語(yǔ)料庫(kù)數(shù)據(jù)預(yù)處理,形成倒排表;用戶數(shù)據(jù)預(yù)處理,與倒排表進(jìn)行匹配,找到所有問題ID;將用戶所提問題和找到的問題進(jìn)行相似度計(jì)算,并輸出結(jié)果,如圖2所示。

圖2 系統(tǒng)結(jié)構(gòu)圖

2.2 詳細(xì)設(shè)計(jì)

2.2.1 語(yǔ)料庫(kù)收集與預(yù)處理

信息技術(shù)智能化、需求個(gè)性化,造成圖書館參考咨詢數(shù)據(jù)日益繁多,通過各種手段收集、整理并形成語(yǔ)料庫(kù)是最基礎(chǔ)、最重要的任務(wù)。對(duì)于電話、面對(duì)面等形式的咨詢,可以通過建立咨詢服務(wù)清單,及時(shí)將數(shù)據(jù)進(jìn)行分類歸檔;對(duì)于微信、QQ等新媒體數(shù)據(jù),可以通過編寫網(wǎng)絡(luò)爬蟲進(jìn)行抓取。語(yǔ)料庫(kù)一般由問題、答案兩部分組成,以列表的形式存儲(chǔ)。

語(yǔ)料庫(kù)預(yù)處理中,綜合《中文停用詞表》《哈工大停用詞表》《百度停用詞表》《四川大學(xué)機(jī)器智能實(shí)驗(yàn)室停用詞庫(kù)》建立停用詞表(stopwords);根據(jù)各圖書館的實(shí)際情況,建立用戶詞典(userdict)?;诖?,應(yīng)用jieba分詞工具進(jìn)行分詞,并過濾掉標(biāo)點(diǎn)符號(hào)、單字詞等。

2.2.2 建立倒排表

在語(yǔ)料庫(kù)數(shù)據(jù)預(yù)處理的基礎(chǔ)上,形成原始索引,如{‘問題1ID’:[關(guān)鍵詞1,關(guān)鍵詞2…],‘問題2ID’:[關(guān)鍵詞2,關(guān)鍵詞3…]…}。其中,ID為問題1所在的行數(shù),即問題1為第一個(gè)問題,ID為1。因?yàn)樾枰獙⒂脩籼岢龅膯栴}和庫(kù)里的問題進(jìn)行相似度計(jì)算,然后返回相似度高的問題答案。如果遍歷庫(kù)里的每一個(gè)問題,然后和用戶提出的問題做相似度計(jì)算,數(shù)據(jù)量大,時(shí)間成本太大。因此,處理后的倒排索引為{‘關(guān)鍵詞1’:[問題1ID],‘關(guān)鍵詞2’:[問題1ID,問題2ID…}。

2.2.3 用戶數(shù)據(jù)預(yù)處理及問題匹配

對(duì)用戶提的問題,首先分詞,找到問題的關(guān)鍵詞。然后根據(jù)關(guān)鍵詞,找到包含該關(guān)鍵詞的所有問題ID。

2.2.4 相似度計(jì)算及結(jié)果輸出

余弦相似度是通過計(jì)算兩個(gè)向量的夾角余弦值來評(píng)估他們的相似度[5],對(duì)于兩個(gè)向量,即空間中從原點(diǎn)([0, 0,…])出發(fā),指向不同方向的兩條線段,兩條線段之間形成一個(gè)夾角:如果夾角為0度,則意味著方向相同、線段重合;如果夾角為90度,意味著形成直角,方向完全不相似;如果夾角為180度,意味著方向正好相反。因此,可以通過夾角的大小,來判斷向量的相似程度。夾角越小,就代表越相似。對(duì)n維向量A,B,假設(shè)A=[A1,A2,…,An],B=[B1,B2,…,Bn],則A與B的夾角θ的余弦等于式(1)。

(1)

余弦值的范圍在[-1,1]之間,值越趨近于1,代表兩個(gè)向量的方向越接近;越趨近于-1,他們的方向越相反;接近于0,表示兩個(gè)向量近乎于正交[6]。一般情況下,相似度都是歸一化到[0,1]區(qū)間內(nèi),因此余弦相似度表示為cosine_similarity=0.5cosθ+0.5。

研究中,將包含用戶問題關(guān)鍵詞的問題和2.2.3中的問題當(dāng)作兩個(gè)向量,進(jìn)行相似度計(jì)算,并輸出相似度最高的2個(gè)問題答案。

3 基于倒排表的圖書館知識(shí)問答系統(tǒng)的實(shí)現(xiàn)——以西安航空學(xué)院圖書館為例

3.1 語(yǔ)料庫(kù)收集與預(yù)處理

3.1.1 語(yǔ)料庫(kù)收集

西安航空學(xué)院圖書館參考咨詢數(shù)據(jù)主要來自規(guī)章制度、微信、QQ、日常參考咨詢服務(wù)清單。文章利用Python編寫網(wǎng)絡(luò)爬蟲工具,抓取微信、QQ等工具中的問答數(shù)據(jù),日常參考咨詢服務(wù)清單、規(guī)章制度的數(shù)據(jù)可直接應(yīng)用,分析發(fā)現(xiàn),主要包括學(xué)習(xí)類、科研類、教學(xué)類和生活類。部分實(shí)驗(yàn)數(shù)據(jù)(file_text)如表1所示。

3.1.2 數(shù)據(jù)預(yù)處理

文章根據(jù)西安航空學(xué)院圖書館日常工作需要,建立用戶詞典,包括閱讀學(xué)分、通借通還、文獻(xiàn)傳遞、新書庫(kù)等296個(gè)詞語(yǔ);定義函數(shù),刪除除字母、數(shù)字、漢字以外的所有符號(hào)和單字詞;加載2.2.1節(jié)中的停用詞表,過濾停用詞。應(yīng)用jieba工具對(duì)表1的“問題”進(jìn)行分詞,形成“cut_review”文件,部分結(jié)果如表2所示。

3.2 建立倒排表

將表2中的數(shù)據(jù)進(jìn)行重新排序,即將含有同一關(guān)鍵詞的問題歸為一組,形成{<關(guān)鍵詞>,<文檔1編號(hào),文檔2編號(hào),文檔3編號(hào)…….>}的倒排表,執(zhí)行程序如下。

result={}

for i in range(len(file_txt)):

left, rights = i,file_txt.iloc[i]['cut_review'].split()

for right in rights:

if right in result.keys():

result[right].append(left)

else:

result[right] = [left]

部分執(zhí)行結(jié)果如下。

{'灃惠': [0], '校區(qū)': [0, 1, 3, 4], '圖書館': [0, 1], '地址': [0, 1], '閻良': [1, 3, 4], '咨詢電話': [2], '開放': [3, 4], '時(shí)間': [3, 4], '書庫(kù)': [4]}。其中,0,1,2,3……為文檔編號(hào)。例如,'閻良': [1, 3, 4]表示在第1、3、4個(gè)文檔中都含有“閻良”這個(gè)詞語(yǔ)。

3.3 用戶問題數(shù)據(jù)處理

對(duì)用戶輸入的問題進(jìn)行分詞,過濾停用詞,提取關(guān)鍵詞,并在倒排表中匹配到的所有問題ID,執(zhí)行程序如下。

User_Q="用戶問題"

clean_reviewyonghu=remove_punctuation(User_Q)

cut_reviewyonghu=[w for w in list(jieba.cut(clean_re-viewyonghu)) if w not in stopwords and len(w)>1]

Problem_Id=[]

for j in cut_reviewyonghu:

if j in result.keys():

Problem_Id.extend(result[j])

id=(list(set(Problem_Id)))

print(id)

表1 實(shí)驗(yàn)語(yǔ)料庫(kù)(部分)

表2 數(shù)據(jù)預(yù)處理結(jié)果(部分)

第一行表示載入用戶問題User_Q;第二到四行表示對(duì)User_Q進(jìn)行數(shù)據(jù)清洗,包括除標(biāo)點(diǎn)、分詞、去掉停用詞及單字詞等,形成cut_reviewyonghu集合;五到九行表示遍歷cut_reviewyonghu和倒排表result,匹配到所有問題ID。例如,當(dāng)用戶輸入即User_Q=“圖書丟啦怎么辦”時(shí),執(zhí)行程序,結(jié)果為[17,13,14,15],表示用戶的問題包含在第17、13、14、15文檔中。

3.4 相似度計(jì)算并輸出結(jié)果

定義函數(shù),對(duì)用戶所提問題分別與3.3節(jié)的執(zhí)行結(jié)果進(jìn)行相似度計(jì)算,并輸出相似度最高的兩個(gè)問題的答案,執(zhí)行程序如下。

def cosine_similarity(sentence1: str, sentence2: str)-> float:

seg1 = [word for word in jieba.cut(sentence1) if word not in stopwords]

seg2 = [word for word in jieba.cut(sentence2) if word not in stopwords]

word_list = list(set([word for word in seg1 + seg2]))

word_count_vec_1 = []

word_count_vec_2 = []

for word in word_list:

word_count_vec_1.append(seg1.count(word))

word_count_vec_2.append(seg2.count(word))

vec_1 = np.array(word_count_vec_1)

vec_2 = np.array(word_count_vec_2)

num = vec_1.dot(vec_2.T)

denom = np.linalg.norm(vec_1) * np.linalg.norm(vec_2)

cos = num / denom

sim = 0.5 + 0.5 * cos

return sim

str1=sentence

similarity={}

if len(id)==0:

print('數(shù)據(jù)庫(kù)里沒有該問題,請(qǐng)重新提問')

else:

for i in id:

str2 = file_txt.iloc[i]['問題']

sim1 = cosine_similarity(str1, str2)

print('用戶所提問題和問題{0}的相似度是{1}'.format(i, sim1))

similarity[i] = sim1

print(similarity)

word_list用于分詞后建立詞庫(kù),word_count_*統(tǒng)計(jì)在詞典里出現(xiàn)詞的次數(shù)。當(dāng)User_Q=“圖書丟啦怎么辦”時(shí),執(zhí)行結(jié)果如下。

用戶所提問題和問題17的相似度是0.644 337 567 297 406 4

用戶所提問題和問題13的相似度是0.704 124 145 231 931 5

用戶所提問題和問題14的相似度是0.704 124 145 231 931 5

用戶所提問題和問題15的相似度是0.704 124 145 231 931 5

經(jīng)過計(jì)算機(jī)的排序計(jì)算,輸出相似度較高的兩個(gè)問題的答案,形式如圖3所示。

圖3 實(shí)驗(yàn)結(jié)果

4 總結(jié)

本文對(duì)基于倒排表的圖書館參考咨詢問答系統(tǒng)的現(xiàn)狀進(jìn)行了詳細(xì)分析,然后進(jìn)行了系統(tǒng)設(shè)計(jì)和詳細(xì)設(shè)計(jì),并以西安航空學(xué)院圖書館參考咨詢?yōu)槔瑢?shí)現(xiàn)了相關(guān)功能。本文所設(shè)計(jì)的問答系統(tǒng)能夠滿足圖書館參考咨詢的使用需求,語(yǔ)料庫(kù)的不斷更新與完善將是未來的研究重點(diǎn)。

猜你喜歡
圖書館用戶系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機(jī)系統(tǒng)
ZC系列無人機(jī)遙感系統(tǒng)
圖書館
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
飛躍圖書館
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
圖書館里的是是非非
主站蜘蛛池模板: 久久精品亚洲专区| 国产日本一线在线观看免费| 99久久精彩视频| 超级碰免费视频91| 亚洲一欧洲中文字幕在线| 日韩国产一区二区三区无码| 亚洲欧美国产视频| 久久网综合| 亚洲日本www| 国产网站免费| 国产精品女主播| 国内99精品激情视频精品| 亚洲毛片网站| 欧美精品在线视频观看| 永久在线精品免费视频观看| 国产精品密蕾丝视频| 国产成人精品2021欧美日韩| 色吊丝av中文字幕| 亚洲欧美在线综合图区| 91色在线视频| 国产91精品调教在线播放| 亚洲欧美人成人让影院| 国产在线拍偷自揄观看视频网站| 久久男人资源站| 久久精品国产精品一区二区| 国产精品女熟高潮视频| 国产第三区| 国产精品一区二区不卡的视频 | 老熟妇喷水一区二区三区| 免费一级毛片在线播放傲雪网| 午夜电影在线观看国产1区| 一区二区午夜| 精品综合久久久久久97超人| 嫩草在线视频| 又爽又大又黄a级毛片在线视频| 国产麻豆精品手机在线观看| 亚洲高清无在码在线无弹窗| 极品国产在线| 国产亚洲现在一区二区中文| 99精品国产高清一区二区| 国产玖玖玖精品视频| 国产高清无码第一十页在线观看| 99视频精品全国免费品| 亚洲欧美日韩成人在线| 国产美女精品一区二区| 美女免费黄网站| 成人国产一区二区三区| 久久精品只有这里有| 亚洲成人一区在线| 亚洲人人视频| 真实国产精品vr专区| 亚洲人妖在线| 国产精品黄色片| 91精品国产91欠久久久久| 欧美激情第一欧美在线| 日本精品αv中文字幕| 十八禁美女裸体网站| 久久婷婷国产综合尤物精品| 欧美另类图片视频无弹跳第一页| 亚洲精品制服丝袜二区| 9啪在线视频| 亚洲美女视频一区| 国产麻豆永久视频| 国产在线观看人成激情视频| 亚洲日韩AV无码精品| 亚洲最大福利视频网| 自拍偷拍欧美日韩| AⅤ色综合久久天堂AV色综合| 国产日韩久久久久无码精品| 无码综合天天久久综合网| 狠狠久久综合伊人不卡| 精品国产黑色丝袜高跟鞋| 国产自在线播放| 国产精品网拍在线| 欧洲免费精品视频在线| 亚洲午夜福利精品无码不卡| 中文国产成人久久精品小说| 久久精品亚洲专区| av免费在线观看美女叉开腿| 免费无码又爽又黄又刺激网站| 久久精品国产精品国产一区| 国产亚洲欧美日韩在线一区|