餐厅评论的 NLP 分析2025年6月21日 | 阅读 5 分钟 自然语言处理(NLP)领域是计算机科学的一个分支,也是人工智能的一个分支,它专注于计算机系统与人类(自然)语言之间的交互,特别是计算机如何被编程来处理和分析海量的自然语言数据。它是机器学习的一个分支,涉及分析任何文本并实施预测性分析。Scikit-learn 是一个与 Python 编程语言兼容的开源机器学习库。Scikit-learn 主要用 Python 编写,并使用 Cython 编写了一些基本方法以提供性能。Cython 是 Python 编程语言的一个子集,旨在通过使用大部分用 Python 编写的代码来模仿 C 的性能。 让我们来探索文本处理涉及的各种过程以及 NLP 的过程。 该算法可以分析任何文本,例如将书籍分类为浪漫小说和虚构小说。在此期间,让我们利用现有的餐厅评论数据集来分析正面和负面反馈。 涉及的步骤以下是如何使用 NLP 分析餐厅评论的分步说明: 步骤 1:导入数据,将分隔符设置为“t”。它们由制表符分隔。评论和类别(0 和 1)之间没有分隔符号。但是,它们使用制表符分隔,因为评论中的大多数其他符号(如 $ 表示值,...! 等)都会被算法用作分隔符,从而导致输出出现奇怪的行为(如奇怪的输出、错误)。 代码 步骤 2:文本清洗或预处理
![]() 代码 步骤 3:分词。这涉及从文本主体中分离单词和句子。 步骤 4:词袋模型(使用稀疏矩阵)
为此,我们需要 `sklearn.feature_extraction.text` 中的 `CountVectorizer` 类。还可以通过设置属性“max_features”来设置允许的最大特征数(最重要的特征)。对语料库进行训练,然后将相同的转换应用于语料库 `.fit_transform(corpus)`,然后将其转换为数组。评论是负面还是正面,都包含在数据的第二列中(所有行和第一列,索引从零开始)。 代码 待使用数据的描述
![]() 步骤 5:将语料库拆分为测试集和训练集。为此,我们需要 `sklearn.cross_validation` 中的 `train_test_split` 类。分割可以设置为 70/30、70/30、80/20 或 85/15,或 75/25。在本例中,我通过“test_size”选择了 75/25。词袋模型 `X` 和 `y` 可以是 0 和 1(正面或负面)。 代码 步骤 6:使用预测模型(此处,我们将使用随机森林分类器)
代码 步骤 7:使用 `.predict()` 技术并使用 `X_test` 属性预测最终结果。 代码 输出 ![]() 注意:随机森林的准确率为 72%。 (如果我们尝试使用不同的测试集大小,结果可能会不同;在本例中为 0.25)。步骤 8:为了了解准确率结果的精确度,我们需要获取混淆矩阵。 混淆矩阵是一个 2X2 矩阵。 真阳性 (TP):衡量真实阳性中被正确识别的比例。 真阴性 (TN):确定真实阳性中未被正确识别的比例。 假阳性 (FP):衡量真实阴性中被正确识别的比例。 假阴性 (FN):确定真实阴性中未被正确识别的比例。 代码 输出 array([[105, 25], [ 41, 79]], dtype=int64) 下一主题数据归一化(使用 Pandas) |
我们请求您订阅我们的新闻通讯以获取最新更新。