网络编程
位置:首页>> 网络编程>> Python编程>> 使用python进行文本预处理和提取特征的实例

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

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

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

如下所示:


<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

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com