版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
基于機(jī)器學(xué)習(xí)的情緒分析研究——智能模型設(shè)計和實(shí)現(xiàn)摘要互聯(lián)網(wǎng)技術(shù)的迅速發(fā)展使得社交平臺逐漸成為熱點(diǎn)事件中社會情感的樞紐。社會熱點(diǎn)事件的輿論監(jiān)管的其中一個重要環(huán)節(jié)就是能夠準(zhǔn)確分析民眾的社會情緒。本文旨在探索可以基于文本大數(shù)據(jù)徹底分析民眾對熱點(diǎn)事件的社會情緒的模型和方法。先是從社交平臺上借助文本大數(shù)據(jù)、對數(shù)據(jù)進(jìn)行提前處理以及用python自然語言處理包等方法建立能夠分析社會情緒的模型,其次找到最佳的機(jī)器學(xué)習(xí)算法,再次用機(jī)器學(xué)習(xí)的方法對模型進(jìn)行訓(xùn)練,獲得一個情感分類器。最后用熱點(diǎn)事件“冠狀病毒”的真實(shí)數(shù)據(jù)在情感分類器上進(jìn)行社會情緒分析驗證,證明了模型和方法的有效性。
關(guān)鍵詞:網(wǎng)絡(luò)文本大數(shù)據(jù);機(jī)器學(xué)習(xí);情緒分類器;社會情緒分析;Researchonemotionanalysisbasedonmachinelearning——DesignandimplementationofintelligentmodelAbstractTherapiddevelopmentofInternettechnologymakessocialplatformsgraduallybecomethehubofsocialemotioninhotevents.Oneoftheimportantaspectsofpublicopinionsupervisionofsocialhoteventsistheabilitytoaccuratelyanalyzethepublic'ssocialsentiment.Thispaperaimstoexplorethemodelandmethodthatcanthoroughlyanalysethepeople’ssocialemotionsofhoteventsbasedontextbigdata.Firstly,thewriterbuiltupthemodelofsocialemotionsanalysisbyvirtueoftextbigdatafromthesocialplatforms,datapreprocessingandtheuseofPythonNaturalLangugeToolkitandsoon.Secondly,utilizedthebestmachinelearningalgorithmandthentrainedthemodelbymachinelearningmethodtoobtainanemotionclassifier.Finally,therealdataofthehotevent"coronavirus"wasusedtoanalyzethesocialemotionsontheemotionclassifier,whichprovedthevalidityofthemodelandmethod.Keywords:Webtextbigdata、machinelearning、sentimentclassifier、socialsentimentanalysis;目錄TOC\o"1-3"\h\u10113誠信承諾書 前言:1.1設(shè)計目的及意義近來,社交媒體和電子商務(wù)平臺發(fā)展迅速,Twitter、微博、MSN、微信等社交網(wǎng)絡(luò)正逐漸地改變著人們的生活,越來越多的人習(xí)慣于通過網(wǎng)絡(luò)平臺表達(dá)自己的態(tài)度和情感,這些網(wǎng)絡(luò)文本是客戶流露的真實(shí)情感。對網(wǎng)絡(luò)文本大數(shù)據(jù)熱門事件的情緒進(jìn)行分析可以使人們獲得更多關(guān)于內(nèi)心世界的知識,因此,從這些文本信息中自動準(zhǔn)確的識別客戶的情感類別,對政府輿情監(jiān)控、企業(yè)管理與決策來說是一個很大的支持,它也成為學(xué)術(shù)界近來持續(xù)關(guān)注的研究熱點(diǎn),同時極大地促進(jìn)了情緒分析技術(shù)的發(fā)展。1.2本課題國內(nèi)外現(xiàn)狀及存在問題文本情感分析也可以說是挖掘文本意見的方法。簡而言之,它是分析,處理,總結(jié)和推斷具有情感色彩的主觀文本的過程[1]。目前海內(nèi)外關(guān)于文本情緒分析研究的方向主要有兩個:一個是判斷主觀信息的細(xì)粒度,另一個是判斷文本的主客觀性。前者強(qiáng)調(diào)將情感詞作為中心去分析文本級的情緒傾向,而文本的情緒傾向是通過貶值情感詞的線性加權(quán)值來實(shí)現(xiàn)的。熊德蘭等人[2]基于HowNet語義詞典中詞匯語義相似度的計算方法。意在基于語義詞典,充分想到詞語組成在一起之后語義可能改變,直接影響到情感褒貶判斷的偏向結(jié)果,于是用各個詞語義進(jìn)行權(quán)重計算結(jié)果來判斷從而避免受影響。該方式基于語義詞集,能很精確地預(yù)測情感傾向,但缺點(diǎn)是操作起來復(fù)雜且在很大程度上取決于詞匯層次分類算法的精確度。則此方法顯然對大量的文本數(shù)據(jù)處理是不合適。為了處理大量數(shù)據(jù),研究人員介紹了用于情感分析的機(jī)器學(xué)習(xí)方法,例如K最近鄰,最大熵模型,樸素貝葉斯和支持向量機(jī)(SVM)方法[3]。雖然以語義詞集為基礎(chǔ)的語義加權(quán)分類效果比機(jī)器學(xué)習(xí)方法較好,但勝在后者能夠更輕易地去分析處理大量的文本數(shù)據(jù)。例如徐軍等人[4]利用機(jī)器學(xué)習(xí)方法對新聞評論進(jìn)行情感分類,在最理想的數(shù)據(jù)集上分類準(zhǔn)確率可以達(dá)到90%,然而這種方法缺乏語義分析,容易產(chǎn)生向量空間模型數(shù)據(jù)稀疏問題,對于中文文本處理中普遍存在的一詞多義和多詞一義問題也不能解決。聞彬等人[5]在情感詞識別中引人情感語義概念,基于語義理解來進(jìn)行文本情感分類,可在一定程度上緩解一詞多義和多詞一義引起的分類準(zhǔn)確率不高的問題,它的不足之處在于只考慮到詞語語義層副詞的出現(xiàn)規(guī)律對詞語語義的作用,忽略了整個文本語境對詞語語義的影響。一些研究者[6]通過已有文本規(guī)則,充分考慮用文本的語法結(jié)構(gòu)去預(yù)測文本情緒傾向。但是不得不說該方式的實(shí)用性差、工藝復(fù)雜且難以推廣。也有部分研究者嘗試借助非標(biāo)注樣本不斷訓(xùn)練分類器的方法來提高半監(jiān)督學(xué)習(xí)方法的情感分類準(zhǔn)確率,實(shí)驗證明該方法是有效的[7]。還有謝麗星等[8]提出了一種基于SVM的層次結(jié)構(gòu)多策略中文微博情感分析方法;劉寶芹等[9]在將情緒類別組織成三層樹狀結(jié)構(gòu)后,采用樸素貝葉斯分類模型對中文微博進(jìn)行多層次的情緒分析;歐陽純萍等[10]提出多策略中文微博細(xì)粒度情緒分析方法,采用SVM和KNN算法對微博進(jìn)行細(xì)粒度情緒分析;雷龍艷等[11]在對微博進(jìn)行文本特征表示的基礎(chǔ)上,采用SVN和KNN算法對微博進(jìn)行細(xì)粒度情緒分析。等等這些國內(nèi)外的文本情感分類方法研究,對本設(shè)計的方法選擇與優(yōu)化都提供了一定的幫助。1.3本設(shè)計應(yīng)解決的主要問題接下來Twitter數(shù)據(jù)將作為我們今天的實(shí)戰(zhàn)項目用于情緒分析。由于采用了機(jī)器學(xué)習(xí),我們主要解決以下問題:從Twitter上獲取適量文本數(shù)據(jù);對文本數(shù)據(jù)進(jìn)行必要的預(yù)處理;標(biāo)住類標(biāo)簽,分割開發(fā)集和測試集數(shù)據(jù);對預(yù)處理后的數(shù)據(jù)進(jìn)行特征提取與向量加權(quán);訓(xùn)練模型,調(diào)整參數(shù),評估模型;用測試集進(jìn)行測試驗證情緒分析的準(zhǔn)確率;2設(shè)計過程2.1設(shè)計簡要流程訓(xùn)練文本集訓(xùn)練文本集測試文本集文本預(yù)處理選舉特征詞集情感詞典向量空間表示SVM分類器情感分類結(jié)果訓(xùn)練SVM分類器文本預(yù)處理向量空間表示分類參數(shù)TF-IDF特征降維圖2.1-1_設(shè)計簡要流程圖2.2文本數(shù)據(jù)獲取2.2.1創(chuàng)建APP首先通過已有的twitter賬號訪問推特官方網(wǎng)站,想要抓取數(shù)據(jù)就要創(chuàng)建app去訪問twitter的API。創(chuàng)建app時,必要填寫信息為“name,Description,website”,其中name為APP的名稱;description是對自己APP的描述;website自己有網(wǎng)站寫自己的網(wǎng)站,沒有就寫一個符合格式的網(wǎng)站就行。并不需要進(jìn)一步的驗證,app中的AccessToken、Access、TokenSecretConsumerKey(APIKey)和ConsumerSecret(APISecret)這四個開發(fā)者身份認(rèn)證令牌參數(shù)才是我們的目標(biāo),也是獲取數(shù)據(jù)的基本條件。如果需要獲取大量數(shù)據(jù),可以申請多個app,因為單個的爬取次數(shù)和數(shù)量均有限制。2.2.2調(diào)配使用API之所以選擇Twitter作為實(shí)戰(zhàn)的文本數(shù)據(jù)是因為它提供很多類型的API,其中RestAPI與StreamingAPI是最為常見的。前者是經(jīng)常被用到的類型,而StreamingAPI可以用于追蹤想要了解的用戶或事件。下面介紹一下RESTAPI中有爬取意義的幾個API:GETstatuses/usertimeline:返回一個用戶發(fā)的推文。注意twitter里回復(fù)也相當(dāng)于發(fā)推文。GETfriends/ids:返回一個用戶的followees。GETfollowers/ids:返回一個用戶的followers。GETusers/show:返回一個用戶的信息。接下來,通過使用twitterapi進(jìn)行數(shù)據(jù)抓取,目前的twitterapi有很多python語言版本,本設(shè)計將會用到的是tweepy。安裝tweepy庫,只需要在cmd中輸入pipinstalltweepy命令即可。2.2.3開始程序編輯Twitter平臺不僅給以了我們爬取數(shù)據(jù)所用到的API接口,并且還攜帶了供我們寫程序代碼參考所用到的Tweepy庫。最后將獲取到的數(shù)據(jù)將保存到csv格式文件中,獲取文本數(shù)據(jù)程序代碼如下:2.3數(shù)據(jù)預(yù)處理2.3.1句柄的刪除句柄(@user)攜帶是每個推特用戶得以批準(zhǔn)的一種方式,所以tweets文本數(shù)據(jù)中有的大量twitter句柄。而這個句柄其實(shí)沒有什么信息含量,因此我們刪除所有這些twitter句柄。為了省去不必要的麻煩,最好將測試集跟訓(xùn)練集都一齊處理掉。說到刪除tweet中用不到的文本模式,首先我們需要定義一個函數(shù),輸入兩個參數(shù),一個是文本原始字符串,另一個是字符串中我們想要刪除的文本模式。用該函數(shù)進(jìn)行“@user”模式的刪除。最后,創(chuàng)建一個新的列名為processed_tweet,用于存放經(jīng)過清理和處理的tweet。程序代碼如下:2.3.2刪除標(biāo)點(diǎn)、數(shù)字和特殊字符標(biāo)點(diǎn)符號、數(shù)字和特殊字符對一般的文本處理沒什么幫助。就像twitter句柄一樣需要從文本中刪除掉它們,用空格替換除字符和標(biāo)簽的全部內(nèi)容。處理程序代碼如下:2.3.3處理表情符號將表情符號轉(zhuǎn)化為情緒表達(dá),分別為Positive和negative??梢愿又庇^的判斷文本的情緒傾向,轉(zhuǎn)化代碼如下:2.3.4詞干提取由于英文表達(dá)中的單詞大多帶有后綴,如(“ing”、“l(fā)y”、“er”、“es”、“s”等)對單詞沒有情緒改變的后綴。舉個例子,“fly”、“flyer”、“flying”,其中“flyer”和“flying”是單詞“fly”的不同變體。我們需要從一個單詞中剝離后綴,提取出對情緒分類有用的詞干信息,提取程序代碼如下:2.4標(biāo)注類標(biāo)簽在經(jīng)過預(yù)處理后的的數(shù)據(jù),分別劃分為訓(xùn)練以及測試文本集,訓(xùn)練集的數(shù)額要遠(yuǎn)大于測試集的數(shù)額。本設(shè)計總獲取約一百萬個文本數(shù)據(jù),其中測試集數(shù)量約為百分之九十,然后按照文本的情感表達(dá)給它們分類為消極negative(標(biāo)注為0)和積極Positive(標(biāo)注為1)的標(biāo)簽,測試集用于后續(xù)的驗證,不需要標(biāo)注。標(biāo)注后的效果圖如下:圖2.4-1_類標(biāo)注效果圖2.5分詞由于在特征提取前,需要并將這些詞用作向量來表示文本,即將所有訓(xùn)練文檔進(jìn)行分詞。舉個例子:在情感分類問題中,選擇特征可以基于“詞”這個層次,例如“Thistweetisexcellent”,我給他標(biāo)注成“Positive”的類標(biāo)簽。里面有4個詞,分別為“This”、“tweet”、“is”、“excellent”。意思是將這4個詞全部作為了分類特征詞,那么包含這個詞的文本就會被分類為“積極”。同理,對上面提及的那句文本,還能選擇雙詞組合(Bigrams)。這種方法就是將“Thistweet”,“tweetis”,“isexcellent”這種兩兩搭配作為分類特征。本設(shè)計將用到這兩種特征選擇作為分詞方式進(jìn)行選擇,分詞程序代碼如下:2.6特征提取機(jī)器學(xué)習(xí)算法并不能直接使用原始數(shù)據(jù),這就需要我們對分詞后的的詞語集合(原始數(shù)據(jù))做一個特征提取處理,然后把原始數(shù)據(jù)轉(zhuǎn)變?yōu)槟軌虮粰C(jī)器學(xué)習(xí)算法認(rèn)識的數(shù)量特征(固定長度的向量表示)?;?.5提到的兩種特征選擇,可以用到N-Gram,一種基于概率去判別的模型的算法,該語言模型的根本原理就是將文本內(nèi)容依據(jù)不同的字節(jié)大小N去截取想要大小的片段序列。進(jìn)行過濾后對所有的字節(jié)片段(gram)所浮出的頻度分別計算,最后合成向量特征空間(gram列表)。其中列表里面不同的gram代表著不同的特征向量維度。當(dāng)n=1時,為一元模型(unigrammodel),對應(yīng)公式如下:(式2.6-1)(式2.6-1)當(dāng)n=2時,為二元模型(bigrammodel),對應(yīng)公式如下:(式2.6-2))(式2.6-2))本設(shè)計在模型中分別創(chuàng)建了一元模型和二元模型特征向量列表,然后通過使用上面提到的兩種特征提取方式對數(shù)據(jù)集中所有的單詞在語料中出現(xiàn)的頻率,對比這兩種特征提取的測試效果,最終選擇最佳的特征特征向量維度,將數(shù)據(jù)以這個字節(jié)長度添加到特征列向量表中。實(shí)踐流程和程序設(shè)計如下:文檔信息文檔信息特征向量列表語段序列g(shù)ram頻度列表粗切分N-gram切分過濾圖2.6-1實(shí)踐流程圖2.7特征降維與TF-IDF特征降維顯然意味著減少特征維數(shù)。這有兩個不同含義。一是可以減少特征數(shù)量以加快算法計算。另一個是,如果使用某種方法來選擇信息豐富的特征,則可以減少噪聲并有效地提高分類的準(zhǔn)確性。何為信息量豐富?,可以回顧一下上面的例子:“Thistweetisexcellent”,很明顯,其實(shí)不需要把“This”、“tweet”、“is”、“excellent”這4個都當(dāng)做特征,因為“excellent”這一個詞,或者“isexcellent”這樣一個雙詞搭配就能夠判定了這個文本屬于“積極”的。這就足夠說明了“excellent”是一個信息量非常豐富的詞。下面將通過一定的統(tǒng)計方法找到信息量豐富的特征。TF-IDF(TermFrequency-InverseDocumentFrequency),是在分類問題中用于統(tǒng)計的一種方法。用于評估一個字詞在文本集或語義庫中的某個文本的影響度。字詞在文本中出現(xiàn)的次數(shù)越多嗎,其影響度越大。相反,字詞在語義庫中出現(xiàn)的頻率越高,該詞的影響度就越低。TF-IDF由TF和IDF這兩部分組成。詞頻(TermFrequency,TF)是計算文本中某個特定詞出現(xiàn)的多少次。同一個詞不管它重不重要,在長文本較于短文本出現(xiàn)的次數(shù)可能偏高。為了防止它的偏向,這個數(shù)值通常需要除以文章總詞數(shù)進(jìn)行歸一化,表達(dá)式如下:(式2.7-1)(式2.7-1)但是需要考慮的問題是:一些出現(xiàn)頻率較高的詞通常對于情緒判斷沒有啥作用,反而一些較少出現(xiàn)的詞卻能表達(dá)出文本基本情緒。例如在大多數(shù)文本都會用到的"to"的詞頻就很高,但是其對情緒分類的作用卻比不上詞頻低的"Study"和“Sing”等詞。因此權(quán)重的計算不能只用到TF,必須考慮到:一個詞要跟其分類情緒的的能力成正比,能力越強(qiáng),權(quán)重越大,反之則權(quán)重越小。要找到一些詞只是很少地出現(xiàn)在所有統(tǒng)計文本中的其中幾個,那么這些詞對文本情緒表達(dá)作用就很大。因此需要用到IDF來完成此工作,將這些詞的權(quán)重設(shè)計的更大去反映出這些詞的重要性,進(jìn)而改正單純使用詞頻表示的特征值。逆向文件頻率(InverseDocumentFrequency,IDF)可用于去尋找具有優(yōu)秀分類能力的詞條,根據(jù)詞條出現(xiàn)在的文檔數(shù)較少,其逆向文件頻率就越大來判別。以下公式就可計算出某一特定詞語的IDF:(式2.7-2)(式2.7-2)為了使每一個IDF值都有意義,應(yīng)該避免一個極端的情況,就是某個詞在全部的文本中都出現(xiàn),其IDF值為0就失去了意義。因此我們在使用IDF時需要做一些平滑,如對上式的分母加1,就是為了防止分母等于0,使得沒有出現(xiàn)在語料庫中的詞也得到一個合理的IDF值。TF-IDF重在過濾掉常見的詞,留下信息量豐富的詞。想要輸出權(quán)重的TF-IDF,這個詞就需要滿足較多的出現(xiàn)在一個特定文本,較少的出現(xiàn)在文本集的文本中。理解了IDF的定義,接下來就可以推出計算某一個詞的TF-IDF值的公式了:(式2.7-3)(式2.7-3)即:(式2.7-4)(式2.7-4)式中的表示某字詞在句子中出現(xiàn)的概率,其中N為訓(xùn)練集文本數(shù)量,表示訓(xùn)練集中包含特征詞的文本數(shù)。根據(jù)TF-IDF公式表示,某特征詞出現(xiàn)在一個文本集的次數(shù)越多,其其辨別能力越小,權(quán)重值越低;而在一個文本中出現(xiàn)的概率越高,可區(qū)分性就越大,權(quán)重也就越大。2.8搭建模型2.8.1以機(jī)器學(xué)習(xí)為基礎(chǔ)的文本情感分析方法首先對已經(jīng)標(biāo)注好的文本數(shù)據(jù)進(jìn)行特征處理,然后對模型進(jìn)行訓(xùn)練以進(jìn)行監(jiān)督學(xué)習(xí)。訓(xùn)練完好的模型最后用于預(yù)測新文本測試集信息的情感極性。簡要操作流程如下圖所示:已經(jīng)標(biāo)住的文本數(shù)據(jù)已經(jīng)標(biāo)住的文本數(shù)據(jù)特征提取模型訓(xùn)練極性標(biāo)簽機(jī)器學(xué)習(xí)訓(xùn)練未標(biāo)住的句子特征提取取情感極性預(yù)測圖2.8-1_簡要操作流程圖機(jī)器學(xué)習(xí)依照分類算法的不同,分為國內(nèi)外研究現(xiàn)狀中使用的三種方法:樸素貝葉斯、最大熵和支持向量機(jī)(SVM)。相對于前兩者,由vapnik提出的支持向量機(jī)(SVM),被認(rèn)為是最好的情緒分析方法,該方法通過尋找最小的結(jié)構(gòu)化風(fēng)險,降低泛化錯誤率和計算開銷,并且實(shí)現(xiàn)了經(jīng)驗危險和置信面積的最小化,最重要的是對于訓(xùn)練集較小的文本也可以獲得良好的統(tǒng)計規(guī)律和情感分析效果。高維數(shù)據(jù)使用支持向量機(jī)(SVM)的處理效果很不錯,想要很好的使用該方法,就要做好參數(shù)調(diào)節(jié)和核函數(shù)的挑選。2.8.2支持向量機(jī)SVM支持向量機(jī)(SupportVectorMachine,SVM)算法用于文本分類經(jīng)常被稱贊。該機(jī)器學(xué)習(xí)方法主要基于統(tǒng)計學(xué)習(xí)。該算法將數(shù)據(jù)集進(jìn)行壓縮,轉(zhuǎn)化為向量集合,以降低結(jié)構(gòu)風(fēng)險,學(xué)習(xí)得到?jīng)Q策函數(shù)的分類技術(shù)。該技術(shù)能實(shí)現(xiàn)文本向量化,僅需要一定的文本數(shù)據(jù)就能被抽象得到訓(xùn)練集,解決了過去需要無限大樣本的問題,提高了分類的準(zhǔn)確性。使用支持向量機(jī)(SVM)算法,就能用有限的文本數(shù)據(jù)獲得最好的推廣能力,是因為它在模型的復(fù)雜性與學(xué)習(xí)能力之間尋找最好折中點(diǎn)實(shí)現(xiàn)的。下面說說支持向量機(jī)算法的贊點(diǎn):(1)能匹配現(xiàn)有數(shù)額的的文本數(shù)據(jù),找到最好值點(diǎn),充分照顧到有限數(shù)據(jù)的情況。(2)支持向量機(jī)算法在特征向量稀少的空間和特征向量密集的空間都能很好的執(zhí)行任務(wù),這是其他一些分類算法不能做到的。(3)支持向量機(jī)算法能幫你找到權(quán)重的特征向量,該工具的優(yōu)秀學(xué)習(xí)能力體現(xiàn)了它在文本分類中的巨大潛能。支持向量機(jī)(SVM)是一種二向線性分類器,線性可分和線性不可分,用于監(jiān)督學(xué)習(xí)。線性可分相對簡單,而線性不可分離則想到SVM,它能把原始數(shù)據(jù)映射到線性可分新界面,經(jīng)過投影,可在原始界面獲得劃分邊界。SVM是一種經(jīng)常用于分類問題的數(shù)學(xué)模型。它的主要思想是構(gòu)造一個多維超平面,對要分類的特征值進(jìn)行分類,使用訓(xùn)練示例數(shù)據(jù)向量將其劃分為相對應(yīng)的類別,然后找到該平面的邊界最大化。wwyx圖2.8-2_SVM超平面分隔圖上文說到SVM針對非線性的情況,那它是怎么做到的呢?而核函數(shù)(Kernel)正是它解決這個問題的秘方,核函數(shù)通過在較于原本數(shù)據(jù)空間更高維的特征空間去看線性不可分的分類問題,從而得到了很好的分界面。核函數(shù)的精髓如下:在我們的學(xué)習(xí)研究過程中,經(jīng)常碰到各種線性不可分的情況。而我們常用的方法就是將原始數(shù)據(jù)特征映射到高維的象征空間里,(如上圖2.8-2_SVM超平面分割圖所示)這樣是為了使相關(guān)特征被分開達(dá)到分類的目的。以此類推,我們將所有碰到的線性不可分樣例,都像上面所說的一律映射到高維空間。那該維度豈不是高到嚇人,那改如何呢?接下來,核函數(shù)的出現(xiàn)意義不僅在于它實(shí)現(xiàn)特征從低到高的空間維度變換,還能將數(shù)據(jù)在低維空間上計算效果展現(xiàn)在高維空間中,防止了②中說到的復(fù)雜高維計算。接下來討論核函數(shù)的選擇,LinearSVC和使用SVC且在kerne中引入linear是本設(shè)計需要考慮的使用結(jié)果一樣的兩種選擇。其中SVC在任意核中可用,而LinearSVC只能運(yùn)用于線性核,因此SVC的計算較復(fù)雜。這使得如果你決定使用線性SVM時,選擇用LinearSVC會比另一個的操作速度快很多。本設(shè)計就是用到了LinearSVC,程序片段如下:SVC屬于本設(shè)計所用到的sklearn中用于分類的SVM模型,SVR是另外提供的回歸模型用于預(yù)測。調(diào)用這兩種模型時的參數(shù)設(shè)置相似,簡單介紹一下SVC如何設(shè)置參數(shù)。上面提及到的SVC()參數(shù),其中的C是懲罰系數(shù),可以解釋為準(zhǔn)許分類出錯的權(quán)重(C越大,越不準(zhǔn)許出錯),越小,則準(zhǔn)許少量劃分出錯。2.9模型評估在使用人工智能算法時,經(jīng)過算法實(shí)現(xiàn)和模型訓(xùn)練后,可以對訓(xùn)練模型進(jìn)行評估從而檢查算法的性能好不好,以便進(jìn)行優(yōu)化得到想要的準(zhǔn)確率。下面我們將用涉及到精確率(Precision)、召回率(Recall)和準(zhǔn)確率(Accuracy)這幾個判斷標(biāo)準(zhǔn)的F1-score來進(jìn)行模型評估:F1-score的定義:F1分?jǐn)?shù)(F1-score)經(jīng)常被用于衡量一些基于機(jī)器學(xué)習(xí)的兩個以上分類問題比賽結(jié)果的判定標(biāo)準(zhǔn)。它是召回率和精確率的倒數(shù)平均數(shù),值最大時等于1,最小時等于0。其表達(dá)式如下:(式2.8-1)(式2.8-1)F1-score的計算:1.首先給以下變量定義概念:TruePositive(TP):推測結(jié)果標(biāo)準(zhǔn);FalsePositive(FP):錯將別的標(biāo)簽為推測本類;TrueNegative(TN):推測結(jié)果標(biāo)準(zhǔn);FalseNegative(FN):錯將本類歸類為別類標(biāo)簽;2.通過步驟1中的值算出的精準(zhǔn)度和召回率。精準(zhǔn)度(precision):指被分類器推測為正樣本占正例總數(shù)的比值。(式2.8-2)(式2.8-2)召回率(recall):代表被推測為正樣本占總正樣本的比值。(式2.8-3)(式2.8-3)準(zhǔn)確率(accuracy):指的是分類器對總樣本推測正確的比值。(式2.8-4))(式2.8-4))3.通過步驟2計算結(jié)果得出各個類別下的f1-score,下面為計算公式:(式2.8-5)(式2.8-5)各個類別下的F1-score可通過步驟3計算得的值,從而測評出分類器各個指標(biāo)結(jié)果,公式如下:(式2.8-6)(式2.8-6)f1_score函數(shù)在程序中的運(yùn)用為了便捷使用f1_score函數(shù)可以直接在程序中加載sklearn包。分類器推段獲取average
:string,[None,‘binary’(default),
‘macro’,
‘weighted’]類別,挑選好參數(shù)可事半功倍。當(dāng)在意類別不穩(wěn)定時,使用‘binary’參數(shù)來解決二分類問題;在考慮類別的不平衡性前提下,用‘weighted’參數(shù)能夠算出類別的權(quán)重值;相反在不在意類別不穩(wěn)定時,使用‘macro’參數(shù),可以計算宏平均。相關(guān)代碼如下: 3設(shè)計總結(jié)SVM之所以被廣泛運(yùn)用于處理分類問題,是因為它具備了較強(qiáng)的泛化和分類能力。一般有關(guān)SVM的分類方法很看重情感詞,并將權(quán)重的情感詞提取用作特征向量。而且存在的問題可分為以下三方面:(1)樣本數(shù)據(jù)稀少問題。情感詞集不能覆蓋全部文檔;(2)一詞多種含義問題。由于一個情感詞有時可以理解為多個語義,而造成的不同程度的情感偏差;(3)多個不同詞表達(dá)的是一個語義問題。相同的的情感可以用許多的情感詞去描述。當(dāng)傳統(tǒng)SVM方法遇到以上提及的3種情況時,其分類性能就會下降。由上述可知情感詞與文檔語義關(guān)系在這3個方面完全得以體現(xiàn)了。因此想要提高分類的精度,就需要考慮基于語義特征去分類,從而壯大情感詞的分類規(guī)模。為了解決傳統(tǒng)分類算法存在的上述問題,想到采用挖掘語義分類的方法,把情感詞典和將要處理的文本結(jié)合起來,通過測量詞與文本的語義差距用作特征向量。通過結(jié)合尚未發(fā)現(xiàn)的語義分析和SVM避開上文那3個問題。實(shí)驗展示本文用到的方法在分類精確度真的有所提升。本文采用基于支持向量機(jī)(SVM)分類的機(jī)器學(xué)習(xí)方法,首先選擇特征向量,將twitter的信息量豐富的情感詞、表情符號等當(dāng)做其特征向量,通過使用訓(xùn)練數(shù)據(jù)訓(xùn)練分類模型,得到一個情感分類器,最后對測試文本集進(jìn)行劃分。本設(shè)計用到了依照民眾在twitter上的語言表達(dá)特色和語言表情規(guī)則,同時結(jié)合支持向量機(jī)(SVM)方法并完善SVM方法中的缺點(diǎn),更大程度地優(yōu)化其分類效果,提高分類結(jié)果的可靠性。從分類器對測試數(shù)據(jù)進(jìn)行情緒預(yù)測的結(jié)果可知,最后的實(shí)驗數(shù)據(jù)不錯,其準(zhǔn)確率和召回率都偏小,這更表明文本情緒分析在未來的研究中還可以走的更遠(yuǎn)。最后總結(jié)一下文本分類的特殊性,不管是使用SVM還是其他工具分類時,都要記得考慮以下幾方面:在文本預(yù)處理過程中執(zhí)行的很多步驟對最終使用分類工具時都會產(chǎn)生一定影響。文本特征向量的選擇極其重要,因為即使你使用的分類器很強(qiáng)大,你的文本特征選擇的不好,最后也未必能訓(xùn)練得到效果好的分類結(jié)果。不好的文本特征向量,給你多好的參數(shù)你都很難去訓(xùn)練提升優(yōu)化你的分類器,一個不好的分類器,很容易在實(shí)際測試中出現(xiàn)錯誤分類的情況。在文本預(yù)處理和使用分類工具進(jìn)行訓(xùn)練時,你所選擇的訓(xùn)練集本和測試集數(shù)據(jù)文本都會對其效果產(chǎn)生影響。本設(shè)計的后續(xù)提升感想:在自然語言處理方面很難深度學(xué)習(xí)的優(yōu)勢更為凸顯,深度學(xué)習(xí)的方法能夠自動進(jìn)行特征提取、自主學(xué)習(xí)修正輸出、能很好地處理非線性復(fù)等雜數(shù)據(jù)。正成為眾多學(xué)者對于情緒分類的熱點(diǎn)研究對象,深度學(xué)習(xí)的方法將使文本情感分析研究走上更高的階層,實(shí)現(xiàn)更好的分類的效果。4參考文獻(xiàn)SubasicP,HuettnerA.Affectanalysisoftextusingfuzzysemantictyping[J].IEEETransactionsonFuzzySystems,2001,9(4):483-496熊德蘭,程菊明,田勝利.基于HowNet的句子褒貶傾向性研究[J].計算機(jī)工程與應(yīng)用,2008,44(22):143—145唐慧豐,譚松波,程學(xué)旗.基于監(jiān)督學(xué)習(xí)的中文情感分類技術(shù)比較研究[J].中文信息學(xué)報,2007,21(6):88—94徐軍,丁宇新,王曉龍.使用機(jī)器學(xué)習(xí)方法進(jìn)行新聞的情感自動分類[J].中文信息學(xué)報,2007,21(6):95—100聞彬,何婷婷,羅樂,等.基于語義理解的文本情感分類方法研究[J].計算機(jī)科學(xué),2010,37(6):261—264段建勇,謝宇超,張梅.基于句法語義的網(wǎng)絡(luò)輿論情感傾向性評價技術(shù)研究IJ].情報雜志,2012,31(1):147—150高偉,王中卿,李壽山.基于集成學(xué)習(xí)的半監(jiān)督情感分類方法研究[J].中文信息學(xué)報,2013,27(3):120—126謝麗星,周明,孫茂松.基于層次結(jié)構(gòu)的多策略中文微博情感分析和特征抽取[J].中文信息學(xué)報,2012,26(1):73—83劉寶芹,牛耘.多層次中文微博情緒分析[J].計算機(jī)技術(shù)與發(fā)展2015,25(11):23—26歐陽純萍,陽小華,雷龍艷,等.多策略中文微博細(xì)粒度情緒分析研究[J].北京大學(xué)學(xué)報(自然科學(xué)版),2014,50(1):67—72雷龍艷.中文微博細(xì)粒度情緒識別研究[D].衡陽:南華大學(xué),20145致謝:歷時半載,從論文選題到搜集資料,從開題報告、寫初稿到反復(fù)修改,期間經(jīng)歷了喜悅、聒噪、痛苦和彷徨,在寫作論文的過程中心情是如此復(fù)雜。不積跬步何以至千里,本設(shè)計能夠順利的完成,也歸功于各位任課老師的認(rèn)真負(fù)責(zé),使我能夠很好的掌握和運(yùn)用專業(yè)知識,并在設(shè)計中得以體現(xiàn)。正是有了他們的悉心幫忙和支持,才使我的畢業(yè)論文順利完成,在此向我的任課老師以及信息工程學(xué)院的所有老師表示由衷的謝意,感謝他們四年來的辛勤栽培。如今,伴隨著這篇畢業(yè)論文的最終成稿,復(fù)雜的心情煙消云散,自己甚至還有一點(diǎn)成就感。最后,我要感謝四年的大學(xué)生活,感謝北京理工大學(xué)珠海學(xué)院以及我的家人和那些永遠(yuǎn)也不能忘記的朋友,他們的支持與情感,是我永遠(yuǎn)的財富。6附錄6.1數(shù)據(jù)預(yù)處理程序代碼#
-*-
coding:
utf-8
-*
import
re
import
sys
from
utils
import
write_status
from
nltk.stem.porter
import
PorterStemmer
#處理單詞句子
def
preprocess_word(word):
word
=
word.strip('\'"?!,.():;')
word
=
re.sub(r'(.)\1+',
r'\1\1',
word)
word
=
re.sub(r'(-|\')',
'',
word)
return
word
def
is_valid_word(word):
return
(re.search(r'^[a-zA-Z][a-z0-9A-Z\._]*$',
word)
is
not
None)
def
handle_emojis(tweet):
tweet
=
re.sub(r'(:\s?\)|:-\)|\(\s?:|\(-:|:\'\))',
'
EMO_POS
',
tweet)
tweet
=
re.sub(r'(:\s?D|:-D|x-?D|X-?D)',
'
EMO_POS
',
tweet)
tweet
=
re.sub(r'(<3|:\*)',
'
EMO_POS
',
tweet)
tweet
=
re.sub(r'(;-?\)|;-?D|\(-?;)',
'
EMO_POS
',
tweet)
tweet
=
re.sub(r'(:\s?\(|:-\(|\)\s?:|\)-:)',
'
EMO_NEG
',
tweet)
tweet
=
re.sub(r'(:,\(|:\'\(|:"\()',
'
EMO_NEG
',
tweet)
return
tweet
def
preprocess_tweet(tweet):
processed_tweet
=
[]
tweet
=
tweet.lower()
tweet
=
re.sub(r'((www\.[\S]+)|(https?://[\S]+))',
'
URL
',
tweet)
tweet
=
re.sub(r'@[\S]+',
'USER_MENTION',
tweet)
tweet
=
re.sub(r'#(\S+)',
r'
\1
',
tweet)
tweet
=
re.sub(r'\brt\b',
'',
tweet)
tweet
=
re.sub(r'\.{2,}',
'
',
tweet)
tweet
=
tweet.strip('
"\'')
tweet
=
handle_emojis(tweet)
tweet
=
re.sub(r'\s+',
'
',
tweet)
words
=
tweet.split()
for
word
in
words:
word
=
preprocess_word(word)
if
is_valid_word(word):
if
use_stemmer:
word
=
str(porter_stemmer.stem(word))
processed_tweet.append(word)
return
'
'.join(processed_tweet)
def
preprocess_csv(csv_file_name,
processed_file_name,
test_file=True):
save_to_file
=
open(processed_file_name,
'w'
,
encoding='UTF-8')
with
open(csv_file_name,
'r'
,
encoding='UTF-8')
as
csv:
lines
=
csv.readlines()
total
=
len(lines)
for
i,
line
in
enumerate(lines):
tweet_id
=
line[:line.find(',')]
if
not
test_file:
line
=
line[1
+
line.find(','):]
positive
=
int(line[:line.find(',')])
line
=
line[1
+
line.find(','):]
tweet
=
line
processed_tweet
=
preprocess_tweet(tweet)
if
not
test_file:
save_to_file.write('%s,%d,%s\n'
%
(tweet_id,
positive,
processed_tweet))
else:
save_to_file.write('%s,%s\n'
%
(tweet_id,
processed_tweet))
write_status(i
+
1,
total)
save_to_file.close()
('\nSaved
processed
tweets
to(將已處理的推文保存到):
%s'
%
processed_file_name)
return
processed_file_name
if
__name__
==
'__main__':
if
len(sys.argv)
!=
2:
('請按這樣的格式輸入:
python3
preprocess.py
train.csv
')
exit()
use_stemmer
=
False
csv_file_name
=
sys.argv[1]
processed_file_name
=
sys.argv[1][:-4]
+
'-processed.csv'
if
use_stemmer:
porter_stemmer
=
PorterStemmer()
processed_file_name
=
sys.argv[1][:-4]
+
'-processed-stemmed.csv'
preprocess_csv(csv_file_name,
processed_file_name,
test_file=True,)
6.2模型程序代碼from
sklearn
import
svm
import
utils
import
random
import
numpy
as
np
from
scipy.sparse
import
lil_matrix
from
sklearn.feature_extraction.text
import
TfidfTransformer
from
sklearn.metrics
import
accuracy_score
#調(diào)用準(zhǔn)確率
from
sklearn.metrics
import
recall_score
#調(diào)用召回率
from
sklearn.metrics
import
f1_score
#調(diào)用F1度量
from
sklearn.metrics
import
confusion_matrix
#調(diào)用誤差矩陣
#
Performs
classification
using
SVM.
FREQ_DIST_FILE
=
'train-processed-freqdist.pkl'
BI_FREQ_DIST_FILE
=
'train-processed-freqdist-bi.pkl'
TRAIN_PROCESSED_FILE
=
'train-processed.csv'
TEST_PROCESSED_FILE
=
'test-processed.csv'
TRAIN
=
True
UNIGRAM_SIZE
=
15000
VOCAB_SIZE
=
UNIGRAM_SIZE
USE_BIGRAMS
=
True
if
USE_BIGRAMS:
BIGRAM_SIZE
=
10000
VOCAB_SIZE
=
UNIGRAM_SIZE
+
BIGRAM_SIZE
FEAT_TYPE
=
'frequency'
def
get_feature_vector(tweet):
uni_feature_vector
=
[]
bi_feature_vector
=
[]
words
=
tweet.split()
for
i
in
range(len(words)
-
1):
word
=
words[i]
next_word
=
words[i
+
1]
if
unigrams.get(word):
uni_feature_vector.append(word)
if
USE_BIGRAMS:
if
bigrams.get((word,
next_word)):
bi_feature_vector.append((word,
next_word))
if
len(words)
>=
1:
if
unigrams.get(words[-1]):
uni_feature_vector.append(words[-1])
return
uni_feature_vector,
bi_feature_vector
def
extract_features(tweets,
batch_size=500,
test_file=True,
feat_type='presence'):
num_batches
=
int(np.ceil(len(tweets)
/
float(batch_size)))
for
i
in
range(num_batches):
batch
=
tweets[i
*
batch_size:
(i
+
1)
*
batch_size]
features
=
lil_matrix((batch_size,
VOCAB_SIZE))
labels
=
np.zeros(batch_size)
for
j,
tweet
in
enumerate(batch):
if
test_file:
tweet_words
=
tweet[1][0]
tweet_bigrams
=
tweet[1][1]
else:
tweet_words
=
tweet[2][0]
tweet_bigrams
=
tweet[2][1]
labels[j]
=
tweet[1]
if
feat_type
==
'presence':
tweet_words
=
set(tweet_words)
tweet_bigrams
=
set(tweet_bigrams)
for
word
in
tweet_words:
idx
=
unigrams.get(word)
if
idx:
features[j,
idx]
+=
1
if
USE_BIGRAMS:
for
bigram
in
tweet_bigrams:
idx
=
bigrams.get(bigram)
if
idx:
features[j,
UNIGRAM_SIZE
+
idx]
+=
1
yield
features,
labels
def
apply_tf_idf(X):
transformer
=
TfidfTransformer(smooth_idf=True,
sublinear_tf=True,
use_idf=True)
transformer.fit(X)
return
transformer
def
process_tweets(csv_file,
test_file=True):
"""Returns
a
list
of
tuples
of
type
(tweet_id,
feature_vector)
or
(tweet_id,
sentiment,
feature_vector)
Args:
csv_file
(str):
Name
of
processed
csv
file
generated
by
preprocess.py
test_file
(bool,
optional):
If
processing
test
file
Returns:
list:
Of
tuples
"""
tweets
=
[]
('Generating
feature
vectors')
with
open(csv_file,
'r')
as
csv:
lines
=
csv.readlines()
total
=
len(lines)
for
i,
line
in
enumerate(lines):
if
test_file:
tweet_id,
tweet
=
line.split(',')
else:
tweet_id,
sentiment,
tweet
=
line.split(',')
feature_vector
=
get_feature_vector(tweet)
if
test_file:
tweets.append((tweet_id,
feature_vector))
else:
tweets.append((tweet_id,
int(sentiment),
feature_vector))
utils.write_status(i
+
1,
total)
('\n')
return
tweets
if
__name__
==
'__main__':
np.random.seed(1337)
unigrams
=
utils.top_n_words(FREQ_DIST_FILE,
UNIGRAM_SIZE)
if
USE_BIGRAMS:
bigrams
=
utils.top_n_bigrams(BI_FREQ_DIST_FILE,
BIGRAM_SIZE)
tweets
=
process_tweets(TRAIN_PROCESSED_FILE,
test_file=False)
if
TRAIN:
train_tweets,
val_tweets
=
utils.split_data(tweets)
else:
random.shuffle(tweets)
train_tweets
=
tweets
del
tweets
('Extracting
features
&
training
batches')
clf
=
svm.LinearSVC(C=0.1)
batch_size
=
len(train_tweets)
i
=
1
n_train_batches
=
int(np.ceil(len(train_tweets)
/
float(batch_size)))
for
training_set_X,
training_set_y
in
extract_features(train_tweets,
test_file=False,
feat_type=FEAT_TYPE,
batch_size=batch_size):
utils.write_status(i,
n_train_batches)
i
+=
1
if
FEAT_TYPE
==
'frequency':
tfidf
=
apply_tf_idf(training_set_X)
training_set_X
=
tfidf.transform(training_set_X)
clf.fit(training_set_X,
training_set_y)
('\n')
('Testing')
if
TRAIN:
correct,
total
=
0,
len(val_tweets)
i
=
1
batch_size
=
len(val_tweets)
n_val_batches
=
int(np.ceil(len(val_tweets)
/
float(batch_size)))
for
val_set_X,
val_set_y
in
extract_features(val_tweets,
test_file=False,
feat_type=FEAT_TYPE,
batch_size=batch_size):
if
FEAT_TYPE
==
'frequency':
val_set_X
=
tfidf.transform(val_set_X)
prediction
=
clf.predict(val_set_X)
correct
+=
np.sum(prediction
==
val_set_y)
utils.write_status(i,
n_val_batches)
i
+=
1
accuracy
=
accuracy_score(val_set_y,
prediction)
recall
=
recall_score(val_set_y,
prediction,
average='macro')
f1
=
f1_score(val_set_y,
prediction,
average='macro')
('\nCorrect:
%d/%d
=
%.4f
%%'
%
(correct,
total,
correct
*
100.
/
total))
('準(zhǔn)確率:
%s'
%
(accuracy))
('召回率:
%s'
%
(recall))
('F1分?jǐn)?shù):
%s'
%
(f1))
else:
del
train_tweets
test_tweets
=
process_tweets(TEST_PROCESSED_FILE,
test_file=True)
n_test_batches
=
int(np.ceil(len(test_tweets)
/
float(batch_size)))
predictions
=
np.array([])
('Predicting
batches')
i
=
1
for
test_set_X,
_
in
extract_features(test_tweets,
test_file=True,
feat_type=FEAT_TYPE):
if
FEAT_TYPE
==
'frequency':
test_set_X
=
tfidf.transform(test_set_X)
prediction
=
clf.predict(test_set_X)
predictions
=
np.concatenate((predictions,
prediction))
utils.write_status(i,
n_test_batches)
i
+=
1
predictions
=
[(str(j),
int(predictions[j]))
for
j
in
range(len(test_tweets))]
utils.save_results_to_csv(predictions,
'svm.csv')
('\nSaved
to
svm.csv')
HYPERLINK電腦快捷知識大全編輯本段一、常見用法F1顯示當(dāng)前程序或者windows的幫助內(nèi)容。F2當(dāng)你選中一個文件的話,這意味著“重命名”F3當(dāng)你在桌面上的時候是打開“查找:所有文件”對話框F10或ALT激活當(dāng)前程序的菜單欄windows鍵或CTRL+ESC打開開始菜單CTRL+ALT+DELETE在win9x中打開關(guān)閉程序?qū)υ捒駾ELETE刪除被選擇的選擇項目,如果是文件,將被放入回收站SHIFT+DELETE刪除被選擇的選擇項目,如果是文件,將被直接刪除而不是放入回收站CTRL+N新建一個新的文件CTRL+O打開“打開文件”對話框CTRL+P打開“打印”對話框CTRL+S保存當(dāng)前操作的文件CTRL+X剪切被選擇的項目到剪貼板CTRL+INSERT或CTRL+C復(fù)制被選擇的項目到剪貼板SHIFT+INSERT或CTRL+V粘貼剪貼板中的內(nèi)容到當(dāng)前位置ALT+BACKSPACE或CTRL+Z撤銷上一步的操作ALT+SHIFT+BACKSPACE重做上一步被撤銷的操作Windows鍵+L鎖屏鍵Windows鍵+M最小化所有被打開的窗口。Windows鍵+SHIFT+M重新將恢復(fù)上一項操作前窗口的大小和位置Windows鍵+E打開資源管理器Windows鍵+F打開“查找:所有文件”對話框Windows鍵+R打開“運(yùn)行”對話框Windows鍵+BREAK打開“系統(tǒng)屬性”對話框Windows鍵+CTRL+F打開“查找:計算機(jī)”對話框SHIFT+F10或鼠標(biāo)右擊打開當(dāng)前活動項目的快捷菜單SHIFT在放入CD的時候按下不放,可以跳過自動播放CD。在打開word的時候按下不放,可以跳過自啟動的宏ALT+F4關(guān)閉當(dāng)前應(yīng)用程序ALT+SPACEBAR打開程序最左上角的菜單ALT+TAB切換當(dāng)前程序ALT+ESC切換當(dāng)前程序ALT+ENTER將windows下運(yùn)行的MSDOS窗口在窗口和全屏幕狀態(tài)間切換PRINTSCREEN將當(dāng)前屏幕以圖象方式拷貝到剪貼板ALT+PRINTSCREEN將當(dāng)前活動程序窗口以圖象方式拷貝到剪貼板CTRL+F4關(guān)閉當(dāng)前應(yīng)用程序中的當(dāng)前文本(如word中)CTRL+F6切換到當(dāng)前應(yīng)用程序中的下一個文本(加shift可以跳到前一個窗口)在IE中:ALT+RIGHTARROW顯示前一頁(前進(jìn)鍵)ALT+LEFTARROW顯示后一頁(后退鍵)CTRL+TAB在頁面上的各框架中切換(加shift反向)F5刷新CTRL+F5強(qiáng)行刷新目的快捷鍵激活程序中的菜單欄F10執(zhí)行菜單上相應(yīng)的命令A(yù)LT+菜單上帶下劃線的字母關(guān)閉多文檔界面程序中的當(dāng)前窗口CTRL+F4關(guān)閉當(dāng)前窗口或退出程序ALT+F4復(fù)制CTRL+C剪切CTRL+X刪除DELETE顯示所選對話框項目的幫助F1顯示當(dāng)前窗口的系統(tǒng)菜單ALT+空格鍵顯示所選項目的快捷菜單SHIFT+F10顯示“開始”菜單CTRL+ESC顯示多文檔界面程序的系統(tǒng)菜單ALT+連字號(-)粘貼CTRL+V切換到上次使用的窗口或者按住ALT然后重復(fù)按TAB,切換到另一個窗口ALT+TAB撤消CTRL+Z編輯本段二、使用“Windows資源管理器”的快捷鍵目的快捷鍵如果當(dāng)前選擇展開了,要折疊或者選擇父文件夾左箭頭折疊所選的文件夾NUMLOCK+負(fù)號(-)如果當(dāng)前選擇折疊了,要展開或者選擇第一個子文件夾右箭頭展開當(dāng)前選擇下的所有文件夾NUMLOCK+*展開所選的文件夾NUMLOCK+加號(+)在左右窗格間切換F6編輯本段三、使用WINDOWS鍵可以使用Microsoft自然鍵盤或含有Windows徽標(biāo)鍵的其他任何兼容鍵盤的以下快捷鍵。目的快捷鍵在任務(wù)欄上的按鈕間循環(huán)WINDOWS+TAB顯示“查找:所有文件”WINDOWS+F顯示“查找:計算機(jī)”CTRL+WINDOWS+F顯示“幫助”WINDOWS+F1顯示“運(yùn)行”命令WINDOWS+R顯示“開始”菜單WINDOWS顯示“系統(tǒng)屬性”對話框WINDOWS+BREAK顯示“Windows資源管理器”WINDOWS+E最小化或還原所有窗口WINDOWS+D撤消最小化所有窗口SHIFT+WINDOWS+M編輯本段四、“我的電腦”和“資源管理器”的快捷鍵目的快捷鍵關(guān)閉所選文件夾及其所有父文件夾按住SHIFT鍵再單擊“關(guān)閉按鈕(僅適用于“我的電腦”)向后移動到上一個視圖ALT+左箭頭向前移動到上一個視圖ALT+右箭頭查看上一級文件夾BACKSPACE編輯本段五、使用對話框中的快捷鍵目的快捷鍵取消當(dāng)前任務(wù)ESC如果當(dāng)前控件是個按鈕,要單擊該按鈕或者如果當(dāng)前控件是個復(fù)選框,要選擇或清除該復(fù)選框或者如果當(dāng)前控件是個選項按鈕,要單擊該選項空格鍵單擊相應(yīng)的命令A(yù)LT+帶下劃線的字母單擊所選按鈕ENTER在選項上向后移動SHIFT+TAB在選項卡上向后移動CTRL+SHIFT+TAB在選項上向前移動TAB在選項卡上向前移動CTRL+TAB如果在“另存為”或“打開”對話框中選擇了某文件夾,要打開上一級文件夾BACKSPACE在“另存為”或“打開”對話框中打開“保存到”或“查閱”F4刷新“另存為”或“打開”對話框F5編輯本段六、桌面、我的電腦和“資源管理器”快捷鍵選擇項目時,可以使用以下快捷鍵。目的快捷鍵插入光盤時不用“自動播放”功能按住SHIFT插入CD-ROM復(fù)制文件按住CTRL拖動文件創(chuàng)建快捷方式按住CTRL+SHIFT拖動文件立即刪除某項目而不將其放入SHIFT+DELETE“回收站”顯示“查找:所有文件”F3顯示項目的快捷菜單APPLICATION鍵刷新窗口的內(nèi)容F5重命名項目F2選擇所有項目CTRL+A查看項目的屬性ALT+ENTER或ALT+雙擊可將APPLICATION鍵用于Microsoft自然鍵盤或含有APPLICATION鍵的其他兼容鍵編輯本段七、Microsoft放大程序的快捷鍵這里運(yùn)用Windows徽標(biāo)鍵和其他鍵的組合??旖萱I目的Windows徽標(biāo)+PRINTSCREEN將屏幕復(fù)制到剪貼板(包括鼠標(biāo)光標(biāo))Windows徽標(biāo)+SCROLLLOCK將屏幕復(fù)制到剪貼板(不包括鼠標(biāo)光標(biāo))Windows徽標(biāo)+PAGEUP切換反色。Windows徽標(biāo)+PAGEDOWN切換跟隨鼠標(biāo)光標(biāo)Windows徽標(biāo)+向上箭頭增加放大率Windows徽標(biāo)+向下箭頭減小放大率編輯本段八、使用輔助選項快捷鍵目的快捷鍵切換篩選鍵開關(guān)右SHIFT八秒切換高對比度開關(guān)左ALT+左SHIFT+PRINTSCREEN切換鼠標(biāo)鍵開關(guān)左ALT+左SHIFT+NUMLOCK切換粘滯鍵開關(guān)SHIFT鍵五次切換切換鍵開關(guān)NUMLOCK五秒QQ快捷鍵,玩QQ更方便Alt+S快速回復(fù)Alt+C關(guān)閉當(dāng)前窗口Alt+H打開聊天記錄Alt+T更改消息模式Ait+J打開聊天紀(jì)錄Ctrl+A全選當(dāng)前對話框里的內(nèi)容Ctrl+FQQ里直接顯示字體設(shè)置工具條Ctrl+J輸入框里回車(跟回車一個效果)Ctrl+M輸入框里回車(跟回車一個效果)Ctrl+L對輸入框里當(dāng)前行的文字左對齊Ctrl+R對輸入框里當(dāng)前行的文字右對齊Ctrl+E對輸入框里當(dāng)前行的文字居中Ctrl+V在qq對話框里實(shí)行粘貼Ctrl+Z清空/恢復(fù)輸入框里的文字Ctrl+回車快速回復(fù)這個可能是聊QQ時最常用到的了Ctrl+Alt+Z快速提取消息Ctrl+Alt+A捕捉屏幕最常用的快捷鍵F5刷新DELETE刪除TAB改變焦點(diǎn)CTRL+C復(fù)制CTRL+X剪切CTRL+V粘貼CTRL+A全選CTRL+Z撤銷CTRL+S保存ALT+F4關(guān)閉CTRL+Y恢復(fù)ALT+TAB切換CTRL+F5強(qiáng)制刷新CTRL+W關(guān)閉CTRL+F查找SHIFT+DELETE永久刪除CTRL+ALT+DEL任務(wù)管理SHIFT+TAB-反向切換CTRL+空格--中英文輸入切換CTRL+Shift輸入法切換CTRL+ESC--開始菜單CTRL+ALT+ZQQ快速提取消息CTRL+ALT+AQQ截圖工具CTRL+ENTERQQ發(fā)消息Alt+1保存當(dāng)前表單Alt+2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年在線預(yù)約服務(wù)協(xié)議
- 2025年倉庫出租合同
- 2025年現(xiàn)金贈與合同的風(fēng)險評估
- 2025年進(jìn)口擔(dān)保協(xié)議
- 2025年存貨質(zhì)押法律法規(guī)匯編
- 2025版委托代銷與授權(quán)經(jīng)營合同3篇
- 2025版高端酒店客房裝修與維護(hù)服務(wù)合同4篇
- 2025年度商鋪?zhàn)赓U預(yù)付定金合同范本4篇
- 二零二五年度企業(yè)裁員補(bǔ)償解除勞動合同賠償協(xié)議
- 二零二五年度鐵路貨運(yùn)合同貨物運(yùn)輸合同糾紛解決機(jī)制協(xié)議
- 機(jī)電安裝工程安全管理
- 2024年上海市第二十七屆初中物理競賽初賽試題及答案
- 信息技術(shù)部年終述職報告總結(jié)
- 高考滿分作文常見結(jié)構(gòu)完全解讀
- 理光投影機(jī)pj k360功能介紹
- 六年級數(shù)學(xué)上冊100道口算題(全冊完整版)
- 八年級數(shù)學(xué)下冊《第十九章 一次函數(shù)》單元檢測卷帶答案-人教版
- 帕薩特B5維修手冊及帕薩特B5全車電路圖
- 小學(xué)五年級解方程應(yīng)用題6
- 年月江西省南昌市某綜合樓工程造價指標(biāo)及
- 作物栽培學(xué)課件棉花
評論
0/150
提交評論