Case1 以词为单元
在文本处理的过程中,有时我们并不是需要所有的数据,而实需要包含某些关键词的文本,因此可以通过for循环进行遍历筛选。
具体流程:读取数据 — 分词 — 遍历筛选 — 拼接还原
step1:导入所需要的包和数据集
import pandas as pd
import jieba
#数据分割
data = pd.read_excel('不止武汉.xlsx')['内容']#读取需要筛选的内容列
other = pd.read_excel('不止武汉.xlsx').iloc[:,1]#读取其他列
keys=open('关键词.txt','r',encoding='utf-8').read()#读取关键词
内容示例:
关键词示例:
step2:遍历筛选
words=[]
for comment in data:
c_words = jieba.cut(comment)
words.append([word for word in c_words if word in keys])
step3:拼接还原
由于step2筛选结果是一个list of list的格式,因此需要将其转化为一层List并且再进行拼接
main=[]
for i in words:
main.append(' '.join(i))
result = pd.concat([pd.DataFrame(main),other],axis=1)
最终的结果:
Case2 以文档(评论)为单元
法1:for循环
df = pd.read_excel('data.xlsx')['评论']
key = open(data.txt','r',encoding='utf-8').readlines()
result=[]
for i in df:
for j in key:
if j in i:
result.append(i)
法2:pandas
df = pd.read_excel('data.xlsx')['评论']
key = open(data.txt','r',encoding='utf-8').readlines()
key_words = '|'.join(key)#一定要保持这个形式
key_words = kansei.replace('\n', '')
data = df[df.str.contains(key_words)]