問答系統(tǒng)的設計與實現(xiàn)
《問答系統(tǒng)的設計與實現(xiàn)》由會員分享,可在線閱讀,更多相關《問答系統(tǒng)的設計與實現(xiàn)(50頁珍藏版)》請在裝配圖網上搜索。
1、1 目錄 引 言 1 第一章 研究背景 2 1.1問答系統(tǒng)研究背景 2 1.2傳統(tǒng)的問答系統(tǒng)的不足 2 1.3問答系統(tǒng)研究現(xiàn)狀 2 1.4問答系統(tǒng)的類型區(qū)分 4 1.5問題的類型進行區(qū)分 4 1.6中文問答系統(tǒng)研究 5 1.7相關評測 5 第二章 系統(tǒng)分析 6 2.1市場調查 6 2.2問答系統(tǒng)的問題分析 6 2.3問題分類 6 2.4問題相似性判定 7 2.5關鍵詞擴展 8 第三章 數(shù)據(jù)庫設計 10 3.1數(shù)據(jù)庫的需求分析 10 3.2數(shù)據(jù)庫表結構設計 10 3.3E-R模型 12 第四章 系統(tǒng)詳細設計與實現(xiàn) 15 4.1系統(tǒng)工作原理介紹 15 4
2、.2系統(tǒng)數(shù)據(jù)流圖 16 4.3系統(tǒng)的實現(xiàn)算法 16 4.4注冊模塊的設計與實現(xiàn) 19 4.5注冊模塊的設計與實現(xiàn) 32 4.6 系統(tǒng)首頁的設計與實現(xiàn) 34 4.7用戶提問模塊的設計與實現(xiàn) 38 4.8問題顯示模塊的設計與實現(xiàn) 41 4.9問題回答模塊的登錄與實現(xiàn) 44 4.10后臺管理模塊的設計與實現(xiàn) 45 第五章 系統(tǒng)測試 47 第六章 總結 48 致謝 49 參考文獻 50 引 言 問答系統(tǒng)的設計目標是用簡治、準確的答案回答用戶用自然語言提出的問題。在人工智能和自然語言處理領域,問答系統(tǒng)都有著較長的歷史。1950年英國數(shù)學家圖靈(A.M.Turin8)
3、在論文“Computing Machinery and Intelligence”中形象地指出了什么是人工智能,以及機器應該達到的智能標準。也就是通過自然語言問答的方式,判斷機器是否具有智能。20世紀70年代隨著自然語言理解技術的發(fā)展,出現(xiàn)了第一個實現(xiàn)用普通英語與計算機對話的人機接口LUNAR,該系統(tǒng)是伍德(W.Woods)于1972年開發(fā)用來協(xié)助地質學家查找、比較和評價阿波羅一號飛船帶回的月球巖石和土壤標本的化學分析數(shù)據(jù)的系統(tǒng)。 本文將簡要介紹國內外問答系統(tǒng)研究的進展情況。并且針對問答系統(tǒng)中的一個難點以及實現(xiàn)方法進行了討論。并給出如何識別用戶搜索關鍵字的方法。第一章 研究背景 1.1問
4、答系統(tǒng)研究背景 隨著因特網的快速發(fā)展,網絡上流通的信息日益增加,它已儼然成為巨大的訊息流通交換平臺,要在如此大量的數(shù)據(jù)庫中找尋有用的數(shù)據(jù)著實不易,通常會藉助于搜索引擎的功能來達成,然而以關鍵詞為主的搜索引擎常會找出所有相關的信息,但是其中也包含許多無用的數(shù)據(jù),用戶浪費很多時間瀏覽不相關的網頁。 隨著互聯(lián)網的發(fā)展,網絡已成為人們獲取信息的重要手段。目前,世界上最大的搜索引擎Google能夠搜索的網頁數(shù)量已經超過了百億。 傳統(tǒng)的搜索引擎存在很多不足的地方,其中主要有三個方面: 一是以關鍵詞的邏輯組合來表達檢索需求 二是返回的相關性信息太多 三是以關鍵詞為基礎的索引,停留在語言的表層,而
5、沒有觸及語義,因此檢索效果很難進一步提高。 以上兩點使得人們在互聯(lián)網上的海量信息中快速準確地找到自己所需要的信息變得越來越困難。 1.2傳統(tǒng)的問答系統(tǒng)的不足 傳統(tǒng)的問答系統(tǒng)雖然可以對用戶提出的問題給出確定的答案,但是這些問答系統(tǒng)的數(shù)據(jù)源是基于一個固定的文檔集合,尚且不能滿足用戶的各種各樣的需求。 利用互聯(lián)網上的資源是有效的解決之道 互聯(lián)網上具有豐富的信息,是問答系統(tǒng)數(shù)據(jù)源的理想資源,因此將問答系統(tǒng)與互聯(lián)網結合起來,就變得非常必要。這也就促使了基于互聯(lián)網的問答系統(tǒng)的出現(xiàn)和發(fā)展的問答系統(tǒng)的出現(xiàn)和發(fā)展。 1.3問答系統(tǒng)研究現(xiàn)狀 問答系統(tǒng)的概念雖然提出的時間并不長,但已經形成發(fā)展出了一些
6、比較成熟的系統(tǒng)。 美國麻省理工學院人工智能實驗室于1993年開發(fā)出來的START,系統(tǒng)(http://www.ai.mit.edu/projects/infolab/start.html)是全世界第一個基于Internet的問答系統(tǒng)。START系統(tǒng)旨在為用戶提供準確的信息,它能夠回答數(shù)以百萬的英語問題,主要包括與地點相關的問題(城市、國家、湖泊、天氣、地圖、人口統(tǒng)計學、政治和經濟等)、與電影相關的問題(片名、演員和導演等)、與人物相關的問題(出生日期、傳記等)以及與詞典定義相關的問題等。該系統(tǒng)采用基于知識庫和基于信息檢索的混雜模式,系統(tǒng)還保留著原來的兩個知識庫,"START KB”和“Int
7、ernet Public Library"。如果用戶提出的問題屬于這兩個知識庫的范疇,START就直接利用知識庫中的知識返回比較準確的回答。反之,START系統(tǒng)將問題解析得到查詢的關鍵詞,通過搜索引擎得到相關信息,通過后續(xù)處理得到準確而簡潔的回答返回給用戶。比如提出一個問題“Who was Bill Gates? ", START系統(tǒng)回答“Cofounder,Microsoft. Born William H. Gates on October 28, 1955,Seattle,Washington. "。同時系統(tǒng)還返回一個關于“Bill Gates"網頁鏈接,如果用戶希望了解更詳細的信息時就
8、可以瀏覽改網頁。 美國華盛頓大學開發(fā)的MULDER系統(tǒng)(http://mulder.cx/)是最早實現(xiàn)的基于Internet的全自動的問答系統(tǒng)。該系統(tǒng)沒有知識庫,而完全利用Internet上的資源得到答案。對于一個問題,MULDER系統(tǒng)返回的不是唯一的答案,而是一組候選回答,并利用統(tǒng)計的方法給每一個回答賦值一個權重,稱之為置信度。比如,對于一個問題“Who was the fast American in space?" ,MULDER系統(tǒng)的返回的候選答案中,"Alan Shepard”具有70%的置信度,"John Glenn”具有15%的置信度。同時在每一個答案下面給出相關的網頁鏈接和該
9、網頁內容的摘要。 AskJeeves ( Who was Bill Gates?",系統(tǒng)在文本回答的基礎上還將顯示一張Bill Gate的照片。作為一個商用系統(tǒng),AskJeeves的服務種類很多,不僅僅可以查找Web網頁,也可以采用圖片、新聞、產品作為數(shù)據(jù)源,從而得到所需的信息。AskJeeves系統(tǒng)中的問題分析部分是依賴手工完成的,為了能夠正確理解用戶的查詢AskJeeves雇傭了數(shù)百專職人員構造問題模板,并為這些問題模板中常見的問題進行了緩存。系統(tǒng)的問題模板雖然能夠細化和明確用戶的需求,但由于需要人工產生和維護的,工作量非常大。 美國密歇根大學開發(fā)的AnswerBus ( ( answ
10、ers。 新加坡開發(fā)的LAMP為了更加正確的理解用戶的查詢意圖,列出了person,organization,location,date,time。money,percent等7種查詢類別讓用戶進行選擇,LAMP不是返回網頁鏈接,而是直接返還答案。LAMP所在網址p.nus.edu.sg/cgi-bin/smadellz/lamp_query.pl 此外,南加州大學利用自然語言處理、文本摘要等技術,開發(fā)的Webclopedia系統(tǒng)在各項評測中也取得了很好的效果;美國Language Computer公司的問答系統(tǒng) ( 國內復旦大學開發(fā)的原型系統(tǒng)(FDUQA)己經具有了初步的效果,同時哈
11、爾濱工業(yè)大學(金山客服)和中國科學院計算技術研究所也在從事該領域的研究。 1.4問答系統(tǒng)的類型區(qū)分 問答系統(tǒng)(Question Answering System, QA)是信息檢索系統(tǒng)的一種高級形式。它能用準確、簡潔的自然語言回答用戶用自然語言提出的問題。其研究興起的主要原因是人們對快速、準確地獲取信息的需求。問答系統(tǒng)是目前人工智能和自然語言處理領域中一個倍受關注并具有廣泛發(fā)展前景的研究方向。 1.5問題的類型進行區(qū)分 問答系統(tǒng)問答問題的類型進行區(qū)分:詢問人(如:誰發(fā)現(xiàn)了北美洲?)、詢問時間(如:人類哪年登錄月球?)、詢問數(shù)量(如:珠穆朗瑪峰有多高?)、詢問定義(如:什么是氨基酸?)、
12、詢問地點和位置(如:芙蓉江在重慶市哪個縣?)、詢問原因(如:天為什么是藍的?)。問答系統(tǒng)分類如圖1.1 問答系統(tǒng) 限定域 問答系統(tǒng) 開發(fā)域 問答系統(tǒng) 基于常用提問集 問答系統(tǒng) 機構數(shù)據(jù)庫 問答系統(tǒng) 自由文本 問答系統(tǒng) 網絡 問答系統(tǒng) 固定資料庫 問答系統(tǒng) 單文本 問答系統(tǒng) 圖1.1 問答系統(tǒng)分類 從系統(tǒng)的設計與實現(xiàn)來看,自動問答系統(tǒng)一般包括三個主要組成部分:問題分析、信息檢索和答案抽取。 目前國際上,問答系統(tǒng)的研究方興未艾,許多大的科研院所和著名公司,都積極參與到該領域的研究,其中比較著名的如MICROSOFT、IBM、MIT、Universi
13、ty of Amsterdam、National University of Singapore、University of Zurich、University of Southern California、Columbia University等等,國內在問答系統(tǒng)方面的研究相對國外較為不足,主要有中科院計算所、復旦大學、哈爾濱工業(yè)大學、沈陽航空工業(yè)學院、香港城市大學、臺灣中研院等一些單位。 1.6中文問答系統(tǒng)研究 中文問答系統(tǒng)相對于英文有如下幾個方面的難點或不足之處: 連寫:中文是連續(xù)書寫,分詞是漢語言處理的基礎。中文問答系統(tǒng)由于是句子級別的信息檢索,要分析句子,首先要分詞。 形
14、態(tài):漢語缺乏狹義的形態(tài)變化,如英文中的主動被動語態(tài),完成時進行時等,形態(tài)對于計算機就是標記,有利于計算機的處理。 語法:漢語語法靈活,句子各成分之間的關系靠詞序、“意合”、虛詞,變化較多。 語義:一詞多義、同音詞、同義詞、近義詞等,以及豐富的表達方式,上下文依賴度高,省略語等都是計算機處理的難點。 語法研究:面向計算機處理的中文語法研究不足,如中文問答系統(tǒng)需要的關于中文句型形式化、不同句型之間的轉換的研究資料極少。 相關資源:缺乏包括語法、語義詞典等中文語言學資源和相關生熟語料,國外這方面強得多,如TREC就提供的相當數(shù)量的可用于英文問答研究和評測的語料。 中文問答系統(tǒng)需要
15、在現(xiàn)有的中文信息處理技術基礎上,充分研究和利用問答的特性與需求,通過各種方法解決和克服(或暫時回避)以上難點和困難,設計和開發(fā)問答系統(tǒng)。 1.7相關評測 自1999 年文本檢索會議( Text Retrieval Conference ,簡稱TREC) 引入問答系統(tǒng)評測專項(Question Answering Track ,簡稱QA Track) 后,人們對基于自然語言的問答系統(tǒng)再次產生了濃厚的興趣,在近些年的TREC 比賽中,QA Track 是最受關注的評測項目之一。 日語問答評測平臺Question Answering Challenge (QAC) 是從2002 年開始的,每
16、兩年舉辦一屆。自NTCIR-5開始,其CLQA專項中加入中文評測語料,但目前尚未見有簡體中文。 由IST Programme of the European Union 資助的Cross Language Evaluation Forum (CLEF) 在2003 年設立第一屆多語言問答系統(tǒng)評測(Multilingual Question Answering) 項目,并計劃每年舉辦一次。第二章 系統(tǒng)分析 2.1市場調查 在正式立項之前必須進行可行性分析,而可行性分析的基礎是對系統(tǒng)的市場調查。市場調查主要由兩部分組成:一般調查和信息需求初步調查。一般調查包括找出相近的站點,對這些站點的
17、網址宣傳方法、主頁設計、文字敘述等情況進行了分析,并了解整個人才交流的運作情況,充分發(fā)揮本網站的優(yōu)勢。信息需求初步調查是通過發(fā)E-mail和討論組的方式對部分人才和企業(yè)進行調查了解。 本系統(tǒng)界面簡潔、友好,操作簡便易用,在設計時充分考慮人才網站的特點,力求簡潔,避免花哨的內容,以沖淡主題,做到個人用戶與企業(yè)用戶兼顧,使系統(tǒng)簡潔實用、易操作。 2.2問答系統(tǒng)的問題分析 問題分析即通過對問題的語法、語義結構等進行解析,獲取該問題的關鍵詞,提取問題的焦點、確定問題類型和答案類型等等。問題分析部分主要完成以下幾部分工作:確定問題的類型、提取出問題的關鍵詞、依據(jù)問題的類型等因素對關鍵詞進行適當?shù)臄U
18、展。從自然語言處理的視角來看,還要對問題進行分詞以及詞性標注等分析過程,有些問答系統(tǒng)還對問題進行句法分析和語義分析。 2.3問題分類 在TREC 2003和2004中,QA主任務把問題分成3類進行分別處理。這3類問題是陳述類問題(FactoN)、列表類問題(Nst)和定義類問題(defin小ons)c1551。唐素勤在教學自動問答系統(tǒng)中把問題分為求知性提問與求證性提問兩類u“3。求知性提問即用戶從系統(tǒng)中獲取未知知識,如“什么是知識抽取?”;求證性提問指用戶提問前已具備了某些相關的知識,通過問答對自身已有的模糊知識或不完整知識進行驗證、澄清或補充,如“情報學專業(yè)的本科階段名稱是信息管理與信息
19、系統(tǒng)嗎?”。 問題從形式上分為疑問、設問、反問或特指問、是非問;從目的上分為查找信息、驗證事實、收集資料;從性質上分為開放型、封閉型“V’;按照復雜程度分為是非問題、選擇問題、特指性問題、語境性問題、推理性問題、概括性問題、專家性問題。如表2.1所示。 表2.1 問題分類 是非問題 選擇問題 特指性問題 語境性問題 推理性問題 概括性問題 專家性問題 是非問題(封閉型):數(shù)據(jù)挖掘與知識發(fā)現(xiàn)是一“回事嗎? 選擇問題(封閉型):數(shù)據(jù)挖掘與文本挖掘。哪個概念的范疇更大? 特指問題:在情報學博士生導師隊伍中。哪一位的博土學位取得最早(誰是擁有博士學位最早的情報學博導)? 統(tǒng)計
20、型問題:情報學博士點有哪幾家? 過程型問題:數(shù)據(jù)庫知識發(fā)現(xiàn)需要哪些步驟? 關系型問題:知識管理與知識工程有何區(qū)別,有何聯(lián)系? 原因型問題:現(xiàn)在,為什么沒有本科階段的情報學? 推理性問題:數(shù)據(jù)挖掘是從數(shù)據(jù)中挖掘,發(fā)現(xiàn)的結果是知識;那么信息分析是對信息進行分析,研究出的結果就是情報嗎?(根據(jù)數(shù)據(jù)挖掘與知識發(fā)現(xiàn)的關系推論信息分析與情報研究的關系) 概括性問題:數(shù)據(jù)挖掘是從數(shù)據(jù)中挖掘.文本挖掘就是從文本中挖掘,那么XX挖掘就是從XX中挖掘嗎? 專家性問題:數(shù)據(jù)挖掘與知識發(fā)現(xiàn)有何區(qū)別?在研究所讀研究生與在高校讀研究生有何不同? 上述關于問題的分類并不是很好,例如。專家性問題指只有專家才能回
21、答的問題,問題的專業(yè)性非常強,也可能是概括性的,也可能涉及推理。問答系統(tǒng)中少有反義疑問句。 針對于不同類型的問題制定相應的答案抽取規(guī)則,以便在答案抽取階段應用這些規(guī)則來抽取問題的答案。大部分的自動問答系統(tǒng)部是按照事先規(guī)定好的類別進行分類。但是這種分類還是存在很多不足的地方,人為因素太多,而且分類太粗,并不能完全符合實際的要求。所以也有一部分研究人員提出對問題自動分類的思想。首先收集大量的問題作為訓練語料,然后通過程序統(tǒng)計出經常出現(xiàn)的疑問短語。例如通過統(tǒng)計發(fā)現(xiàn)詢問原因的線索詞有“區(qū)別是什么?”、“有什么區(qū)別”、“有何差異’性?”。 2.4問題相似性判定 除了對問題類型進行分析以外,有的問答
22、系統(tǒng)還使用問題庫進行間題的相似性判定。系統(tǒng)包括一個常問問題(FAQ)庫,把用戶經常提問的問題及其答案存儲起來。有了問題庫。光拿用戶的提問到FAQ庫中進行搜索,查找有沒有相同的問題。如果有,就可以直接把FAQ庫中這個問題的答案返回;如果沒有,查找是否有相似的問題。這樣,對于用戶常問的問題,問答系統(tǒng)就可以很快給出答案,不需要經過復雜的處理,而且還能保證答案的正確性。所以有了FAQ庫之后,既能提高問答系統(tǒng)的效率。又能提高準確性?!妒f個為什么》、新浪的愛問、百度的知道、網易的知識人、網上咨詢以及專家問答系統(tǒng)等資源都是很好的FAQ庫。 問題形似型判定主要體現(xiàn)在主題相似、結構相似、格相似以及文法相似。
23、結構相似屬于語法方面的范疇,格相似屬于語義方面的范疇,間法相似屬于語用方面的范疇。問題相似性判定的原則為:格相似強于結構相似,結構相似強于主題相似。格相似與結構相似就能確定問題相似了,幾乎不需要考慮主題。主題的考慮主要用在目標文獻檢索的確定上。如“知識管理與知識工程有何區(qū)別?”與“工程管理與工商管理有什么區(qū)別?”,這兩個問題的主題完全不同,屬于兩個不同的領域;而結構非常相似,“X與Y有何區(qū)別?”;語義格也非常相似(可以說是相同),即求di財erence<x,y>,在前一個問題中,x,y分別為數(shù)據(jù)挖掘與知識發(fā)現(xiàn),后一個問題中x,y分別為工程管理與工商管理。問法相似指的是同一個問題使用不同的問法,
24、目前還很難從技術上解決語用的問題。 基于常見問題集的問答系統(tǒng)類似于基于實例的機器翻譯系統(tǒng)?;趯嵗臋C器翻譯系統(tǒng)是查找最相似的翻譯例句,然后對句中不同的部分根據(jù)詞表換成相應的詞即可。而基于常見問題集的問答系統(tǒng)則是查找最相似的間句,卻不能把不同的詞簡單替換,如果強制性替換,首先要有題對庫?;趯嵗臋C器翻譯直接使用雙語詞典,而問答系統(tǒng)卻很難有題對庫,至少要使用三元組概念或者語義概念關系的語義詞典,或者本體。例如首都<中國,北京>,首都<英國,倫敦>。因此,從這點上來講,基于常見問題集的問答系統(tǒng)在回答新問題時,比基于實例的機器翻譯在翻譯新句時要困難。 關鍵詞提取 在用戶提問的問題中,需要
25、提取對后續(xù)檢索系統(tǒng)有用的關鍵詞。關鍵詞主要由名詞、動詞、形容詞、限定性副詞等實詞組成。疑問詞和一些常用的“吧、了、的”等詞就應該被過濾掉。有一些問答系統(tǒng)還可以把關鍵詞分為兩種:一般關鍵詞和核心關鍵詞。核心關鍵詞也稱“必須含有關鍵詞”。核心關鍵詞指這些關鍵詞必須在答案句子中含有,而一般性關鍵詞可以不被答案句子包含。核心關鍵詞由專有名詞、限定性副詞(如最大、最高、最快等)、時間組成。之所以要制定“必須含有”的關鍵詞原則是因為它們對問題有極強的限定性作用,如果不含有它們的句子幾乎不可能是正確的答案。例如:問題是“情報學的第一個博士點在哪個學校?”而檢索的結果應該是“武漢大學”或者“武漢大學于1990
26、開始招收情報學博士”,而不是“北京大學于1998年開始招收情報學博士”,因為這顯然不是用戶想得到的結果,之所以出現(xiàn)這種情況的原因就在于非常重要的關鍵詞“第一個”沒有包含在答案句子中。如果加上“必須含有”的關鍵詞這個限制,那么這個答案就不會被檢索出來,因此通過這些關鍵詞的作用可以極大地提高檢索的準確性。關鍵詞被賦予不同的權重,在檢索句子時這些權重用來計算句子的權重。通常名詞、限定性副詞會有比較高的權重。 2.5關鍵詞擴展 為了提高檢索系統(tǒng)的召回率,一般的問答系統(tǒng)都對關鍵詞進行擴展。由于在問題空間和文檔空間之間存在著天然的語義鴻溝,使用基于問題分析直接提取的關鍵詞進行查詢,常常不能獲得滿意的效
27、果。因為在答案段落中某些詞常常不是原來問題的關鍵詞而是這些關鍵詞的擴展。例如:問題是“搜索引擎中anchor文件指的是什么?”,答案的句子是“把錨庫文本變成順排索引,存到文檔索引庫里,并用錨庫所指向的doclD進行關聯(lián)”在問題中使用的是“anchor”,而在答案中卻采用了“錨庫”這個詞匯。這就造成關鍵詞查詢失敗,因此需要對關鍵詞做適當?shù)臄U展常用的關鍵詞擴展方式有:名詞同義詞擴展和語義蘊涵擴展、動詞同義詞擴展(意義用法相同的詞)、根據(jù)問題類型擴展。部分工作在有些系統(tǒng)中由一個叫做“檢索提問生成器”的組件完成,它采用不同的方法生成擴展后的檢索式。如把詞的形態(tài)變化和導出詞作為檢索詞。問答系統(tǒng)中通??梢?/p>
28、采用《同義詞詞林》、WordNet、HowNet等同義詞詞典進行查詢關鍵詞的擴展。還有一些問答系統(tǒng)通過統(tǒng)計的辦法來擴展關鍵詞。這種方法需要大量的問題和答案語料來進行訓練。每一類的問題所對應的答案一般都有某種共同的特性口。例如,對于詢問地點的問題,答案中經常會出現(xiàn)“在、位于、坐落在、地處”等關鍵詞。所以通過統(tǒng)計,找出這些詞后,就可以把它們添加到查詢式中。 關鍵詞擴展雖然提高了系統(tǒng)的召回率,但如果擴展不適當會極大地降低檢索的正確率,因此一般的問答系統(tǒng)對關鍵詞的擴展都是很謹慎的。這些系統(tǒng)往往都對關鍵詞的擴展添加很多限制條件,例如只對名詞的關鍵詞進行擴展。另外還有一些問答系統(tǒng)是用檢索返回來的相關文檔
29、對關鍵詞進行擴展。擴展后的關鍵詞的重要性往往比從問題中提取的關鍵詞的重要性低,為了提高系統(tǒng)的準確性,很多問答系統(tǒng)又對關鍵詞賦予權重,以此來區(qū)分他們之間的重要性。 關鍵詞擴展屬于問題分析模塊,因為關鍵詞擴展旨在解決問題涉及哪些詞;而檢索式的構造屬于文檔檢索模塊,因為檢索式構造旨在解決這些關鍵詞和目標文獻之間可能的相關關系。 第三章 數(shù)據(jù)庫設計 3.1數(shù)據(jù)庫的需求分析 根據(jù)系統(tǒng)需求,可以列出以下數(shù)據(jù)項和數(shù)據(jù)結構: 用戶表:包括用戶名、密碼、真實姓名、用戶積分、性別、電話、生日、密碼保護問題及答案; 問題表:包括問題編號、提問者、問題題干、提問時間、分類名稱、子類名稱、圖片、最佳
30、答案編號; 答案表:包括答案編號、答案內容、問題編號、回答者、回答時間、提問者評論、好評次數(shù); 管理員表:用戶名、密碼、密碼保護問題及答案; 問題父類表:包括問題分類; 問題子類表:分類名稱、子類名稱; 3.2數(shù)據(jù)庫表結構設計 數(shù)據(jù)庫表結構設計如以下各表表示 表3.1 用戶表(aa_user) 字段名 數(shù)據(jù)類型 是否為空 默認值 備注 字段說明 username varchar(20) N 主鍵 用戶名 password varchar(200) N 密碼 name varchat(20) N 真實姓名 int
31、egral int Y 用戶積分 sex varchar(4) N 性別 phone varchar(11) Y 電話 date date Y 生日 question1 varchar(100) Y 密保問題1 question2 varchar(100) Y 密保問題2 question3 varchar(100) Y 密保問題3 answer1 varchar(100) Y 答案1 answer2 varchar(100) Y
32、 答案2 answer3 varchar(100) Y 答案3 注:用戶表保存用戶相關信息,如用戶名、密碼、電話號碼等信息。這些都屬于用戶隱私,需要采用一定的安全措施對用戶信息進行管理。 表3.2 問題表(aa_question) 字段名 數(shù)據(jù)類型 是否為空 默認值 備注 字段說明 Q_ID long N 自動增長 主鍵 問題編號 username varchar(20) N 外鍵 提問者姓名 problem varchar(500) N 問題 time date N 提問時間
33、 type varchar(20) N 分類名稱 sub_type varchar(20) N 子類名稱 picture varchar(100) Y 圖片 A_ID long Y NULL 外鍵 最佳答案 表3.3 答案表(aa_answer) 字段名 數(shù)據(jù)類型 是否為空 默認值 備注 字段說明 A_ID long N 自動增長 主鍵 答案編號 Q_ID long N 外鍵 問題編號 content text N 答案內容 username varcha
34、r(20) N 外鍵 回答者 time date N 回答時間 comment varchar(100) Y 提問者評論 good int Y 0 好評次數(shù) 表3.4管理員表(aa_manager) 字段名 數(shù)據(jù)類型 是否為空 默認值 備注 字段說明 username varchar(20) N 主鍵 用戶名 password varchar(200) N 密碼 type varchar(20) N 用戶類型 question1 varchar(10
35、0) Y 密保問題1 question2 varchar(100) Y 密保問題2 question3 varchar(100) Y 密保問題3 answer1 varchar(100) Y 答案1 answer2 varchar(100) Y 答案2 answer3 varchar(100) Y 答案3 注:管理員表記錄了管理員的各種信息,用戶名和密碼是用戶登錄時的身份驗證機制求職招聘狀態(tài)描述將為用戶提供有效的求職招聘路徑,這不僅有利于管理員對用戶的管理,同時也利于用戶自己的
36、管理與維護。 表3.5 問題分類(aa_question_type) 字段名 數(shù)據(jù)類型 是否為空 默認值 備注 字段說明 type varchar(20) N Y 分類名稱 表3.6 問題分類2(aa_question_subType) 字段名 數(shù)據(jù)類型 是否為空 默認值 備注 字段說明 sub_type varchar(20) N 主鍵 子類名稱 type varchar(20) N 外鍵 分類名稱 3.3E-R模型 為了把用戶的數(shù)據(jù)要求清晰明確地表達出來,通常要建立一個概念性的數(shù)據(jù)模型(也稱為信息模型)
37、。概念性數(shù)據(jù)模型是一種面向問題的數(shù)據(jù)模型,是按照用戶的觀點來對數(shù)據(jù)和信息建模。它描述了從用戶角度看到的數(shù)據(jù),它反映了用戶的現(xiàn)實環(huán)境,且與在軟件系統(tǒng)中的實現(xiàn)方法無關。 最常用的表示概念性數(shù)據(jù)模型的方法,是實體—聯(lián)系方法(Entity—Relationship Approach)。這種方法用ER圖描述現(xiàn)實世界中的實體,而不涉及這些實體在系統(tǒng)中的實現(xiàn)方法。用這種方法表示的概念性數(shù)據(jù)模型又稱為ER模型。ER模型中包含“實體”,“聯(lián)系”和“屬性”。在本系統(tǒng)中,問題父類與問題子類的關系是一對多的關系(1:N),問題與答案是一對多的關系(1:N),問題、答案與用戶之間的關系是(1:N)如圖3.1,問題父類
38、與問題子類間的關系3.2所示。在本系統(tǒng)數(shù)據(jù)表中用到的主鍵有: 管理員表中的username字段(管理員名); 問題表中的Q_ID字段(問題編號); 答案表中的A_ID字段(答案編號); 用戶表中的username字段(用戶名); 問題父類表中的type字段(父類名稱); 問題子類表中的sub_type字段(子類名稱); 問題父類 問題子類 屬于 父類名稱 子類名稱 1 N 圖3.2問題父類與問題子類間的關系 問題表 問題內容 提問時間 問題父類 問題圖片 問題子類 問題編號 最佳答案 答案表 答案編號 答案內容 回答時間 回答者
39、 好評次數(shù) 提問者評論 用戶表 密碼保護答案 性別 積分 真實姓名 密碼 用戶名 生日 密碼保護問題 屬于 屬于 N N 1 1 圖3.1 問題答案與用戶間的關系 參照完整性是保證在主鍵(被參照表中)和外鍵之間的關系總是得到維護。對兩個相關聯(lián)的表(主表和從表)進行操作數(shù)據(jù)的插入和刪除的時候,通過參照完整性保證它們之間的數(shù)據(jù)的一致性。 用戶自定義完整性,不同的數(shù)據(jù)庫系統(tǒng)根據(jù)起數(shù)據(jù)應用環(huán)境的不同,往往還需要一些特殊的約束條件。它反應某一具體應用所涉及的數(shù)據(jù)必須滿足的語義要求。對于用戶自定義完整性可以通過數(shù)據(jù)庫設計,也可以通過程序代碼來實現(xiàn)。由于程序設計的
40、靈活性和便捷性,在整個系統(tǒng)的調試過程中對于不完善的地方只需對代碼進行修改而不用更改數(shù)據(jù)庫,因此在系統(tǒng)中采用了程序代碼來實現(xiàn)數(shù)據(jù)庫用戶自定義完整性的約束。 第四章 系統(tǒng)詳細設計與實現(xiàn) 4.1系統(tǒng)工作原理介紹 本系統(tǒng)采用B/S結構(Browser/Server,瀏覽器/服務器結構)和基于Web服務兩種模式,是一個適用于Internet環(huán)境下的模型結構。只要用戶能連上Internet,便可以在任何時間、任何地點求職招聘求職的內容。系統(tǒng)工作原理圖如圖4.1所示: 圖 4.1 系統(tǒng)工作原理圖 系統(tǒng)的工作流程包括以下一些關鍵環(huán)節(jié): (1)用戶注冊。在每一個用戶使用該系統(tǒng)之前需要注冊,系統(tǒng)
41、會將用戶輸入的信息記錄到用戶模型中。 (2)用戶登陸。用戶輸入用戶名和密碼后,系統(tǒng)驗證是否正確并決定用戶是否能進入進行求職招聘。 (3)問題搜索。用戶在搜索框中輸入要搜索的關鍵字進行搜索,當用戶輸入多關鍵字的時候要用“空格”隔開。系統(tǒng)將根據(jù)用戶的輸入對關鍵字進行拆分和對相關內容搜索。 (4)問題發(fā)表。用戶單擊我要提問,在彈出的網站中輸入問題,進行發(fā)表問題,問了進一步將問題闡釋清楚積分達到100(含)分以上的用戶在發(fā)表問題的時候可以附加一張不超過50Kb的JPG格式圖片。提問一次將花費積分5 (5)問題回答。用戶單擊我要回答,在彈出的網站可以選擇自己想要回答的問題,回答問題一次將增加積分
42、5,如果回答的問題被提問者采納為最佳問題將獲得5分的獎勵。 (6)用戶信息管理。其中包括對用戶信息的查詢和修改,系統(tǒng)會根據(jù)修改后的用戶信息重新自動合成網頁內容。 (7)后臺管理。管理員通過后臺可以對用戶、問題及答案進行管理??梢詫⒉缓戏ǖ男畔⒑蛺阂庥脩暨M行刪除 。 4.2系統(tǒng)數(shù)據(jù)流圖 數(shù)據(jù)流圖(Data Flow Diagram,簡稱DFD)能精確地在邏輯上描繪系統(tǒng)的功能、輸入、輸出和數(shù)據(jù)存儲等,擺脫了物理內容,是描繪系統(tǒng)邏輯模型的最主要的工具。 經過系統(tǒng)詳細調查分析以及用戶需求分析,我們得到了新系統(tǒng)的數(shù)據(jù)流圖。 如圖4.2用戶登錄數(shù)據(jù)流圖: 圖4.2登錄數(shù)據(jù)流圖 4.3系
43、統(tǒng)的實現(xiàn)算法 用戶信息初始化算法 通過前面幾章的分析,我們已經知道用戶信息是求職招聘導航的基礎。由用戶模型可以了解,個人信息是用戶登陸個性化網上人才招聘系統(tǒng)的入口;求職招聘記錄則是根據(jù)用戶的求職招聘進度動態(tài)更新提供內容、求職招聘狀態(tài)提示的必要條件。所以設計好用戶信息輸入算法對后面的智能導航有著重要作用。用戶信息是在第一次使用系統(tǒng)注冊時輸入的。 該算法中牽涉的數(shù)據(jù)有:用戶數(shù)據(jù)庫中的用戶信息管理表、職位信息表。算法主要功能是通過接收用戶輸入或選擇的信息初始化用戶模塊中有關信息,以下便是該算法所涉及的數(shù)據(jù)結構和詳細過程。 輸入:1)用戶輸入的信息,如姓名,密碼等。 2)用戶選
44、擇的信息,如用戶求職招聘狀態(tài)等。 輸出:用戶模塊信息初始化。 算法的主要步驟如下: (1)初始化,包括打開數(shù)據(jù)庫aa_user、建立相關控件與數(shù)據(jù)庫的連接等; (2)將用戶信息管理表、用戶狀態(tài)表各添加一條記錄; (3)讀取各文本控件或列表控件中用戶輸入或選擇的信息到各表中對應的字段中; (4)結束。 檢索算法 用戶打開網頁后在文本框中輸入關鍵字進行搜索,系統(tǒng)將根據(jù)用戶輸入的關鍵字進行搜索,并返回和關鍵字相關的信息,若用戶輸入的是多關鍵字系統(tǒng)將對用戶輸入的關鍵字進行拆分,然后搜索所有含有相關信息的記錄返回給用戶界面: (1) 用戶關鍵字,并進行提交; (2) 從提交表單中提取
45、數(shù)據(jù),并進行相應判斷; (3) 連接數(shù)據(jù)庫,建立記錄集,用查詢語句對表中數(shù)據(jù)進行查詢; (4) 將結果進行加工顯示給用戶; (5) 結束; 算法流程圖如圖4.3所示: 開始 開始 初始化系統(tǒng) 輸入關鍵字并提交 判斷用戶輸入,若為多關鍵字則進行拆分 根據(jù)關鍵字查詢數(shù)據(jù)庫 返回查詢結果并進行加工 將加工后的結果顯示到用戶界面 圖4.3 搜索算法流程圖 4.4注冊模塊的設計與實現(xiàn) 在本系統(tǒng)中,將會有一些公用頁面,即每個文件或部分文件都會用到的文件,在使用這些文件時,只需要一個包含語句‘即可,這樣大大減少了代碼的
46、冗余,同時也使編碼簡單,減少了許多工作量。主要的公用文件包括:conn.php文件、logout.php文件、is_login.php等。 (1)conn.php 文件 對于程序中建立數(shù)據(jù)庫連接和關閉數(shù)據(jù)庫連接的操作,最好放在一個包含文件中,這樣便于維護和修改。前面一部分為建立數(shù)據(jù)庫連接的語句,其中mysql_connect為建立數(shù)據(jù)庫連接的對象,mysql_select_db為數(shù)據(jù)庫連接字符串,它表明了數(shù)據(jù)庫連接的物理路徑以及采用的數(shù)據(jù)庫類型,這里采用的是MySQL數(shù)據(jù)庫。
47、456"; $db="aa"; //連接服務器 mysql_connect($host,$user,$password) or die("SORRY! 鏈接服務器失敗!"); //鏈接數(shù)據(jù)庫 mysql_select_db($db) or die ("SORRY! 打開數(shù)據(jù)庫失敗!"); mysql_query("SET NAMES gb2312"); ?> (2)is_login.php 文件 is_login.php是用戶權限驗證文件,方便調用和維護減少代碼冗余。 (3)logout.php 文件 logout.php文件是用戶退出文件,改文件用于關閉和刪除用戶SE
48、SSION。 其他一些公用文件的代碼這里將不一一列舉。 系統(tǒng)公用頁面 用戶注冊頁面 用戶注冊界面如圖4.4所示。用戶必須填寫以下內容,這便于對用戶的管理以及用戶的安全性。用戶注冊頁面的信息是用戶進入系統(tǒng)的有利憑證。該頁面涉及的主要PHP文件為register.php文件。 圖4.4注冊頁面
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。