• 机器学习入门-贝叶斯统计语料库的词频.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 != '	
    ':
            Jie_content.append(split_content)
    
    # 3. 导入停止词的语料库, sep='	'表示分隔符, quoting控制引号的常量, names=列名, index_col=False,不用第一列做为行的列名, encoding
    stopwords = pd.read_csv('stopwords.txt', sep='	', 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())
  • 相关阅读:
    AjaxPro.2.dll基本使用
    能够按页号提取word文档文本内容的小程序,由C#实现
    Reflect反编译C#程序
    模态对话框
    【转】Google Chrome如何保存密码口令
    Android 应用的签名的基本原则
    几款keylogger
    对一个利用短链接进行钓鱼行为的小小分析
    2011年10月百度笔试 RD3—第4题
    TCP中有哪些机制保证了可靠传输
  • 原文地址:https://www.cnblogs.com/my-love-is-python/p/10290242.html
Copyright © 2020-2023  润新知