python處理csv文件///中文文本分類(lèi)數(shù)據(jù)集妈嘹,踩坑

正文之前

好久沒(méi)寫(xiě)了,以后寫(xiě)點(diǎn)日成芊粒總結(jié)吧润脸,感覺(jué)不寫(xiě)下來(lái),會(huì)容易忘掉一些他去。

很喜歡的一張壁紙毙驯,希望后面買(mǎi)了相機(jī)也可以拍這么好看~

正文

首先直接把我對(duì)數(shù)據(jù)預(yù)處理的一些收獲貼出來(lái):

  1. jieba比清華的好用,不過(guò)清華的更注重整體性灾测,比如說(shuō)在一個(gè)《》包含的文件內(nèi)爆价,不會(huì)分割
  1. 最終還是選擇了簡(jiǎn)單粗暴的只留下漢字,unicode編碼真是簡(jiǎn)單粗暴
  1. jieba和thulac都無(wú)法去掉铭段,。秦爆、“”這些符號(hào)序愚,很奇怪,所以我才選擇的第二種方式

  2. 當(dāng)然還有另外的方法

import re

r1 = '[a-zA-Z0-9’!"等限,:#$%&\'(())*+,-—./:;爸吮;<=>?@芬膝。?★、…【】《》拗胜?“”‘’蔗候![\\]^_`{|}~]+●「」『』〖〗?????~????〝〞????□'

i  = re.sub(r1,"",i)
  1. python操作路徑: https://www.cnblogs.com/wei-li/p/2502735.html

  2. python with的用法:

  • 而使用with的話(huà),能夠減少冗長(zhǎng)埂软,還能自動(dòng)處理上下文環(huán)境產(chǎn)生的異常锈遥。如下面代碼:
with open("2.txt") as file:
    data = file.read()

上面是對(duì)清華的那個(gè)文本分類(lèi)數(shù)據(jù)集做預(yù)處理的時(shí)候的一些踩的坑,八十多萬(wàn)個(gè)txt文件勘畔,真的搞死我所灸。耗時(shí)最長(zhǎng)的是刪除那些零散的txt。炫七。兩個(gè)小時(shí)爬立,我滴媽。万哪。


下面是我讀取txt文件并且轉(zhuǎn)化為csv文件的踩坑:

  1. 超大文本寫(xiě)入CSV文件的時(shí)候侠驯,可以擴(kuò)容 _csv.Error: field larger than field limit (131072)
import sys

import csv

csv.field_size_limit(sys.maxsize)
  1. python open()打開(kāi)文件之后如果用readlines(),那么會(huì)直接到文件底部奕巍,再調(diào)用這個(gè)函數(shù)就得不到任何數(shù)據(jù)了吟策。。這個(gè)坑的止。檩坚。我他么,看下面代碼的精妙之處:
    file = open(x, 'r', encoding='utf8')
    fileLength = len(file.readlines())
    file.close()
    file = open(x, 'r', encoding='utf8')
    fReader = csv.reader(file)
    print("Now the file length is: " + str(fileLength))
    for i in fReader:
        if fReader.line_num ==1:
            continue
        if(fReader.line_num<0.6*fileLength):
            trResult.append(i)
        elif (fReader.line_num >= 0.6*fileLength and fReader.line_num<0.8*fileLength ):
            teResult.append(i)
        else:
            vaResult.append(i)
    file.close()

要獲得文本長(zhǎng)度诅福,那么直接開(kāi)關(guān)一次匾委,與后面徹底脫節(jié),這樣就OK了
然后的話(huà)氓润,csv的reader內(nèi)置的line_num貌似會(huì)自動(dòng)迭代赂乐。不過(guò)我沒(méi)去測(cè)試如果在一次循環(huán)體里面沒(méi)有調(diào)用item 是否會(huì)跳轉(zhuǎn)到下一行。畢竟你不用咖气,循環(huán)個(gè)錘子哦沪猴。(隨機(jī)采樣表示不關(guān)我的事,)

至于之前把所有的txt文件寫(xiě)到對(duì)應(yīng)分類(lèi)的csv里面去采章,我看看运嗜,放一部分代碼吧~ 全部的丟上來(lái)就涉及到一些不能說(shuō)的秘密了。



