上手结巴分词文本分析,输出热词、TF-IDF权重和词频

前言

舆情分析、文本分析,在做特征提取时,需要把一整段内容合并后,提取内容中的热词、F-IDF权重和词频,本编以python编程,分享如何通过结巴分词简易上手。

代码讲解

先给代码片段配内容讲解,篇尾给完整的python代码。

1、读取文本信息

import pandas as pd


# 1.导入数据语料的特征源数据
    #df_data = pd.read_table('data.txt', names=[ 'type', 'content'], encoding='utf-8')  #读txt文本的方式,names=[ 'type', 'content'] 表示读取两个字段内容
    df_data = pd.read_excel('data.xlsx',names=['type','content'],header =0)   
    contentslist = df_data.content.values.tolist()  #这是一个list,从多维数组df_data里面提取'content'这一列内容

引用pd,有两种读取方式,txt文件使用pd.read_table,excel文件使用pd.read_excel,内容如下:

 txt文件的内容格式

 excel文件的内容格式

2、通过结巴分词获取分词后的内容

import jieba
import jieba.analyse

def jiebacut(content):
    content_S = []
    for line in content:
        # jieba分词 精确模式。返回一个列表类型,建议使用
        current_segment = jieba.lcut(line) #每一行都做分词
        if len(current_segment) > 1 and current_segment != '\r\n':
            content_S.append(current_segment)
    return content_S

# 2、通过jieba分词,获取分词后的内容list
jieba_contentslist=jiebacut(contentslist)

3、获取删除停用词后的分词

import re
import jieba
import jieba.analyse

# 删除内容中的停用词
def drop_stopwords(contents, stopwords):
    contents_clean = [] # 删除后的新闻
    all_words = []  # 构造词云所用的数据
    for line in contents:
        line_clean = []
        for word in line:
            if word in stopwords:  #这里只去掉停词表的内容,没有做去重
                continue
            if word == ' ' or bool(re.search(r'\d', word)):  #去掉空格和包含数字的分词(浮点型、带有%的百分比分词)
           
  • 8
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码定义了一个名为drop_stopwords的函数,用来去除分词结果中的停用,并返回去除停用后的分词结果以及所有单的列表。 第一行代码`def drop_stopwords(contents,stopwords):` 定义了一个函数名为drop_stopwords,该函数接受两个参数:contents为分词结果列表,stopwords为停用列表。 第二行代码`contents_clean = []` 创建一个空列表contents_clean,用来存储去除停用后的分词结果。 第三行代码`all_words = []` 创建一个空列表all_words,用来存储所有的单。 第四行代码使用了两个for循环,对每个分词结果进行处理。外层循环遍历所有的分词列表line,内层循环对每个分词结果中的每个单进行处理。 第五行代码`if word in stopwords: continue` 是用来判断当前单是否为停用,如果是,则跳过当前单,继续处理下一个单。 第六行代码`line_clean.append(word)` 是将当前单加入到line_clean列表中。 第七行代码`all_words.append(str(word))` 是将当前单加入到all_words列表中(注意,这里将单转换为字符串类型)。 第八行代码`contents_clean.append(line_clean)` 是将去除停用后的分词结果加入到contents_clean列表中。 第九行代码`return contents_clean,all_words` 是将去除停用后的分词结果以及所有单的列表作为函数的返回值。 最后两行代码将分词结果列表和停用列表作为参数传递给drop_stopwords函数,并将返回的结果分别保存到contents_clean和all_words变量中。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值