准备数据:切分文本
现提供邮件文件夹:spam;非垃圾邮件文件夹:ham,各有25封邮件。
将邮件中的内容文本,进行分割,转换成一系列词语组成的列表
def textParse(bigString){
import re;
listOfTokens=re.split('\W',bigString) ;
return [tok.lower() for tok in listOfTokens if len(tok)>2];
}
准备数据:从文本中构建词向量
(1)首先将所有文档中的单词组成词汇表
def creatVocabList(dataset){
vocabSet=set([]);
for document in dataset{
vocabSet=vocabSet|set(document);
}
return list(vocabSet);
}
(2)将每一篇文档转换为词汇表上的向量,现有两种模型:词集模型与词袋模型
词集模型:文档转换成的向量中的每一元素为1或0,分别表示词汇表中的单词在输入文档中是否出现。
词袋模型:文档转换成的向量中的每一元素,表示词汇表中的单词在输入文档中出现的次数
def setOfWords2Vec(vocabList,inputSet){
returnVec=[0]*len(vocabList);
for word in inp