FlashText是GitHub上的另一個開源系統(tǒng)Python庫,如同以前提到的,他在獲得關(guān)鍵字和更換關(guān)鍵字每日任務(wù)上具有非常高的特性。本文詳細說明一下下flashtext的應(yīng)用,所需要的可以了解一下
在平時的些的較小規(guī)模的信息的過慮、清理環(huán)節(jié)中應(yīng)用比較多的是正則匹配,但隨著數(shù)據(jù)量級的擴大,正則匹配也顯得有一些力不從心了。
正則匹配在這個10k的詞庫文件中檢索15k個關(guān)鍵字的時長大概是0.165秒。但對于Flashtext來講只需0.002秒。因而,在這件事情上Flashtext的速率大概比正則匹配快82倍。
從上述的示例圖的性能評測中,不難發(fā)現(xiàn)伴隨著我們應(yīng)該處理標識符愈來愈多,正則匹配的響應(yīng)速度大部分都是線形增大的。但是,F(xiàn)lashtext基本上是個變量定義。
1、提前準備flashtext環(huán)境
根據(jù)pip的方法來組裝flashtext,或是其他的方式也可以的,這兒默認設(shè)置采用的是清華大學(xué)的鏡像站。
pipinstallflashtext-ihttps://pypi.tuna.tsinghua.edu.cn/simple
2、加詞
這兒加詞時是由多帶帶關(guān)鍵字的來導(dǎo)入到關(guān)鍵詞詞庫中,使用add_keyword函數(shù)公式來加上。初次主要參數(shù)表明必須加上核心關(guān)鍵詞,下一個主要參數(shù)也表示為第一位關(guān)鍵字的別稱,如果關(guān)鍵詞被找到則顯示的是別稱的方式,要是沒有應(yīng)用下一個主要參數(shù)做為別稱則或者表明原先的名字。
fromflashtextimportKeywordProcessor #復(fù)位關(guān)鍵詞詞庫Cpu processor=KeywordProcessor() #基本方法加詞 processor.add_keyword('Python') #別稱方法加詞 processor.add_keyword('Scala','Java')
那樣各自應(yīng)用兩種形式已將必須核心關(guān)鍵詞導(dǎo)入到詞庫文件Cpu中獎了。
3、提取關(guān)鍵詞
根據(jù)上一層樓加詞,如今詞庫文件Cpu里已經(jīng)存有有關(guān)鍵字的內(nèi)容了,再使用extract_keywords將關(guān)鍵詞提取出去就可以。
#在這個字符串?dāng)?shù)組中獲取出關(guān)鍵字信息內(nèi)容 found=processor.extract_keywords('IlikePythonandScala.') #結(jié)論 print(found) #['Python','Java']
結(jié)果公示,和我們預(yù)料的都是一樣的,并Scala也表明為了能Java。
4、更換關(guān)鍵字
更換關(guān)鍵字所使用的是replace_keywords函數(shù),基礎(chǔ)是詞庫文件中具有別稱的詞匯才會被更換,如同上邊的Scala被表明變成的Java相同。
更換1個字符串?dāng)?shù)組里的Scala關(guān)鍵字,因為Scala對相對應(yīng)的別稱是Java,而一個字符串?dāng)?shù)組里的Scala需要被更換為Java。
replaced=processor.replace_keywords('IlikeScala.') #結(jié)論 print(replaced) #IlikeJava. #Scala果然便被更換為了能Java。
5、獲得所有關(guān)鍵字
有的時候,在KeywordProcessor詞庫文件Cpu中加了什么關(guān)鍵字可能他都記不清楚了,這時候能使用get_all_keywords函數(shù)來獲得現(xiàn)階段的所有關(guān)鍵字。
all_keywords=processor.get_all_keywords() #結(jié)論 print(all_keywords) #{'python':'Python','scala':'Java'}
6、大批量加詞
當(dāng)關(guān)鍵詞詞庫需要更多關(guān)鍵字的情況下,能通過目錄或者詞典的形式進行大批量加上。相對應(yīng)的函數(shù)公式各自是add_keywords_from_list、add_keywords_from_dict函數(shù)。
#復(fù)位1個詞典根據(jù)用來做批量添加 dict_={ 'java':['java_ee','java_se','java_me'], 'python':['pandas','all'] } #根據(jù)詞典的方式去大批量加詞 processor.add_keywords_from_dict(dict_) #從批量添加核心關(guān)鍵詞中搭配關(guān)鍵字 result=processor.extract_keywords('lookingforjava_eeandpandas.') #結(jié)論 print(result) #['java','python'] #根據(jù)目錄的方式大批量加詞 processor.add_keywords_from_list(['scala','python','scala','go']) #根據(jù)get_all_keywords查詢一下所有關(guān)鍵字 all_keywords=processor.get_all_keywords() #結(jié)論 print(all_keywords) #{'python':'python','pandas':'python','scala':'scala','java_ee':'java','java_se':'java','java_me':'java','all':'python','go':'go'}
發(fā)覺所有核心關(guān)鍵詞早已導(dǎo)入到詞庫文件Cpu中,而且重復(fù)不容易再度加上。
7、批量刪除關(guān)鍵字
批量刪除詞庫文件Cpu中核心關(guān)鍵詞同是主要有兩種方式,有一個是目錄、另一個就是詞典。相對應(yīng)的函數(shù)公式各自是remove_keywords_from_list、remove_keywords_from_dict函數(shù)。
#大批量移出頁面上核心關(guān)鍵詞 processor.remove_keywords_from_list(['python','java_ee','java_me']) #大批量移出詞典中核心關(guān)鍵詞 processor.remove_keywords_from_dict({'python':['pandas','all']}) #根據(jù)get_all_keywords查詢一下所有關(guān)鍵字 all_keywords=processor.get_all_keywords() #結(jié)論 print(all_keywords) #{'scala':'scala','java_se':'java','go':'go'}
發(fā)覺必須移出核心關(guān)鍵詞早已被所有移除開。
8、開發(fā)效率比照
能夠更豐厚的視覺效果,找了一個兩個flashtext在檢索和更換關(guān)鍵字過程的高效率前后對比能夠簡單明了。
flashtext、正則匹配檢索高效率比照
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/129079.html
FlashText是GitHub上的另一個開源系統(tǒng)Python庫,如同以前提到的,他在獲得關(guān)鍵字和更換關(guān)鍵字每日任務(wù)上具有非常高的特性。本文詳細說明一下下flashtext的應(yīng)用,所需要的可以了解一下 在平時的些的較小規(guī)模的信息的過慮、清理環(huán)節(jié)中應(yīng)用最多的是正則匹配,但隨著數(shù)據(jù)量級的擴大,正則匹配也顯得有一些力不從心了。 正則匹配在這個10k的詞典中查尋15k個關(guān)鍵字的時長大概是0.165...
摘要:如果語句中使用了子查詢集合操作臨時表等情況,會給列帶來很大的復(fù)雜性。會遞歸執(zhí)行這些子查詢,把結(jié)果放在臨時表里。查詢優(yōu)化器從中所選擇使用的索引。該字段顯示了查詢優(yōu)化器通過系統(tǒng)收集的統(tǒng)計信息估算出來的結(jié)果集記錄條數(shù)。 引言 優(yōu)化SQL,是DBA常見的工作之一。如何高效、快速地優(yōu)化一條語句,是每個DBA經(jīng)常要面對的一個問題。在日常的優(yōu)化工作中,我發(fā)現(xiàn)有很多操作是在優(yōu)化過程中必不可少的步驟。然...
摘要:可能有的老手覺得我寫得很啰嗦,但其實很多新手可能都不知道這些細節(jié),所以我把我在分析新浪微博模擬登陸的過程全寫了出來。 這篇文章于去年4月發(fā)布在我的簡書,現(xiàn)在把它放到這里,主要是為了宣傳自己的分布式微博爬蟲。下面是主要內(nèi)容,希望能幫到有這個需求的朋友 最近由于需要一直在研究微博的爬蟲,第一步便是模擬登陸,從開始摸索到走通模擬登陸這條路其實還是挺艱難的,需要一定的經(jīng)驗,為了讓朋友們以后少...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1982·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02