def clearTHU():
    nowWorkingDirectory = os.getcwd()
    nowWorkingDirectory = 'G:\啟動(dòng)盤(pán)外的文件\THUCNews'
    directoryNames = ['彩票','科技','社會(huì)','時(shí)尚','時(shí)政','星座','游戲','娛樂(lè)']
    allDataPath = []
    #@TODO 后面到了linux的機(jī)器上可以開(kāi)啟并行分詞
    filtrate = re.compile(XXX)#非中文
    for i in directoryNames:
        allDataPath.append(os.path.join(nowWorkingDirectory,i))
    for i in range(len(allDataPath)):
        #現(xiàn)在是在分類(lèi)的文件夾下悯舟,讀取每個(gè)文件夾下的所有文件丟到一個(gè)csv文件里面去
        csvWFile = open(os.path.join(nowWorkingDirectory,  directoryNames[i]+ '.csv'), 'w', encoding='utf8', newline='')
        csvWFile.truncate()
        writer = csv.writer(csvWFile)
        index = [XXXX]
        writer.writerow(index)
        files = os.listdir(allDataPath[i])
        result = []
        print(allDataPath[i])
        resultLength = 0
        for file in files:
            if(file.find('txt')==-1):
                continue
            item = []
            with open(os.path.join(allDataPath[i],file), 'r', encoding='utf8') as f:
                x = "".join([line.strip() for line in f.readlines()])
                item.append(allDataPath[i][-2:])
                item.append(x)
                x = filtrate.sub(r'', x)
                ss= ""
                for s in XXX:
                    ss+= (XXX)
                item.append(ss.strip())
                if len(x)<10:
                    continue
                item.append(str(XXX))
            result.append(item)
            if len(result) > 1000:
                writer.writerows(result)
                resultLength += len(result)
                print("length of result: " + str(resultLength)+ "/"+str(len(files)))
                result = []
                # print("================"+os.path.join(allDataPath[i],file)+"=================\n" + " ".join(jieba.cut(x)))
        if len(result) > 0:
            writer.writerows(result)
        csvWFile.close()
if __name__ == '__main__':
    clearTHU()

正文之后

覺(jué)得自己的代碼真的寫(xiě)的美極了~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末担租,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子抵怎,更是在濱河造成了極大的恐慌奋救,老刑警劉巖岭参,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異尝艘,居然都是意外死亡演侯,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)背亥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)秒际,“玉大人,你說(shuō)我怎么就攤上這事狡汉÷玻” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵盾戴,是天一觀的道長(zhǎng)寄锐。 經(jīng)常有香客問(wèn)我,道長(zhǎng)尖啡,這世上最難降的妖魔是什么橄仆? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮衅斩,結(jié)果婚禮上盆顾,老公的妹妹穿的比我還像新娘。我一直安慰自己矛渴,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布惫搏。 她就那樣靜靜地躺著具温,像睡著了一般。 火紅的嫁衣襯著肌膚如雪筐赔。 梳的紋絲不亂的頭發(fā)上铣猩,一...
    開(kāi)封第一講書(shū)人閱讀 48,970評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音茴丰,去河邊找鬼达皿。 笑死,一個(gè)胖子當(dāng)著我的面吹牛贿肩,可吹牛的內(nèi)容都是我干的峦椰。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼汰规,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼汤功!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起溜哮,我...
    開(kāi)封第一講書(shū)人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤滔金,失蹤者是張志新(化名)和其女友劉穎色解,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體餐茵,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡科阎,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了忿族。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锣笨。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖肠阱,靈堂內(nèi)的尸體忽然破棺而出票唆,到底是詐尸還是另有隱情,我是刑警寧澤屹徘,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布走趋,位于F島的核電站,受9級(jí)特大地震影響噪伊,放射性物質(zhì)發(fā)生泄漏簿煌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一鉴吹、第九天 我趴在偏房一處隱蔽的房頂上張望姨伟。 院中可真熱鬧,春花似錦豆励、人聲如沸夺荒。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)技扼。三九已至,卻和暖如春嫩痰,著一層夾襖步出監(jiān)牢的瞬間剿吻,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來(lái)泰國(guó)打工串纺, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留丽旅,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓纺棺,卻偏偏與公主長(zhǎng)得像榄笙,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子祷蝌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容