版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、<p> 聊天機器人技術的研究與實現(xiàn)</p><p> 學 生 姓 名: </p><p> 學 院: </p><p> 專 業(yè): </
2、p><p> 班 級: </p><p> 學 號: </p><p> 指 導 教 師: </p><p> 審 閱 教 師:
3、 </p><p> 完 成 日 期: </p><p><b> 摘要</b></p><p> 隨著信息技術的發(fā)展,隨著社會的不斷進步,各個領域?qū)π畔⒒枨蟛粩嘣黾?,同時智能化水平也在不斷提升,計算機已經(jīng)成為了我們?nèi)粘I?/p>
4、中必不可少的一樣東西,就像一件必不可少的家用電器一樣。有了電腦,我們就可以上網(wǎng)看新聞、看視頻、玩游戲等,通過電腦來打發(fā)我們無聊的時間已經(jīng)成為了越來越多的人的選擇。計算機的用途也在隨著信息技術的發(fā)展而發(fā)展,在上世紀八十年代就誕生了一種可以跟人聊天的智能計算機軟件,我們稱之為聊天機器人。</p><p> 本文主要介紹聊天機器人技術的研究與實現(xiàn)。本系統(tǒng)在Win 7操作系統(tǒng)下,采用Visual Studio 2012
5、軟件開發(fā)平臺,使用C#語言進行程序編寫。通過關鍵詞分句的設計方法進行程序設計,實現(xiàn)了人與計算機的智能對話模式。</p><p> 關鍵詞:聊天機器人;智能計算機;聊天</p><p><b> Abstract</b></p><p> With the development of information technology, wit
6、h the development of society, in all fields of information technology increasing demand, at the same time, the intelligent level is rising, the computer has become the essential thing in our daily life, as a essential fo
7、r household appliances. With the computer, we can read news online, watch videos, play games, to send us the boring time by computer has become more and more people choice. The use of computers in along with the developm
8、ent of in</p><p> Research and implementation of this paper mainly introduces the chat robot technology. The system in Win 7 operating system, using Visual Studio 2012 software development platform, using t
9、he C# programming language. Program design by the design method of keyword clause, realizes the intelligent dialogue mode of man and computer.</p><p> Keywords: chat robot ; Intelligent computer ; Chat</
10、p><p><b> 目 錄</b></p><p> 聊天機器人技術的研究與實現(xiàn)1</p><p><b> 摘要2</b></p><p> Abstract3</p><p><b> 目 錄4</b></p>&l
11、t;p><b> 1 緒論1</b></p><p> 1.1課題開發(fā)的背景1</p><p> 1.2 國內(nèi)外發(fā)展現(xiàn)狀1</p><p> 1.3 課題開發(fā)的意義3</p><p> 1.4 本章小結(jié)3</p><p><b> 2 可行性分析5<
12、/b></p><p> 2.1 技術可行性5</p><p> 2.2 經(jīng)濟可能性5</p><p> 2.3 操作可能性6</p><p> 2.4 開發(fā)工具6</p><p> 2.4.1 Visual Studio 20126</p><p> 2.4.2 C
13、#程序設計語言7</p><p><b> 3 系統(tǒng)分析12</b></p><p> 3.1 需求分析12</p><p> 3.2 B/S三層構(gòu)架13</p><p><b> 4 系統(tǒng)設計16</b></p><p> 4.1 程序設計分析16&l
14、t;/p><p> 4.2 程序展示16</p><p> 5系統(tǒng)測試與維護20</p><p> 5.1 系統(tǒng)的配置20</p><p> 5.2 系統(tǒng)的維護20</p><p> 5.3 系統(tǒng)測試21</p><p><b> 6 結(jié)論23</b>&
15、lt;/p><p><b> 參考文獻24</b></p><p><b> 1 緒論</b></p><p><b> 課題開發(fā)的背景</b></p><p> 自從上世紀中葉第一臺計算機誕生以來,計算機越來越走進人們的生活當中,特別是隨著計算機網(wǎng)絡的發(fā)展,把全世界的人
16、們緊密的聯(lián)系在一起,大大的擴展了計算機的功能,人們越來越離不開計算機了。如今,作為網(wǎng)絡應用之一的聊天工具,越來越受到人們的歡迎和重視?,F(xiàn)在已有的聊天軟件不勝枚舉,流行的主要有MSN Messenger、QQ等。</p><p> MSN Messenger來自于軟件巨頭微軟,其實力當然不容小覷。目前最新版本為MSN9,能夠?qū)崿F(xiàn)文本、手寫、語音、視頻等多種溝通方式,可以預見在不久的將來,聊天軟件將成為人們通過因特
17、網(wǎng)相互聯(lián)系和娛樂的主要平臺。 由于MSN Messenger協(xié)議是公開的,因此第三方軟件開發(fā)者能通過協(xié)議寫出自己的程序與網(wǎng)絡交互,于是MSN機器人應運而生。MSN機器人是以MSN聯(lián)系人的形式出現(xiàn)的,只要你添加相關機器人的MSN帳號,就可以像與真人聊天一樣與機器人聊天,并可查詢地圖、股票、天氣預報、電視節(jié)目等信息。</p><p> 隨著我國計算機技術、互聯(lián)網(wǎng)行業(yè)的快速發(fā)展,計算機的開發(fā)應用已滲透到各個領域,成
18、為各行各業(yè)必不可少的工具,而且日趨普及。隨著網(wǎng)絡的興起,越來越多的人依賴網(wǎng)絡,因此聊天機器人應運而生。聊天機器人是以聯(lián)系人的形式出現(xiàn)的,只要你添加相關機器人的賬號,就可以像與真人聊天一樣與機器人聊天,并可查詢地圖、股票、天氣預報、電視節(jié)目等信息。目前,知名的聊天機器人有:一枝獨秀的MSN機器人小i,專業(yè)的MSN股票機器人牛牛,國內(nèi)則如騰訊的QQ機器人小Q,但在功能上和MSN的系列機器人相比有一定差距。</p><p&
19、gt; 1.2 國內(nèi)外發(fā)展現(xiàn)狀</p><p> 世界上最早的聊天機器人誕生于20世紀80年代,名為“阿爾貝特”,用BASIC語言編寫而成。今天的互聯(lián)網(wǎng)上,已出現(xiàn)“比利”、“艾麗斯”等聊天機器人等,中文的如“白絲魔理沙”、“烏賊娘”等由網(wǎng)友制作的聊天機器人。據(jù)悉,還有一個“約翰·列儂人工智能計劃”,以再現(xiàn)當年“甲殼蟲”樂隊主唱的風采為目標。</p><p> 1950年,圖
20、靈在哲學刊物《思維》上發(fā)表“計算機器與智能”的文章,提出了后來經(jīng)典的圖靈測試——交談能檢驗智能,如果一臺計算機能像人一樣對話,它就能像人一樣思考。他由此獲稱“人工智能之父”。</p><p> 1991年,美國科學家兼慈善家休·勒布納設立人工智能年度比賽——勒布納獎,號稱是對圖靈測試的第一種實踐,旨在獎勵最擅長模仿人類真實對話場景的機器人。</p><p> 2008年,勒布
21、納獎人工智能獎最后一輪10月12日在英國雷丁大學展開。艾爾博特等6種軟件程序擊敗另外7種程序,獲決賽資格。艾爾博特與12個陌生人交談,力圖讓他們相信它是“人”。一番爭論、笑聲過后,這一電腦程序成功騙過3人,在今年人工智能比賽中拔得頭籌,朝“成為史上第一臺能思考的機器”目標更近一步。</p><p> MSN機器人是一項能夠帶給用戶良好信息體驗的技術產(chǎn)品――基于人工智能技術的開發(fā)、研究和應用,為成千上萬用戶提供新
22、穎實用的網(wǎng)絡服務。MSN機器人技術日漸成熟,其中著名的如贏思軟件公司開發(fā)的小I機器人。</p><p> 2004年贏思先后在全球知名的即時通訊(IM)平臺MSN、“騰訊QQ”及Yahoo Messenger上推出了小I智能機器人;小I以其強大的聊天功能和各類資訊信息的提供一時間成為各大IM平臺的新寵,用戶量突破800萬,在人工智能機器人及信息服務領域獲得了前所未有的突破。</p><p&g
23、t; 2006年2月,憑借在機器人領域多年的積累以及強大的技術實力,贏思軟件成為微軟全球戰(zhàn)略合作伙伴及微軟官方機器人平臺,攜手微軟打造最強大的機器人應用平臺。目前公司已推出小I聊天、MSN群、小I地圖、小I天氣、小I收視指南、小I問答等多項應用,提供了多種個性化功能和服務,性能穩(wěn)定,應用廣泛。</p><p> 世界上最早的聊天機器人誕生于20世紀80年代,這款機器人名為“阿爾貝特”,用BASIC語言編寫而成
24、。</p><p> 1950年,圖靈在哲學刊物《思維》(Mind)上發(fā)表了“計算機器與智能”的文章,提出了后來經(jīng)典的圖靈測試——交談能檢驗智能,如果一臺計算機能像人一樣對話,它就能像人一樣思考。他由此獲稱“人工智能之父”。</p><p> 1991年,美國科學家兼慈善家休·勒布納設立人工智能年度比賽——勒布納獎,號稱是對圖靈測試的第一種實踐,旨在獎勵最擅長模仿人類真實對話
25、場景的機器人。</p><p> 比賽分為金、銀、銅三等獎。如果程序不僅能以文本方式通過交談測試,在音頻和視頻測試中也能過關,則獲金獎,贏得10萬美元和一枚18K黃金制金牌;如果它能在更長時間文本談話中迷惑住至少半數(shù)裁判,則獲銀獎;如果未達到以上標準,則每年測試中迷惑住最多裁判的程序贏得2000美元和一枚銅牌。從1991年首屆比賽至今,尚無程序達到金獎或者銀獎標準。</p><p>
26、2008年,勒布納獎人工智能獎最后一輪比賽10月12日在英國雷丁大學展開。艾爾博特等6種軟件程序擊敗另外7種程序,獲得決賽資格。艾爾博特與12個陌生人交談,力圖讓他們相信它是“人”。一番爭論、笑聲過后,這一電腦程序成功騙過3人,在今年人工智能比賽中拔得頭籌,朝“成為史上第一臺能思考的機器”目標更近一步。</p><p> 1.3 課題開發(fā)的意義</p><p> 聊天機器人產(chǎn)生的原因是
27、,研發(fā)者把自己感興趣的回答放到數(shù)據(jù)庫中,當一個問題被拋給聊天機器人時,它通過算法,從數(shù)據(jù)庫中找到最貼切的答案,回復給它的聊伴。</p><p> 此外,聊天機器人的成功之處在于,研發(fā)者將大量網(wǎng)絡流行的俏皮語言加入詞庫,當你發(fā)送的詞組和句子被詞庫識別后,程序?qū)⑼ㄟ^算法把預先設定好的回答回復給你。而詞庫的豐富程度、回復的速度,是一個聊天機器人能不能得到大眾喜歡的重要因素。千篇一律的回答不能得到大眾青睞,中規(guī)中矩的話
28、語也不會引起人們共鳴。此外,只要程序啟動,聊士們24小時在線隨叫隨到,堪稱貼心之至。</p><p><b> 1.4 本章小結(jié)</b></p><p> 本章主要通過對課題的背景、發(fā)展現(xiàn)狀和開發(fā)意義三個角度進行了分析。通過上文可以看出聊天機器人的設計開發(fā)已經(jīng)成為了熱門話題,人們經(jīng)常通過與聊天機器人對話進行情緒的發(fā)泄與尋求安慰。</p><p&
29、gt;<b> 2 可行性分析</b></p><p> 在系統(tǒng)調(diào)查和業(yè)務流程分析的基礎上,針對新系統(tǒng)的開發(fā)是否具備必要性和可能性,對新系統(tǒng)的開發(fā)從技術、經(jīng)濟、社會的方面進行分析和研究,以避免投資失誤,保證新系統(tǒng)的開發(fā)成功??尚行匝芯康哪康木褪怯米钚〉拇鷥r在盡可能短的時間內(nèi)確定問題是否能夠解決。并且可行性研究主要集中在以下三個方面:</p><p><b&g
30、t; 2.1 技術可行性</b></p><p> 隨著互聯(lián)網(wǎng)時代的到來以及數(shù)碼相機的普及,越來越多的人在生活中、吃飯時,旅途中都喜歡用相機記錄下當時的場景。再加上現(xiàn)在的智能手機功能越來越強大,幾乎所有手機都有照相功能,所以拍照幾乎成了人們?nèi)粘I钪斜夭豢缮俚囊徊糠帧?</p><p> 根據(jù)本系統(tǒng)的功能需求,采用C#語言進行程序開發(fā)。開發(fā)平臺選取微軟的Visual St
31、udio 2012程序設計平臺。C#語言與VC平臺都是相當成熟的技術,因此在技術層面上,本系統(tǒng)的實現(xiàn)是完全可行的。</p><p><b> 2.2 經(jīng)濟可能性</b></p><p> 本環(huán)節(jié)通過分析新系統(tǒng)的成本效益,其中包括估計項目開發(fā)的成本,開發(fā)費用和今后的運行、維護費用以及新系統(tǒng)將獲得的效益,估算開發(fā)成本是否高于項目預期的全部經(jīng)費。下面具體列出了成本和效益
32、的分析:</p><p><b> (1)支出 </b></p><p> 本系統(tǒng)的開發(fā)只需要系統(tǒng)的程序設計費用,使用者將程序安裝到計算機中就可以實現(xiàn)人與計算機的智能聊天功能。</p><p><b> ?。?)效益</b></p><p> 本系統(tǒng)的效益主要是供使用者打發(fā)無聊時間,作為一款娛
33、樂程序,如果此程序能夠為廣大使用者帶來快樂就實現(xiàn)了其效益。</p><p> 由以上可知,本系統(tǒng)在經(jīng)濟上是可行的。</p><p><b> 2.3 操作可能性</b></p><p> 本系統(tǒng)是非常簡單的人機對話系統(tǒng),將程序安裝在計算機上之后,打開程序,在聊天框中輸入聊天信息,本系統(tǒng)就可以對用戶發(fā)送的聊天信息進行智能回復。對于任何一個能
34、夠熟練使用計算機的人都是可以輕松操作本程序。所以本系統(tǒng)在操作上是完全可行的。</p><p><b> 2.4 開發(fā)工具</b></p><p> 2.4.1 Visual Studio 2012</p><p> Visual Studio是微軟公司推出的開發(fā)環(huán)境。是最流行的Windows平臺應用程序開發(fā)環(huán)境。</p>&
35、lt;p> 2012年9月12日微軟在西雅圖發(fā)布Visual Studio 2012。其實早在8月16日Visual Studio 2012和.NET Framework 4.5已經(jīng)可以下載,微軟負責Visual Studio部門的公司副總裁Jason Zander還發(fā)表博客,列舉了升級到Visual Studio 2012版的12大理由。當時還主要是分發(fā)給MSDN訂閱用戶。9月1日批量許可(VL)發(fā)布。而在12號這天面向全球用
36、戶上市。</p><p> 應用程序的新紀元已經(jīng)到來,這一點毋庸置疑。 利用聯(lián)網(wǎng)設備和基于云的服務,您可以獲得比以往任何時候都更 </p><p> 獨立的開發(fā)人員隨時隨地都可以進行連接,向不計其數(shù)的用戶提供您所構(gòu)建優(yōu)秀的應用程序。 而大型敏捷的開發(fā)團隊則可以獲得明顯的業(yè)務優(yōu)勢——執(zhí)行效率越快,優(yōu)勢越明顯。</p><p> 這就是為什么說 Visual St
37、udio 2012是我們到目前為止最卓越的版本。 它的目的就是幫助您在貴在創(chuàng)意、重在速度的市場中發(fā)展壯大。 讓我們來看一看它幫助您將創(chuàng)意快速轉(zhuǎn)化為應用程序的一些方法。</p><p> Visual Studio 2012新增了一些可以增進團隊生產(chǎn)力的新功能。這些新功能包括:</p><p> · intellitrace in production.開發(fā)者一般無法使用本地調(diào)
38、試會話來調(diào)試生成程序,因此重現(xiàn),診斷和解決生成程序的問題非常困難。 而通過新的intellitrace in production功能,開發(fā)團隊可以通過運行powershell命令來激活intellitracecollector來收集數(shù)據(jù),然后intellitrace會將數(shù)據(jù)傳輸給開發(fā)團隊。開發(fā)者就可以使用這些信息在一個類似于本地調(diào)試會話的會話中調(diào)試程序。intellitrace in production僅為Visual Studio
39、 2012旗艦版客戶提供。</p><p> · task/suspend resume這個功能解決了困擾多年的中斷問題。假設開發(fā)者正在試圖解決某個問題或者bug,然后領導需要你做其他事情,開發(fā)者不得不放下手頭工作,然后過幾小時以后才能回來繼續(xù)調(diào)試代碼。task/suspend resume功能會保存所有的工作(包括斷點)到visual studio team foundation server (t
40、fs)。開發(fā)者回來之后,點擊幾下鼠標,即可恢復整個會話。</p><p> · 代碼檢閱功能。新的代碼檢閱功能允許開發(fā)者可以將代碼發(fā)送給另外的開發(fā)者檢閱。啟用“查蹤”后,可以確保修改的代碼會被送到高級開發(fā)者那里檢閱,得到確認。</p><p> · powerpoint storyboarding 工具。這個新工具是為了方便開發(fā)者和客戶之間的交流而設計。使用powe
41、rpoint插件,開發(fā)者可以生成程序mockups,這會幫助客戶于開發(fā)者就客戶所需的功能進行交流。</p><p><b> 云功能:</b></p><p> 以前,每個人都需要維護一臺服務器。 光是擴展容量便占用了基礎架構(gòu)投資的一大半。 而擁有了云功能,您可以利用云環(huán)境中動態(tài)增加存儲空間和計算能力的功能快速訪問無數(shù)虛擬服務器。 Visual Studio 提供
42、了新的工具來讓您將應用程序發(fā)布到 Windows Azure(包括新模板和發(fā)布選項),并且支持分布式緩存,維護時間更少。</p><p> 2.4.2 C#程序設計語言</p><p> 微軟c#語言定義主要是從C和C++繼承而來的,而且語言中的許多元素也反映了這一點。C#在設計者從C++繼承的可選選項方面比Java要廣泛一些(比如說structs),它還增加了自己新的特點(比方說源代
43、碼版本定義).但它還太不成熟,不可能擠垮Java、C#還需要進化成一種開發(fā)者能夠接受和采用的語言。而微軟當前為它的這種新語言大造聲勢也是值得注意的。目前大家的反應是:“這是對Java的反擊” 。</p><p> C#更象Java一些,雖然微軟在這個問題上保持沉默。這也是意料中的事情,我覺得,因為Java近來很成功而使用Java的公司都報告說它們在生產(chǎn)效率上比C++獲得了提高。</p><p
44、> Java所帶來的巨大影響和大家對它的廣泛接受已經(jīng)由工作于這種語言和平臺之上的程序員數(shù)量明顯的說明了(估計世界范圍內(nèi)共有兩百五十萬程序員使用Java)。由這種語言寫成的應用程序的數(shù)量是令人驚訝的并已經(jīng)滲透了每一個級別的計算,包括無線計算和移動電話(比如日本發(fā)明的Java電話)。C#能夠在用戶領域獲得這樣的禮遇嗎?我們必須等待并觀望,就象已經(jīng)由SSI公司的CEO和主席Kalpathi S. Suresh指出來的那樣:"
45、我發(fā)現(xiàn)所有這些都是漸進的。如果C#不存在,我們總能回到Java或C和C++。這些都不完全是新技術,它們在更大的意義上來說只是大公司制造的市場噱頭。我們必須給他們時間安頓下來看看這些是不是真的對IT工業(yè)有什么影響。"</p><p> C#最引人入勝的地方是它和Java的不同,而不是相似的地方.這一節(jié)(和這個系列第二部分的大部分地方)講述了C#實現(xiàn)的和Java不同的地方或者Java根本沒有的特點.<
46、;/p><p><b> 動態(tài)查閱</b></p><p> C# 4.0 新增 dynamic關鍵字,提供動態(tài)編程(dynamic programming),把既有的靜態(tài)對象標記為動態(tài)對象,類似javascript, Python 或 Ruby。</p><p> dynamic calc = GetCalculator();</p&
47、gt;<p> int sum = calc.Add(10, 20);</p><p> 具名參數(shù)與可選參數(shù)public StreamReader OpenFile(</p><p> string path,</p><p> int bufferSize =1024)</p><p><b> {<
48、/b></p><p><b> ...</b></p><p><b> }</b></p><p> 調(diào)用 OpenFile 時, 順序可以完全顛倒:</p><p> OpenFile(bufferSize:4096, path:"foo.txt");<
49、/p><p><b> 中間代碼:</b></p><p> 微軟在用戶選擇何時MSIL應該編譯成機器碼的時候是留了很大的余地.微軟公司很小心的聲稱MSIL不是解釋性的,而是被編譯成了機器碼.它也明白許多--如果不是大多數(shù)的話--程序員認為Java程序要不可避免的比C編寫的任何東西都要慢.而這種實現(xiàn)方式?jīng)Q定了基于MSIL的程序(指的是用C#,Visual Basic,
50、"Managed C++"--C++的一個符合CLS的版本--等語言編寫的程序)將在性能上超過"解釋性的"Java代碼.當然,這一點還需要得到事實證明,因為C#和其他生成MSIL的編譯器還沒有發(fā)布.但是Java JIT編譯器的普遍存在使得Java和C#在性能上相對相同.象"C#是編譯語言而Java是解釋性的,"之類的聲明只是商業(yè)技巧.Java的中間代碼和MSIL都是中間的匯編形
51、式的語言,它們在運行時或其它的時候被編譯成機器代碼.</p><p><b> 命名空間中的申明:</b></p><p> 當你創(chuàng)建一個程序的時候,你在一個命名空間里創(chuàng)建了一個或多個類.同在這個命名空間里(在類的外面)你還有可能聲明界面,枚舉類型和結(jié)構(gòu)體.必須使用using關鍵字來引用其他命名空間的內(nèi)容.</p><p><b>
52、; 基本的數(shù)據(jù)類型</b></p><p> C#擁有比C,C++或者Java更廣泛的數(shù)據(jù)類型.這些類型是bool, byte, ubyte, short, ushort, int, uint, long, ulong, float, double,和decimal.象Java一樣,所有這些類型都有一個固定的大小.又象C和C++一樣,每個數(shù)據(jù)類型都有有符號和無符號兩種類型.與Java相同的是,一個
53、字符變量包含的是一個16位的Unicode字符.C#新的數(shù)據(jù)類型是decimal數(shù)據(jù)類型,對于貨幣數(shù)據(jù),它能存放28位10進制數(shù)字.</p><p><b> 兩個基本類:</b></p><p> 一個名叫object的類是所有其他類的基類.而一個名叫string的類也象object一樣是這個語言的一部分.作為語言的一部分存在意味著編譯器有可能使用它--無論何時
54、你在程序中寫入一句帶引號的字符串,編譯器會創(chuàng)建一個string對象來保存它.</p><p><b> 參數(shù)傳遞:</b></p><p> 方法可以被聲明接受可變數(shù)目的參數(shù).缺省的參數(shù)傳遞方法是對基本數(shù)據(jù)類型進行值傳遞.ref關鍵字可以用來強迫一個變量通過引用傳遞,這使得一個變量可以接受一個返回值.out關鍵字也能聲明引用傳遞過程,與ref不同的地方是,它指明這
55、個參數(shù)并不需要初始值.</p><p><b> 與COM的集成:</b></p><p> C#對Windows程序最大的賣點可能就是它與COM的無縫集成了,COM就是微軟的Win32組件技術.實際上,最終有可能在任何.NET語言里編寫COM客戶和服務器端.C#編寫的類可以子類化一個已存在的COM組件;生成的類也能被作為一個COM組件使用,然后又能使用,比方說,
56、JScript語言子類化它從而得到第三個COM組件.這種現(xiàn)象的結(jié)果是導致了一個運行環(huán)境的產(chǎn)生,在這個環(huán)境里的組件是網(wǎng)絡服務,可用任何.NET語言子類化.</p><p><b> 索引下標:</b></p><p> 一個索引與屬性除了不使用屬性名來引用類成員而是用一個方括號中的數(shù)字來匿名引用(就象用數(shù)組下標一樣)以外是相似的.</p><p&
57、gt; public class ListBox: Control {</p><p> private string[] items;</p><p> public string this[int index] {</p><p><b> get {</b></p><p> return items[i
58、ndex];</p><p><b> }</b></p><p><b> set {</b></p><p> items[index] = value;</p><p> Repaint();</p><p><b> }</b><
59、/p><p><b> }</b></p><p><b> }</b></p><p> 可以用一個循環(huán)器來匿名引用字符串內(nèi)部數(shù)組成員,就象下面這樣:</p><p> ListBox listBox = ...;</p><p> listBox[0] = &quo
60、t;hello";</p><p> Console.WriteLine(listBox[0]);</p><p><b> 代理和反饋:</b></p><p> 一個代理對象包括了訪問一個特定對象的特定方法所需的信息.只要把它當成一個聰明的方法指針就行了.代理對象可以被移動到另一個地方,然后可以通過訪問它來對已存在的方法進行
61、類型安全的調(diào)用.一個反饋方法是代理的特例.event關鍵字用在將在事件發(fā)生的時候被當成代理調(diào)用的方法聲明中。</p><p><b> 3 系統(tǒng)分析</b></p><p><b> 3.1 需求分析</b></p><p> 需求分析也稱可行性研究,是決策部門在采取一項重大改革或投資行動之前,對該項目的必要性和可能
62、性進行分析與論證的活動。可行性分析已被廣泛應用于新產(chǎn)品開發(fā)、基建、工業(yè)企業(yè)、交通運輸、商業(yè)設施等項目投資的多個領域。在展開一項開發(fā)行動之前,必須對用戶提出的目標的必要性和可能性進行必要的論證。</p><p> 在系統(tǒng)調(diào)查分析的基礎上,針對新系統(tǒng)的開發(fā)是否具備必要性和可能性,對新系統(tǒng)的開發(fā)從技術、經(jīng)濟、社會的方面進行分析和研究,以避免投資失誤,保證新系統(tǒng)的開發(fā)成功??尚行匝芯康哪康木褪怯米钚〉拇鷥r在盡可能短的時
63、間內(nèi)確定問題是否能夠解決。</p><p> 根據(jù)本系統(tǒng)操作流程,了解了各層對象的功能需求,分析得出了本系統(tǒng)使用者的使用流程圖,如圖下所示:</p><p> 圖3.1 聊天機器人使用流程圖</p><p> 3.2 B/S三層構(gòu)架</p><p> 本系統(tǒng)采用B/S模式,服務器采用著名的web服務器端軟件apache,該http服務
64、器有著良好的跨平臺性和安全性,可以運行在包括windows、linux、mac等操作系統(tǒng)上。用戶客戶端使用各種瀏覽器都能夠進行正常的瀏覽和操作。需要注意的是在程序的開發(fā)過程中,程序和路徑相關的要考慮到不同的操作系統(tǒng)的文件目錄結(jié)構(gòu)。</p><p> B/S結(jié)構(gòu),即Browser/Server(瀏覽器/服務器)結(jié)構(gòu),就是只安裝維護一個服務器(Server),而客戶端采用瀏覽器(Browse)運行軟件。它是隨著In
65、ternet技術的興起,對C/S結(jié)構(gòu)的一種變化和改進。主要利用了不斷成熟的WWW瀏覽器技術,結(jié)合多種Script語言(VBScript、JavaScript等)和ActiveX技術,是一種全新的軟件系統(tǒng)構(gòu)造技術。 </p><p> B/S三層體系結(jié)構(gòu)采用三層客戶/服務器結(jié)構(gòu),在數(shù)據(jù)管理層(Server)和用戶界面層(Client)增加了一層結(jié)構(gòu),稱為中間件(Middleware),使整個體系結(jié)構(gòu)成為三層。三層
66、結(jié)構(gòu)是伴隨著中間件技術的成熟而興起的,核心概念是利用中間件將應用分為表示層、業(yè)務邏輯層和數(shù)據(jù)存儲層三個不同的處理層次。三個層次的劃分是從邏輯上分的,具體的物理分法可以有多種組合。中間件作為構(gòu)造三層結(jié)構(gòu)應用系統(tǒng)的基礎平臺,提供了以下主要功能:負責客戶機與服務器、服務器與服務器間的連接和通信;實現(xiàn)應用與數(shù)據(jù)庫的高效連接;提供一個三層結(jié)構(gòu)應用的開發(fā)、運行、部署和管理的平臺。這種三層結(jié)構(gòu)在層與層之間相互獨立,任何一層的改變不會影響其它層的功能。
67、 </p><p> 圖3.2 B/S三層體系結(jié)構(gòu)</p><p> 在B/S體系結(jié)構(gòu)系統(tǒng)中,用戶通過瀏覽器向分布在網(wǎng)絡上的許多服務器發(fā)出請求,服務器對瀏覽器的請求進行處理,將用戶所需信息返回到瀏覽器。而其余如數(shù)據(jù)請求、加工、結(jié)果返回以及動態(tài)網(wǎng)頁生成、對數(shù)據(jù)庫的訪問和應用程序的執(zhí)行等工作全部由Web Server完成。隨著Windows將瀏覽器技術植入操作系統(tǒng)內(nèi)部,這種結(jié)構(gòu)已成為當今
68、應用軟件的首選體系結(jié)構(gòu)。顯然B/S結(jié)構(gòu)應用程序相對于傳統(tǒng)的C/S結(jié)構(gòu)應用程序是一個非常大的進步。</p><p> B/S三層體系結(jié)構(gòu)的主要優(yōu)點:</p><p> ?B/S模式提供靈活的信息交流和信息發(fā)布服務。B/S模式借助Internet強大的信息發(fā)布與信息傳送能力可以有效地解決企業(yè)、高等學校內(nèi)部的大量不規(guī)則的信息交流</p><p> ?可共享性。單個應
69、用服務器可以為處于不同平臺的客戶應用程序提供服務,在很大程度上節(jié)省了開發(fā)時間和資金投入;</p><p> ?較好的安全性。在這種結(jié)構(gòu)中,客戶應用程序不能直接訪問數(shù)據(jù),應用服務器不僅可控制哪些數(shù)據(jù)被改變和被訪問,而且還可控制數(shù)據(jù)的改變和訪問方式 。</p><p> ?三層模式成為真正意義上的“瘦客戶端”,客戶端計算機不需要很高的硬件配置,也無需特殊的軟件配置要求,只要有web瀏覽器就
70、可以使用系統(tǒng)。</p><p> ?B/S模式提供了一致的用戶界面:B/S模式的應用軟件都是基于Web瀏覽器的,這些瀏覽器的界面都很相似。對于無用戶交互功能的頁面,用戶接觸的界面都是一致的,從而可以降低軟件的培訓費用。</p><p> ?在B/S模式下,外部的用戶亦可通過通用的瀏覽器進行訪問。</p><p> ?B/S模式的結(jié)構(gòu)易于擴展:由于Web 的平臺
71、無關性,B/S模式結(jié)構(gòu)可以任意擴展,可以從一臺服務器、幾個用戶的工作組級擴展成為擁有成千上萬用戶的大型系統(tǒng)。</p><p> ?B/S模式具有更強的信息系統(tǒng)集成性:在B/S模式下,集成了解決企事業(yè)單位各種問題的服務,而非零散的單一功能的多系統(tǒng)模式,因而它能提供更高的工作效率。</p><p><b> 4 系統(tǒng)設計</b></p><p>
72、; 4.1 程序設計分析</p><p> 本次程序設計的原理是根據(jù)關鍵句分詞技術,采用key-value鍵值對原理進行數(shù)據(jù)的快速搜索查詢。</p><p> key-value分布式存儲系統(tǒng)查詢速度快、存放數(shù)據(jù)量大、支持高并發(fā),非常適合通過主鍵進行查詢,但不能進行復雜的條件查詢。如果輔以Real-Time Search Engine(實時搜索引擎)進行復雜條件檢索、全文檢索,就可以
73、替代并發(fā)性能較低的MySQL等關系型數(shù)據(jù)庫,達到高并發(fā)、高性能,節(jié)省幾十倍服務器數(shù) 量的目的。以MemcacheDB、Tokyo Tyrant為代表的key-value分布式存儲,在上萬并發(fā)連接下,輕松地完成高速查詢。</p><p> 在系統(tǒng)程序設計中“List<String> Dic = new List<String>();”語句聲明了名為Dic的詞庫,在詞庫中我們可以加入我們能夠
74、想到的一切問題與對應的答案,當然我們選取的回答盡量要以機器人的口吻敘述,而且還應該盡量體現(xiàn)程序的娛樂性。</p><p> 例如:“Dic.Add("你好" + "&&" + "你好");”在此語句下,我們輸入“你好”,系統(tǒng)就會根據(jù)我們輸入的“你好”作為key值,在詞庫中查找對應“你好”值的相應的回復。此語句已經(jīng)設定好,如果輸入“你好”
75、,機器人就會回復我們“你好”。其中,后者的“你好”就是key-value中的value值。通過此方法我們就能夠即快速又準確的根據(jù)輸入值查找到回復值。</p><p> 如果系統(tǒng)檢測到用戶輸入的語句中的關鍵值在key中不存在,或者說找不到相應的key值,則提示用戶重新輸入或輸入其他的聊天內(nèi)容。我們可以根據(jù)詞條語句if (input.IndexOf(Dic[i].Substring(0,Dic[i].IndexOf
76、("&&"))) != -1)來實現(xiàn)此功能。</p><p><b> 4.2 程序展示</b></p><p> (1)在聊天對話框中輸入“你好”,聊天機器人就會自動回復“你好”來回應聊天,如下圖所示:</p><p> 圖4.1 開始與機器人聊天</p><p> ?。?)用
77、戶可以像兩個陌生人剛剛見面時一樣,問一下對方叫什么名字,根據(jù)系統(tǒng)的設置,機器人會回答“我叫聊天機器人啦”,如下圖所示:</p><p> 圖4.2 機器人回答自己的名字</p><p> ?。?)當然,用戶也可以詢問機器人的性別,本系統(tǒng)我們設置機器人為女孩,根據(jù)我們的設計,機器人會回答“人家是女孩子啦”,如下圖所示:</p><p> 圖4.3 機器人回答性別問
78、題</p><p> ?。?)可以更深層次的與機器人聊天,比如問“她”有沒有男朋友,機器人就會回答“沒有呢,你能幫我介紹一個嗎?”,這樣的回答會使使用者感覺自己在跟真人聊天一樣,讓用戶有種互動的感覺,如下圖所示:</p><p> 圖4.4 機器人反問問題</p><p><b> 5系統(tǒng)測試與維護</b></p><p
79、> 聊天機器人程序在完成程序設計、投入正常運行之后,就進入了系統(tǒng)運行與維護階段。</p><p><b> 5.1 系統(tǒng)的配置</b></p><p><b> 1、硬件配置要求:</b></p><p> CPU:2GHz以上。 </p><p><b> 內(nèi)
80、存:2GB以上。</b></p><p> 硬盤:250GB以上(可用空間最好在50GB以上)。</p><p><b> 2、軟件配置要求:</b></p><p> WINDOWS Vista/Win7中文版操作系統(tǒng)。</p><p> 本系統(tǒng)運行:首先啟動WINDOWS Vista/Win7,將
81、本系統(tǒng)拷貝到硬盤相應地目錄下,用附加數(shù)據(jù)庫加載上數(shù)據(jù),運行“EXE文件”即可。 </p><p><b> 5.2 系統(tǒng)的維護</b></p><p> 系統(tǒng)維護的目的是保證管理信息系統(tǒng)正常而可靠地運行,并能使系統(tǒng)不斷得到改善和提高,以充分發(fā)揮作用。換言之,系統(tǒng)維護就是為了保證系統(tǒng)中的各個要素隨著環(huán)境的變化始終處于最新的、正確的工作狀態(tài)。系統(tǒng)維護的工作
82、量往往是很大的,其費用大約占整個生命周期的60%,所以我們必須對系統(tǒng)維護給予足夠的重視。</p><p><b> 1、系統(tǒng)維護的內(nèi)容</b></p><p> 按照維護對象的不同,系統(tǒng)維護的內(nèi)容可分為以下幾類:</p><p> ?。?)系統(tǒng)應用程序維護</p><p><b> ?。?)數(shù)據(jù)維護<
83、/b></p><p><b> ?。?)代碼維護</b></p><p><b> ?。?)硬件設備維護</b></p><p><b> 2、系統(tǒng)維護的類型</b></p><p> 系統(tǒng)維護的重點是系統(tǒng)應用軟件的維護工作,按照軟件維護的不同性質(zhì),可以劃分為下面四
84、種類型: </p><p> ?。?)糾錯性維護:診斷和修正系統(tǒng)中遺留的錯誤。</p><p> (2)適應性維護:使系統(tǒng)適用環(huán)境的變化而進行的維護。</p><p> ?。?)完善性維護:為滿足用戶的需求而進行的維護。</p><p> ?。?)預防性維護:為將要發(fā)生的變化或調(diào)整而進行的主動性維護。</p><p&
85、gt; 3、系統(tǒng)維護的組織與管理</p><p> 系統(tǒng)維護工作,首先必須建立一個維護組織,確定進行維護工作所應遵循的原則和規(guī)范化的過程,此外還應建立一套適用于具體系統(tǒng)維護過程的文檔及管理措施,以及進行復審的標準。</p><p><b> 5.3 系統(tǒng)測試</b></p><p> 在C#開發(fā)過程中采用了多種措施保證軟件質(zhì)量,但是實際
86、開發(fā)過程中還是不可避免地會產(chǎn)生差錯,系統(tǒng)中通??赡茈[藏著錯誤和缺陷,示經(jīng)周密測試的系統(tǒng)投入運行,將會造成難以想象的后果,因此系統(tǒng)測試是C#開發(fā)過程中為保證軟件質(zhì)量必須進行的工作。大量統(tǒng)計資料表明,系統(tǒng)測試的工作量往往占C#開發(fā)總工作量的40%以上。因此,我們必須重視測試工作。</p><p> 由于程序中隱藏的缺陷只在特定的環(huán)境下才有可靠顯露,系統(tǒng)缺陷通常是由于對某些特定情況考慮不周造成的。因此測試不是為了表明
87、程序正確;成功的測試也不是沒有發(fā)現(xiàn)錯誤的測試。有意義的軟件測試應該是從“破壞”軟件系統(tǒng)的角度出發(fā),精心設計最有可以暴露程序系統(tǒng)缺陷的測試方案。因此軟件測試的目標應該是以盡可能少的代價和時間找出軟件系統(tǒng)中潛在的錯誤和缺陷。</p><p> 從產(chǎn)品角度看,測試計劃中的測試項目包括軟件結(jié)構(gòu)中的分系統(tǒng)層、子系統(tǒng)層、功能模塊層、程序模塊層中的各類模塊,從測試本身看,分為單元測試,組合測試,確認測試等。測試對象是隨著階段
88、而異的,最基本、最初的測試是單元測試,后面的組合測試、確認測試都是以被測過的模塊作為測試對象的。</p><p> 在具體的測試中,一般應遵循以下原則:由程序設計者之外的人進行測試;測試用例應由兩部分組成:輸入數(shù)據(jù)和預期輸出結(jié)果;應選用不合理的輸入數(shù)據(jù)與非法輸入測試;不僅要檢驗程序是否實現(xiàn)預期功能,還應檢查程序是否做了不應該做的工作;集中測試容易出錯的程序模塊;對程序修改以后,必須重新進行測試。</p&g
89、t;<p> 在開發(fā)本系統(tǒng)時,為了使系統(tǒng)能夠穩(wěn)定運行,對本系統(tǒng)進行了有針對性的全面測試,采取的方式是:</p><p> ?。?)菜單項測試:為了保證每一項下拉菜單能夠正確實現(xiàn)系統(tǒng)設計的功能,我把相關的基礎數(shù)據(jù),基本上全部輸入到本系統(tǒng)中,并對每一個菜單項反復進行了增加、刪除、修改等操作,從而保證了菜單功能的正確實現(xiàn)。</p><p> (2)數(shù)據(jù)跟蹤:完成菜單項測試后,我
90、又對系統(tǒng)內(nèi)的每一個數(shù)據(jù)進行了跟蹤。經(jīng)過實踐證實,說明該功能完全正常,對其它的功能模塊也進行了類似的設置。</p><p> ?。?)綜合測試:在以上測試的基礎上對系統(tǒng)功能進行了整體的測試,依次來檢驗系統(tǒng)功能是否符合系統(tǒng)設計的要求。</p><p><b> 6 結(jié)論</b></p><p> 通過幾個月的努力,聊天機器人技術的研究與實現(xiàn)在指
91、導老師的全心指導下,在同學的積極配合與幫助下,基本功能順利完成。在數(shù)據(jù)庫的開發(fā)方面,我學到了不少關于C#和Visual Studio 2012的知識。開發(fā)時遇到了許多的困難,但是通過自己的努力,還有老師同學們的幫助,最終還是迎刃而解了。</p><p> 在系統(tǒng)的開發(fā)過程中,充分的借鑒了開源社區(qū)的優(yōu)秀代碼段和設計思想,使用面向?qū)ο蟮木幊谭绞脚cB/S 技術結(jié)合,完整的實現(xiàn)了系統(tǒng)的需求。而且使用到了模版和程序分離的
92、模式,對于系統(tǒng)管理員來說,前臺的設計工作將變的更加輕松。而優(yōu)秀的開源數(shù)據(jù)開發(fā)平臺Visual Studio 2012本身所具有的良好性能,對于繁雜而且龐大的數(shù)據(jù)處理有明顯的優(yōu)勢,這就為系統(tǒng)的使用提供了穩(wěn)定性和安全性。</p><p> 然而,作為聊天機器人程序,在數(shù)據(jù)信息管理實現(xiàn)過程中,本身需要有良好的性能來防范可能出現(xiàn)的任何漏洞,對程序代碼本身的安全性要求相當高,從這個方面來看,還需要進一步的工作來完善,在確
93、保功能流程的前提下為用戶提供體驗性好而且可信任的服務。</p><p><b> 參考文獻</b></p><p> [1]《幾種圖像相似性度量的匹配性能比較》---- 陳衛(wèi)兵</p><p> [2]《高清晰圖片監(jiān)控在環(huán)境保護中的應用》----中國安防行業(yè)網(wǎng)</p><p> [3]《 Sub-pixel pr
94、ecision image matching for measuring surface displacements on mass movements using normalized cross-correlation 》-</p><p> [4] 王趾成.軟件工程(第二版).大連理工大學出版社.2008.</p><p> [5] 劉騰紅等.信息系統(tǒng)分析與設計.科學出版社,20
95、06.</p><p> [6] 杜斌,幸利等.軟件設計工程[M].成都:電子科技大學出版社,2005。</p><p> [7] 方睿.實用網(wǎng)絡技術教程[M].成都:四川大學出版社,2003。</p><p> [8] 薛華成.管理信息系統(tǒng).北京:清華大學出版社,1993.</p><p> [9]孔鵬等.C#BUILDER完全自
96、學手冊. 機械工業(yè)出版社 2007.1</p><p> [10]全洪著.申鉉京 千慶姬譯.網(wǎng)絡游戲服務器編程[韓].人民郵電出版社 2006.1 </p><p> [11]蘇羽、王嬡嬡.C#BUILDER網(wǎng)絡游戲建模與實現(xiàn) .北京科海電子出版社 2003.6</p><p> [12]四維科技.沈煒 徐慧.C#BUILDER數(shù)據(jù)庫編程技術.與實例人
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 聊天機器人技術的研究與實現(xiàn)
- 聊天機器人不只會“聊天”
- 移動平臺-智能聊天機器人
- 移動平臺-智能聊天機器人
- 一種網(wǎng)絡聊天機器人的研究與實現(xiàn).pdf
- 智能聊天機器人的關鍵技術研究.pdf
- 基于iOS的旅行智能聊天機器人的設計與實現(xiàn).pdf
- 聊天機器人知識庫自動抽取算法的研究與實現(xiàn).pdf
- 基于ALICE的研究生招生咨詢智能聊天機器人研究與實現(xiàn).pdf
- c_課程設計--智能聊天機器人
- 基于聊天機器人技術的房產(chǎn)導購地理信息門戶研究.pdf
- 基于安卓系統(tǒng)的漢語智能聊天機器人.pdf
- 中文分詞在聊天機器人中的應用研究.pdf
- 湖南藍天機器人科技有限公司
- 弧焊機器人控制技術的研究與實現(xiàn).pdf
- 工業(yè)機器人通信技術研究與實現(xiàn).pdf
- 微博機器人檢測技術的研究與實現(xiàn).pdf
- 管道機器人技術與微管道機器人.pdf
- 家庭安保機器人關鍵技術的研究與實現(xiàn).pdf
- 智能掃地機器人技術的研究與實現(xiàn).pdf
評論
0/150
提交評論