VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > 简明python教程 >
  • 垃圾邮件分类2

1.读取

1
2
3
4
5
6
7
8
9
10
11
12
# 1、读取数据集
def read_dataset():
     file_path = r'SMSSpamCollection'
     sms = open(file_path, encoding='utf-8')
     sms_data = []
     sms_label = []
     csv_reader = csv.reader(sms, delimiter='\t')
     for line in csv_reader:
        sms_label.append(line[0])  # 提取出标签
        sms_data.append(preprocessing(line[1]))  # 提取出特征
     sms.close()
     return sms_data, sms_label

2.数据预处理

1
2
3
4
5
6
7
8
9
10
11
# 2、数据预处理
def preprocess(text):
     tokens = [word for sent in nltk.sent_tokenize(text) for word in nltk.word_tokenize(sent)]  # 分词
     stops = stopwords.words('english')  # 使用英文的停用词表
     tokens = [token for token in tokens if token not in stops]  # 去除停用词
     tokens = [token.lower() for token in tokens if len(token) >= 3]  # 大小写,短词
     wnl = WordNetLemmatizer()
     tag = nltk.pos_tag(tokens)  # 词性
     tokens = [wnl.lemmatize(token, pos=get_wordnet_pos(tag[i][1])) for i, token in enumerate(tokens)]  # 词性还原
     preprocessed_text = ' '.join(tokens)
     return preprocessed_text

相关教程