Python调库笔记

平时做作业、解决问题的时候会留下一些python的demo,一些基础操作重用率很高。
在这里对这些demo做个小笔记,方便下次调用。不定期更新,如有不对之处恳请指正。

目录:

文件读写

jieba 分词

sklearn库

word2vec

wordcloud

 

文件读写

1.Json/List的读写

import json
# 读操作
json_file_path = 'xxx.json'
json_file_path = 'xxx.txt' # txt文件里存list格式
fr = open(json_file_path, "r", encoding='utf-8')  # 打开json文件
DetailData = json.load(fr)  # DetailData中装有的便是json文件中的内容
fr.close()
# 写操作
fw = open(json_file_path, "w", encoding='utf-8')  # 打开json文件
json.dump(DetailData, fw, ensure_ascii=False, indent=4)
fw.close()

2.读文字txt

str=''
fr = open("xxx.txt", "r", encoding='utf-8')  # 打开json文件
for line in fr:
    str=str+line
fr.close()
print(str)

3.读csv

# csv.reader()方法
import csv
def readCSV_1(filePath):
	# filePath:'xxx.csv'
    csvfile = open(filePath, 'rt', encoding='gbk')
    reader = csv.reader(csvfile)  # reader:csv一行一个列表
    res_list = list(reader)
    return res_list
# csv.DictReader()方法
import csv
def readCSV_2(filePath):
	# filePath:'xxx.csv'
    csvfile = open(filePath, 'rt', encoding='gbk')
    reader=csv.DictReader(csvfile) # reader:保存数据行的Python字典
    res_list=[]  # 装每行字典的list
    for row in reader:
    	res_list.append(dict(row))
	return res_list

4.获得文件夹里每个文件的名称

def getFileList(folder):
	# folder:文件夹路径
    import os
    fileList=os.listdir(folder)
    for i in range(len(fileList)):
        fileList[i]=folder+'/'+fileList[i]
    return fileList

 

jieba 分词

import jieba
words = jieba.cut("好心人给消防烈士父母买房")  # words是一个generator对象
word_list = []
for word in words:
    word_list.append(word)
# word_list=['好心人', '给', '消防', '烈士', '父母', '买房']

 

sklearn库

1.SVM

import numpy as np
from sklearn.svm import SVC
from sklearn.externals import joblib
X = np.array([[-1, -1], [-2, -1], [1, 1], [2, 1]])  # 训练集
y = np.array([1, 1, 2, 2])  # 训练集对应的分类值。哪两个数字都可以
clf = SVC(C=2.0,gamma='auto')  # 创建模型
clf.fit(X,y)  # 训练模型

# 测试
test_list = [[-0.8,-1],[-2,-1],[50,1],[49,56],[23,54],[-40,-60],[-69,80]]
print(clf.predict(test_list))  # 输出测试集的预测分类结果--直接测试

# 训练好的模型,存储和使用
# 存储
joblib.dump(clf, 'myClf.pkl')
# 使用
clf3 = joblib.load('myClf.pkl')
print(clf3.predict(test_list)) # 输出对测试集的预测结果的list

2.TF-IDF + Naive Bayes
写的挺好,可以直接运行

 

Word2Vec

from gensim.models import Word2Vec
from gensim.models import word2vec
model_filePath = 'myModel.model'
sentences = [['computer','human'],
				['篮球'],['唱跳','rap']]  # 一定要是这种列表套列表的形式

# 训练词向量
model = word2vec.Word2Vec(sentences=sentences, size=100, window=5, min_count=1)
model.save(model_filePath)  # 训练出的词向量模型存起来
model = Word2Vec.load(model_filePath)  # 加载词向量模型
print(model['computer','篮球']) # 输出词向量生成结果

 

wordcloud词云

import jieba
import matplotlib.pyplot as plt
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
from os import path
def make_worldcloud(file_path):
    '''
    输入装文本的列表,生成词云
    :param file_path: 'xxx.txt',文本列表的文档
    :return: null
    '''
    text_from_file_with_apath = open(file_path, 'r', encoding='UTF-8').read()  # 读取文本列表
    print(text_from_file_with_apath)
    wordlist_after_jieba = jieba.cut(text_from_file_with_apath, cut_all=False)
    wl_space_split = " ".join(wordlist_after_jieba)  # 分词后用空格隔开
    print(wl_space_split)
    backgroud_image = plt.imread('target_Img.jpg')  # 以target_Img.jpg作为背景图片
    print('加载图片成功!')
    '''设置停用词'''
    stopwords = STOPWORDS.copy()
    stopwords.add("回复")  # 可以加多个屏蔽词
    stopwords.add("他们")
    stopwords.add("你们")
    stopwords.add("我们")
    '''设置词云样式'''
    wc = WordCloud(
        width=1024,
        height=768,
        background_color='white',  # 设置背景颜色
        mask=backgroud_image,  # 设置背景图片
        font_path='WeiRuanYaHei.ttf',  # 设置中文字体,若有中文,这句必须添加,否则汉字显示方框
        max_words=80,  # 设置最大现实的字数
        stopwords=stopwords,  # 设置停用词
        max_font_size=120,  # 设置字体最大值
        random_state=50,  # 设置有多少种随机生成状态,即有多少种配色方案
    )
    wc.generate_from_text(wl_space_split)  # 开始加载文本
    img_colors = ImageColorGenerator(backgroud_image)
    wc.recolor(color_func=img_colors)  # 字体颜色为背景图片的颜色
    plt.imshow(wc)  # 显示词云图
    plt.axis('off')  # 是否显示x轴、y轴下标
    plt.show()  # 显示
    d = path.dirname(__file__)  # 获得模块所在的路径
    wc.to_file(path.join(d, "word_cloud_cn.png"))
    print('生成词云成功!')
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值