机器学习入门-贝叶斯统计语料库的词频.groupby() collections

1..groupby()[].agg(by={})

2. collections.de...(lambda:1)

统计的单词是语料库中所有的词, 对Dataframe统计单词词频,同时增加一列数据count,这里我们使用reset_index,sort_values(by = [‘counts], ascending=False)

这里使用的数据是经过分词后的语料库里所有的数据,该数据已经去除了停用词,

第一步:载入语料库的数据

第二步:进行分词

第三步:载入停用词,对停用词数据进行序列化tolist(),然后去除分词后语料库中的停用词

第四步: 使用grouby()[].agg 进行词频统计,使用reset_index().sort_values根据新增的counts列进行排序操作

# 1.导入数据语料的新闻数据
df_data = pd.read_table(‘data/val.txt‘, names=[‘category‘, ‘theme‘, ‘URL‘, ‘content‘], encoding=‘utf-8‘)

# 2.对语料库进行分词操作
df_contents = df_data.content.values.tolist()

# list of list 结构
Jie_content = []
for df_content in df_contents:
    split_content = jieba.lcut(df_content)
    if len(split_content) > 1 and split_content != ‘\t\n‘:
        Jie_content.append(split_content)

# 3. 导入停止词的语料库, sep=‘\t‘表示分隔符, quoting控制引号的常量, names=列名, index_col=False,不用第一列做为行的列名, encoding
stopwords = pd.read_csv(‘stopwords.txt‘, sep=‘\t‘, quoting=3, names=[‘stopwords‘], index_col=False, encoding=‘utf-8‘)
print(stopwords.head())

# 对文本进行停止词的去除
def drop_stops(Jie_content, stopwords):
    clean_content = []
    all_words = []
    for j_content in Jie_content:
        line_clean = []
        for line in j_content:
            if line in stopwords:
                continue
            line_clean.append(line)
            all_words.append(line)
        clean_content.append(line_clean)

    return clean_content, all_words
# 将DateFrame的stopwords数据转换为list形式
stopwords = stopwords.stopwords.values.tolist()
clean_content, all_words = drop_stops(Jie_content, stopwords)
print(clean_content[0])

# 4 .对所有词统计词频,做一个字典,然后进行排序, 这里也可以使用collections实现

df_dict = pd.DataFrame({‘content‘:clean_content})
all_words_pd = pd.DataFrame({‘all_word‘:all_words})
all_words_pd = all_words_pd.groupby(by=[‘all_word‘])[‘all_word‘].agg({‘count‘:np.size})
all_words_pd = all_words_pd.reset_index().sort_values(by=[‘count‘], ascending=False)
print(all_words_pd.head())

原文地址:https://www.cnblogs.com/my-love-is-python/p/10290242.html

时间: 2024-08-01 01:09:35

机器学习入门-贝叶斯统计语料库的词频.groupby() collections的相关文章

机器学习入门-文本数据-构造词频词袋模型 1.re.sub(进行字符串的替换) 2.nltk.corpus.stopwords.words(获得停用词表) 3.nltk.WordPunctTokenizer(对字符串进行分词操作) 4.np.vectorize(对函数进行向量化) 5. CountVectorizer(构建词频的词袋模型)

函数说明: 1. re.sub(r'[^a-zA-Z0-9\s]', repl='', sting=string)  用于进行字符串的替换,这里我们用来去除标点符号 参数说明:r'[^a-zA-Z0-9\s]' 配对的模式,^表示起始位置,\s表示终止位置,[]表示取中间部分,这个的意思是找出除字符串大小写或者数字组成以外的东西,repl表示使用什么进行替换,这里使用'',即直接替换,string表示输入的字符串 2. stopwords = nltk.corpus.stopwords.word

机器学习入门资源--汇总

机器学习入门资源--汇总 基本概念 机器学习 机器学习是近20多年兴起的一门多领域交叉学科,涉及概率论.统计学.逼近论.凸分析.算法复杂度理论等多门学科.机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法.机器学习算法是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法.因为学习算法中涉及了大量的统计学理论,机器学习与统计推断学联系尤为密切,也被称为统计学习理论.算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法. 下面从微观到宏观试着梳理一下机器学习的范畴:

