例子是我学习的教程的一个例子,收集了一些客户对于饭店的评价,目标是将他们进行分类,分成好评和差评。
数据的前5项:
这里用到了一个之前没用到的包NLTK对我们的文本数据进行必要的处理,转化,使其变成能够进入我们模型的数据,本文针对一个例子进行介绍,详细可以查看官方文档对于这个包的说明。
NLTK的介绍:
NLTK是一个高效的Python构建的平台,用来处理人类自然语言数据。它提供了易于使用的接口,通过这些接口可以访问超过50个语料库和词汇资源(如WordNet),还有一套用于分类、标记化、词干标记、解析和语义推理的文本处理库。
实现的大致步骤:
- 对文本进行处理(去除标点符号,单词提取,大小写转化…)
- 提取出来的单词需要进一步的清理(去除虚词,单词词根化…)词根化处理是为了避免相同单词的不同形式影响到我们的模型。(因为最终模型对于结果的处理是通过统计词出现的频率所属的类别并依此来对新样本进行分类的)
- 对提取结果进行稀疏矩阵化操作,转化为可进入模型的数据。
代码:
import pandas as pd
import numpy as np
import re #正则用到的库
import nltk #文本处理用
from nltk.corpus import stopwords #处理文本中的虚词
nltk.download('stopwords') #将包含的虚词的加载下来,用于后面的比对,去除虚词
from nltk.stem.porter import PorterStemmer
dataset = pd.read_csv('Restaurant_Reviews.tsv',delimiter='\t') #加载数据
pocket = [] #用于存储处理后的文本
for i in range(dataset.shape[0