工作需要,需要长文本中包含特定关键词的句子,且句子提取之后要能够和原数据一一对应起来。
我用的方法是
# -*- coding: utf-8 -*-
"""
Created on Sun Mar 1 11:20:50 2020
@author: weisssun
"""
import re
import csv
import pandas as pd
#将长文本中包含特定关键词的句子提取出来
#list_5g = []
pattern = r'\.|/|;|\'|`|\?|"|\~|!|\^|。|‘|’|·|!|…'
#断句符号
juzi = {}
content = pd.read_excel(r'D:\Python\含5G评论.xlsx')
#读取原始文本所在的excel文件
comments = content.set_index("序号").to_dict()['评论']
#序号列用来作为区分标志和dict的键值,评论列存放原始文本
for k, v in comments.items():
result_list = re.split(pattern, v)
#print(result_list)
for i in result_list:
if '5g' in i or '5G' in i:
#句子是否包含特定关键词'5g'或'5G'
#print(i)
#list_5g.append(i)
juzi[k] = i
#将包含关键词的句子,和相应评论的序号保存到字典中
with open(r'D:\Python\5g_comments.csv', 'w', newline='',encoding='gbk') as f:
#将包含关键词的句子和序号写入csv文件
writer = csv.writer(f)
for k, v in juzi.items():
writer.writerow([k, v])