網站首頁 編程語言 正文
一,前言
我們現在拿到了一個十分龐大的數據集。是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)
原文鏈接:https://blog.csdn.net/weixin_52908342/article/details/124065858
相關推薦
- 2022-12-04 Golang如何快速構建一個CLI小工具詳解_Golang
- 2022-12-25 Flutter開發通用頁面Loading組件示例詳解_Android
- 2023-12-07 mitt 的使用
- 2022-04-07 Kotlin原理詳析之拓展函數_Android
- 2023-03-25 Android?Jetpack組件ViewModel基本用法詳解_Android
- 2022-08-20 python深入講解魔術方法_python
- 2022-04-20 基于PyQT5制作一個桌面摸魚工具_python
- 2022-06-18 C#多線程的ResetAbort()方法_C#教程
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支