机器学习入门:线性回归及梯度下降

机器学习入门:线性回归及梯度下降 本文会讲到: (1)线性回归的定义 (2)单变量线性回归 (3)cost function:评价线性回归是否拟合训练集的方法 (4)梯度下降:解决线性回归的方法之一 (5)feature scaling:加快梯度下降执行速度的方法 (6)多变量线性回归   Linear Regression 注意一句话:多变量线性回归之前必须要Feature Scaling! 方法:线性回归属于监督学习,因此方法和监督学习应该是一样的,先给定一个训练集,根据这个训练集学习出一个

机器学习入门——单变量线性回归

线性回归的概念,在高中数学书里就出现过. 给你一些样本点,如何找出一条直线,使得最逼近这些样本点. 给出一个例子:假设 x 是房子面积,y是房子价格,确定一条直线需要theta0和theta1. 给出x,我们就可以计算出房子的价格 h(x) = theta0+theta1*x 关键是如何计算出theta0和theta1,也就是如何找出这么一条直线呢? 在这里,引入一个概念,叫做cost function.m表示样本个数,也就是训练样本数目 这是一个square error,学过统计的应该经常见到

【转载】机器学习入门者学习指南(经验分享)

机器学习入门者学习指南(经验分享) 2013-09-21 14:47 本人计算机研二,专业方向自然语言处理,个人对于机器学习挺感兴趣,于是开始学习.所以,原来这家伙是个菜鸟……正是由于自己是个菜鸟,所以体会到自学机器学习的艰辛,于是在这里分享一下个人的经验,希望能对入门者有所帮助.一些有关机器学习的介绍在这里就不做详细介绍了,感兴趣的同学可以去维基百科.就直接进入正题.1.去Coursera上Andrew Ng的<机器学习>,完成所有作业,最好能全部拿满分.这是相当入门的课程,老师是机器学习领

机器学习入门 - 1. 介绍与决策树(decision tree)

机器学习(Machine Learning) 介绍与决策树(Decision Tree) 机器学习入门系列 是 个人学习过程中的一些记录与心得.其主要以要点形式呈现,简洁明了. 1.什么是机器学习? 一个比较概括的理解是: 根据现有的数据,预测未来 2.核心思想 : Generalization 可以理解为,归纳.概括.就像是人的学习一样,找出一件事物与与一件事物的联系 3.归纳性的机器学习(Inductive machine learning) 其核心思想是使用训练数据,并从其中摸索出一套适用

老司机学python篇:第一季(基础速过、机器学习入门)

详情请交流  QQ  709639943 00.老司机学python篇:第一季(基础速过.机器学习入门) 00.Python 从入门到精通 78节.2000多分钟.36小时的高质量.精品.1080P高清视频教程!包括标准库.socket网络编程.多线程.多进程和协程. 00.Django实战之用户认证系统 00.Django实战之企业级博客 00.深入浅出Netty源码剖析 00.NIO+Netty5各种RPC架构实战演练 00.JMeter 深入进阶性能测试体系 各领域企业实战 00.30天搞

机器学习入门-文本特征-word2vec词向量模型 1.word2vec(进行word2vec映射编码)2.model.wv[&#39;sky&#39;]输出这个词的向量映射 3.model.wv.index2vec(输出经过映射的词名称)

函数说明: 1. from gensim.model import word2vec  构建模型 word2vec(corpus_token, size=feature_size, min_count=min_count, window=window, sample=sample) 参数说明:corpus_token已经进行切分的列表数据,数据格式是list of list , size表示的是特征向量的维度,即映射的维度, min_count表示最小的计数词,如果小于这个数的词,将不进行统计,

web安全之机器学习入门——3.1 KNN/k近邻算法

目录 sklearn.neighbors.NearestNeighbors 参数/方法 基础用法 用于监督学习 检测异常操作(一) 检测异常操作(二) 检测rootkit 检测webshell sklearn.neighbors.NearestNeighbors 参数: 方法: 基础用法 print(__doc__) from sklearn.neighbors import NearestNeighbors import numpy as np X = np.array([[-1, -1],