亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
  • 清洗HTML數據

    算法思路:

    ·分析html文本信息

    ·導入正則:re.l、re.L、re.M、re.S...

    ·清洗HTML標簽:DOCTYPE、CDATA、Script、style

    ·HTML標簽、注釋、換行等處理:re.compile

    ·實現正則清洗HTML數據

    import?re
    
    """
    re.I????使匹配對大小寫不敏感
    re.L????做本地化識別(locale-aware)匹配
    re.M????多行匹配,影響^和$
    re.S????使.匹配包括換行在內的所有字符
    re.U????根據Unicode字符集解析字符。這個標志影響\w,\W,\b,\B
    re.X????該標簽通過給予你更靈活的格式以便你將正則表達式寫得更容易
    """
    #?清洗HTML標簽文本
    #?@param?htmlstr?HTML字符串
    def?filter_tags(htmlstr):
    ????#?過濾DOCTYPE
    ????htmlstr?=?'?'.join(htmlstr.split())????#去除多余空格
    ????re_doctype?=?re.compile(r'<!DOCTYPE?.*?>',re.S)
    ????res?=?re_doctype.sub('',htmlstr)
    ????
    ????#?過濾CDATA
    ????re_cdata?=?re.comile('//<!CDATA\[[?>]//\]>',re.I)
    ????res?=?re_cdata.sub('',res)
    ????
    ????#Script
    ????re_script?=?re.compile('<\s*script[^>]*>[^<]*<\s*/\s*script\s*>',re.I)
    ????res?=?re_script.sub('',res)
    ????
    ????#style
    ????re_style?=?re.compile('<\s*style[^>]*>[^<]*<\s*/\s*script\s*>',re.I)
    ????res?=?re_style.sub('',res)????#去掉style
    ????
    ????#?處理換行
    ????re_br?=?re.compile('<br\s*?/?>')
    ????res?=?re_br.sub('',res)????#?將br轉行為換行
    ????
    ????#?處理HTML標簽
    ????re_h?=?re.compile('</?\w+[^>]*>')
    ????res?=?re_h.sub('',res)????#?去掉HTML
    ????
    ????#?剔除超鏈接
    ????http_link?=?re.compile(r'(http://.+html)')
    ????res?=?http_link.sub('',res)
    ????
    ????#?HTML注釋
    ????re_comment?=?re.compile('<!--[^>]*-->')
    ????res?=?re_comment.sub('',res)
    ????#?處理多余的空格
    ????blank_line?=?re.compile('\n+')
    ????res?=?blank_line.sub('',res)
    ????
    ????blank_line_1?=?re.compile('\n+')
    ????res?=?blank_line_1.sub('',res)
    ????
    ????blank-line_kon?=?re.compile('\t')
    ????res?=?blank_line_kon.sub('',res)
    ????
    ????blank_line_one?=?re.compile('\r\n')
    ????res?=?blank_line_one.sub('',res)
    ????
    ????blank_two?=?re.compile('\t')
    ????res?=?blank_two.sub('',res)
    ????
    ????blank_three?=?re.compile('\t')
    ????res?=?blank_three.sub('',res)
    ????
    ????return
    
    def?readFile(path):
    ????str_doc?=?""
    ????with?open(path,'r',encoding='utf-8')?as?f:
    ????????str_doc?=?f.read()
    ????return?str_doc
    if?__name__=='__main__':
    ????str_doc=readFile(r'./htmldome.txt')
    ????res?=?filter_tags(str_doc)
    ????print(res)
    查看全部
  • import?re
    
    #?正則對字符串的清洗
    def?textParse(str_doc):
    ????#?正則過濾掉特殊符號、標點、英文、數字等
    ????????r1?=?'[a-zA-Z0-9'!"#$%&'()*+,-./::;;|<=>[email protected]。?☆、]^_`{|}~]+'
    ????????#?去除空格
    ????????r2?=?'\s+'
    ????????str_doc?=?re.sub(r1,'?',str_doc)
    ????????str_doc?=?re.sub(r2,'?',str_doc)
    ????????#?去除換行符
    ????????str_doc?=?str_doc.replace('n','')
    ????????return?str_doc
    ????????
    def?readFile(path):
    ????str_doc=""
    ????with?open(path,'r',encoding='utf-8')as?f:
    ????????str_doc?=?f.read()
    ????return?str_doc
    
    if?__name__=='__main__':
    ????#?1.讀取文本
    ????path?=?r'../dataSet/CSCMNews/體育/0.txt'
    ????str_doc?=?readFile(path)
    ????#?print(str_doc)
    ????#?2.數據清洗
    ????mystr=textParse(str_doc)
    ????print(mystr)

    以上是課堂代碼

    查看全部
  • 高效讀取30萬新聞

    算法思路:

    ·構建生成器類算法

    ·構建迭代器類算法

    ·高效讀取30萬新聞

    ·讀取30萬新聞算法性能對比

    import os,time


    # 迭代器類

    class loadFolders(object):

    ????def __init__(self,par_path):

    ????????self.par_path = par_path

    ????def __iter__(self):

    ????????for file in os.listdir(self.par_path):

    ????????????file_abspath = os.path.join(self.par_path,file)

    ????????????if os.path.isdir(file_abspath):

    ????????????????yield file_abspath????#return

    class loadFiles(object):

    ????def __init__(self,par_path):

    ????????self.par_path = par_path

    ????def __iter__(self):

    ????????folders = loadFolders(self.par_path)

    ????????for folder in folders:

    ????????????catg = folder.split(os.sep)[-1]

    ????????????for file in os.listdir(folder):

    ????????????????yield catg,file

    if __name__=='__main__':

    ????filepath = os.path.abspath(r'../dataSet/CSCMNews/')

    ????files = loadFiles(filepath)

    ????for i,msg in enumerate(files):

    ????????if i%10000==0:

    ????????????print('{t}***{i} \t docs has been read'.format(i=i,t=time.strftime('%Y-%m-%d %H:%M:%S',time,localtime())))

    ????end = time.time()

    ????print('Total spent times:%.2f' % (end - start))

    ?生成器小結:

    ·數組、鏈表、字符串、文件等缺點就是所有的數據都在內存里,海量的數據耗內存。

    ·生成器是可以迭代的,工作原理就是重復調用next()方法,直到捕獲一個異常。

    ·有yield的函數不再是一個普通的函數,而是一個生成器generator,可用于迭代。

    ·yield是一個類似return的關鍵字。

    查看全部
  • 遞歸讀取30萬新聞

    算法思路:

    ·實現文件遍歷遞歸算法回顧

    ·遍歷讀取30萬新聞

    ·每萬條讀取打印一次屏幕

    ·完成30萬新聞遍歷讀取

    import?os,time
    """
    功能描述:遍歷目錄,對子文件單獨處理
    """
    #?2?遍歷目錄文件
    def?TraversalDir(rootDir):
    ????#返回指定目錄包含的文件或文件夾的名字的列表
    ????for?i,list?in?enumerate(os.listdir(rootDir)):
    ????????#?待處理文件夾名字列表
    ????????path?=?os.path.join(rootDir,lists)
    ????????#?核心算法,對文件具體操作
    ????????if?os.path.isfile(path):
    ????????????if?i%10000?==?0:
    ????????????????print('{t}***{i}?\t?{f}?docs?has?been?read'.format(i=i,t=time.
    ????????????????????strftime('%Y-%m-%d?%H:%M:%S',time.localtime())))
    ????????#?遞歸遍歷文件目錄
    ????????if?os.path.isdir(path):
    ????????????TraversalDir(path)
    if?__name__=='__main__':
    ????t1=time.time()
    ????rootDir?=?r'??/dataSet/CSC'
    ????TraversalDir(rootDir)
    ????t2?=?time.time()
    ????print('Total?Cost?Time?%.2f'?%(t2-t1)+'s')
    查看全部
  • yield生成器

    算法思路:

    ·斐波那契數列介紹和數學描述

    斐波那契數列:從數列的第三項開始,后面每一項是前面兩項之和

    數學上的定義:F(0)=1,F(1)=1,...。F(n)=F(n-1)(n>=2,nn∈N﹢)

    ·斐波那契數列算法實現

    ·斐波那契數列算法生成器實現

    ·算法時間性能對比分析

    查看全部
  • 筆記

    查看全部
  • %%writefile aa.py? # jupyter notebook中某個cell保存到路徑中

    %load aa.py? #jupyter notebook中加載某個py文件內容

    from aa import * 從aa.py中導入所有函數

    __name__ =='__main__':這個下面的代碼不在調用中執行,只在當前代碼中執行

    查看全部
  • #設計matplotlib全局字體

    import matplotlib

    matplotlib.rc("font",family='SimHei')


    #局部設置改變字體

    font1 = FontProperties(fname=r"c:\windows\fonts\simsun.ttc")

    font2 = FontProperties(fname=r"c:\windows\fonts\STHUPO.TTF")

    font3 = FontProperties(fname=r"c:\windows\fonts\STCAIYUN.TTF")

    ?

    plt.xlabel("橫軸/單位",fontproperties=font1)

    plt.ylabel("縱軸/單位",fontproperties=font1)

    plt.title("標題",fontproperties=font3)

    查看全部
  • 以前在寫到讀取文件的代碼時,經常要用到文件的路徑,而每次讓我有點搞的糊涂的就是斜杠的用法,又是正斜杠又是反斜杠的,還有雙斜杠的,經常要經過幾次調試才能正確的把文件的路徑弄對,究其原因,主要是每次都沒有認真的去總結,總是只要弄出來了就算過了,這樣導致每次都會在這個問題上糾結一會,今天終于查了會資料,再加上自己的一些理解,總結一下,以便是我印象更加深刻,也使有需要的同學看到可以根本的解決這個問題。
    “\” 這個是反斜杠,也稱左斜杠。
    “/” 這個是正斜杠,也稱右斜杠,斜杠。
    在windows中文件的文件的路徑是用反斜杠(\)表示(當初是為了和Unix的文件路徑使用”/“區分開來),例如 C:\windows\system,但是我們在寫程序的時候能不能再路徑的字符串中寫成C:\windows\system?答案是不能的,這一點想一下就會可以理解,在很多編譯器中,“\”是一個轉義字符,例如“\n,\r”等,如果在程序中寫成“C:\windows\system“那么實際上編譯出來的就是“C:windowssystem ",從而獲取不到文件,但是這個路徑可以寫成C:\windows\system,或者也可以用正斜杠C:/windows/system,這兩中方式都是可以的。說到這里,基本上這兩種用法不會混淆了,只要記住”\“反斜杠有轉義的功能,那么寫路徑的時候就不會出問題了。
    順便拓展一下,文件的相對路徑和絕對路徑:
    例如一個絕對路徑:C:\Windows\System\aaa.dll 如果當前目錄是C:\windows 那么aaa.dll這個文件的地址可以表示為:
    ./system/aaa.dll 中”.“表示當前路徑, …/windows/system/aaa.dll中”…“表示父級目錄。

    查看全部
  • 2.script的清洗

    3.style的清洗

    查看全部
  • 1.re.S

    查看全部
  • 1.with open這種方式可以自己關閉不用我們自己關

    查看全部
  • 1.非貪婪模式只匹配一次 s+至少出現一次?

    查看全部
  • n,a,b =0,0,1 <= 這個和JavaScript里ES6的結構賦值有點像.(好像不叫解構賦值...).

    查看全部
  • 學到了,python調jar包
    查看全部
    0 采集 收起 來源:HanLP分詞精講

    2020-05-18

首頁上一頁12下一頁尾頁

舉報

0/150
提交
取消
課程須知
1、本課程面向一定編程基礎的計算機專業、軟件工程專業、通信專業、電子技術專業和自動化專業的學生。 2、本課程也適用于大數據從業者及人工智能相關工程人員。 3、任何有興趣的同學均適合學習。
老師告訴你能學到什么?
1、掌握不同分詞工具與適用場景 2、掌握文本特征選擇與提取方法

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!