赞
踩
舆情分析、文本分析,在做特征提取时,需要把一整段内容合并后,提取内容中的热词、F-IDF权重和词频,本编以python编程,分享如何通过结巴分词简易上手。
先给代码片段配内容讲解,篇尾给完整的python代码。
- 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文件的内容格式
- 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)
- 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)): #去掉空格和包含数字的分词(浮点型、带有%的百分比分词)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。