使用python进行文本预处理和提取特征的实例

作者:Johline 时间:2022-07-13 21:25:47 

如下所示:


<strong><span style="font-size:14px;">文本过滤</span></strong>

result = re.sub(r'[^\u4e00-\u9fa5,。?!,、;:“ ”‘ '( )《 》〈 〉]', "", content)#只保留中文和标点


result = re.sub(r'[^\u4e00-\u9fa5]', "",content)#只保留中文
result = re.sub(r'[^\0-9\.\u4e00-\u9fa5,。?!,、;:“ ”‘ '( )《 》〈 〉]', "", content)#只保留中文和标点和数字
result = re.sub(r'[^\u4e00-\u9fa5,A-Za-z0-9]', "",content)#只保留中文、英文和数字

文本去除两个以上空格


content=re.sub(r'\s{2,}', '', content)

bas4编码变成中文


def bas4_decode(bas4_content):
decodestr= base64.b64decode(bas4_content)
result = re.sub(r'[^\0-9\.\u4e00-\u9fa5,。?!,、;:“ ”‘ '( )《 》〈 〉]', "", decodestr.decode())#只保留中文和标点和数字
return result

文本去停用词


def text_to_wordlist(text):
result = re.sub(r'[^\u4e00-\u9fa5]', "",text)
f1_seg_list = jieba.cut(result)#需要添加一个词典,来弥补结巴分词中没有的词语,从而保证更高的正确率
f_stop = codecs.open(".\stopword.txt","r","utf-8")
try:
 f_stop_text = f_stop.read()
finally:
 f_stop.close()
f_stop_seg_list = f_stop_text.split()

test_words = []

for myword in f1_seg_list:
 if myword not in f_stop_seg_list:
  test_words.append(myword)

return test_words

文本特征提取


import jieba
import jieba.analyse
import numpy as np
#import json
import re

def Textrank(content):
result = re.sub(r'[^\u4e00-\u9fa5]', "",content)
seg = jieba.cut(result)
jieba.analyse.set_stop_words('stopword.txt')
keyList=jieba.analyse.textrank('|'.join(seg), topK=10, withWeight=False)
return keyList

def TF_IDF(content):
result = re.sub(r'[^\u4e00-\u9fa5]', "",content)
seg = jieba.cut(result)
jieba.analyse.set_stop_words('stopword.txt')
keyWord = jieba.analyse.extract_tags(
 '|'.join(seg), topK=10, withWeight=False, allowPOS=())#关键词提取,在这里对jieba的tfidf.py进行了修改
return keyWord

来源:https://blog.csdn.net/Johline/article/details/78802381

标签:python,预处理,提取,特征
0
投稿

猜你喜欢

  • js调用AJAX时Get和post的乱码解决方法

    2024-05-09 10:38:11
  • 让SQL Server数据库自动执行管理任务(一)

    2009-03-20 10:35:00
  • PHP中非常有用却鲜有人知的函数集锦

    2023-11-24 14:29:47
  • PyCharm 常用快捷键和设置方法

    2022-04-09 01:40:59
  • 简述:我为什么选择Python而不是Matlab和R语言

    2021-05-13 06:51:27
  • MySQL六种约束的示例详解

    2024-01-16 19:15:38
  • Go语言defer语句的三种机制整理

    2024-05-02 16:25:25
  • MYSQL教程:服务器优化和硬件优化

    2009-02-27 15:43:00
  • 简单了解django索引的相关知识

    2021-10-01 14:55:43
  • Mysql DDL常见操作汇总

    2024-01-22 05:30:09
  • Python异常学习笔记

    2021-03-24 01:33:33
  • 浅析Mysql和Oracle分页的区别

    2024-01-23 16:38:49
  • Vue CLI2升级至Vue CLI3的方法步骤

    2024-06-05 10:03:25
  • JavaScript插件化开发教程 (一)

    2024-04-26 17:13:07
  • Python实现GUI计算器(附源码)

    2022-06-07 03:32:47
  • vue 无法覆盖vant的UI组件的样式问题

    2024-05-13 09:44:23
  • 远程部署工具Fabric详解(支持Python3)

    2023-10-26 14:05:18
  • Flask实现图片的上传、下载及展示示例代码

    2023-07-14 20:46:17
  • cordova+vue+webapp使用html5获取地理位置的方法

    2024-04-27 16:00:05
  • Python实现各种邮件发送

    2021-09-01 17:35:47
  • asp之家 网络编程 m.aspxhome.com