使用python将excel长文本中包含特定关键词的句子提取出来

工作需要,需要长文本中包含特定关键词的句子,且句子提取之后要能够和原数据一一对应起来。
我用的方法是

  1. 给原数据每一行一个序号,作为唯一标志。将excel中序号和评论这两列作为字典读取
  2. 对评论分句,将分句结果保存为列表
  3. 找到包含关键词的句子,将其和评论序号存入新字典
  4. 将字典写入csv文件
# -*- 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])

你可能感兴趣的:(Python)