首頁 > 軟體

python資料處理詳情

2022-04-11 22:00:30

一,前言

我們現在拿到了一個十分龐大的資料集。是json檔案,裡面儲存了將近十萬個資料,現在要對其中的資料進行清洗處理。

二,python模組

import json
import jieba

我們需要用json模組來處理json檔案,和使用jieba庫來分析詞性,這樣可以實現我們的需求。

2.1,增加停用詞表

停用詞表.txt,把停用詞表存入stopwords,原因是:我們的目標分析json裡有一些標點符號。

stopwords = [line.strip() for line in open("停用詞表.txt",encoding="utf-8").readlines()]

基本如圖所示:

a+str(b)+c這是檔名稱,a+b+c=./json/poet.song.0.json b遞增,實現動態取值

with open(a+str(b)+c,'r',encoding='utf8')as fp:

因為有將近500個json檔案。每個檔案裡有好幾千組資料,我現在盡力的優化程式碼,現在提取一次,把需要的資料存入檔案裡面差不多需要五分鐘。

2.2,順序讀取

  • 定義一個空的字串,將json物件轉換為python物件。定義一個空的list存放詩句。
  • 迴圈json_data i為裡面的每一個元素。
  • 新的追加到list_paragraphs列表
  • 迴圈 j為裡面的每一句。

程式碼如圖所示:

使用jieba庫,分析str內容的詞性【注意是名稱,動詞。。。。】排行輸出都是倆個字是巧合,沒有字數限制

words = jieba.lcut(str_s)

現在words為分析完畢的詞性列表,遍歷。

排除特殊符號

for word in words:
            if word not in stopwords:
                if len(word) == 1:
                    continue
                else:
                    counts[word] = counts.get(word,0) + 1

出現頻率加一。

2.3,lambda函數

使用lambda函數,sort快速排序,遍歷輸出頻率前50的詞性。

items.sort(key=lambda x:x[1], reverse=True)

之後賦值word, count

word, count = items[i]
    print ("{:<10}{:>7}".format(word, count))

三,執行

3.1,存入檔案

f=open('towa.txt',"a",encoding='gb18030')
            f.writelines("題目:"+textxxx)
            f.writelines(word_ping)

到此這篇關於python資料處理詳情的文章就介紹到這了,更多相關python資料處理內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com