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