pip install sklearn
您还需要安装Jupyter Lab 。JupyterLab是用于Jupyter数据,代码和笔记本的基于Web的工具 。它很灵活 。您可以自定义它以在机器学习,科学计算和数据科学中的多个工作流上工作 。运行以下命令:
pip install jupyter lab
安装后,您可以在命令提示符下键入以下命令 。
C:> jupyter lab
浏览器打开一个新窗口 。转到"新建"à"控制台" 。检查下方的文本框-您将在此处输入代码 。输入Shift + Enter运行命令 。
我们将使用什么数据集?我们使用的大型数据集包含7796行和4列 。这些列表示:
- 标识符
- 新闻标题
- 新闻文字
- 标签 。即 新闻是真是假
社交媒体上的事实检查新闻导入刚在JupyterLab控制台中安装的所有库 。运行以下代码:
import numpy as nyimport pandas as psimport itertoolsfrom sklearn.model_selection import train_test_splitfrom sklearn.feature_extraction.text import TfidfVectorizerfrom sklearn.linear_model import PassiveAggressiveClassifierfrom sklearn.metrics import accuracy_score, confusion_matrix我们需要将Excel数据转换为二维数据结构(矩阵) 。为此,我们将使用pandas中的DataFrame 。它是一个二维数据结构,可以包含异构列 。通过使用形状和头部属性,我们可以确定格式并检查数据集的行 。运行以下代码:#从数据集中读取
df = ps.read_csv('C: SocialFactCheckPythonnews.csv')df.shapedf.head(6)
文章插图
使用DataFrame获取正确和错误的事实 。运行以下代码:
#检查标签
factcheck = df.labelfactcheck.head(7)
文章插图
现在是常见的任务-将数据集分为两组:训练和测试 。
#分割数据集
a_train,a_test,b_train,b_test = train_test_split(df ['text'],factcheck,test_size = 0.15,random_state = 8)初始化一个TfidfVectorizer 。设置英语停用词并指定最大文档频率为0.65 。这表示将删除包含较高文档频率的术语 。我们总是过滤掉停用词以进行自然语言处理 。TfidfVectorizer用于将一组原始文档转换为TF-IDF功能矩阵 。随机状态用于指定随机生成的种子 。它确保火车分割测试始终是确定性的 。
使用矢量化器来拟合和变换训练集和测试集 。.fit_transform学习词汇和反向文档频率 。作为响应,它创建术语文档矩阵 。.transform返回术语文档矩阵 。运行以下代码:
tfidf_vectorizer = TfidfVectorizer(stop_words =" english",max_df = 0.65)tfidf_train = tfidf_vectorizer.fit_transform(a_train)tfidf_test = tfidf_vectorizer.transform(a_test)现在,您需要初始化PassiveAggressive分类器,该分类器将安装在tfidf_train和b_train上 。TfidfVectorizer有助于通过sklearn.metrics的准确性score()对测试集进行预测,并进行事实检查准确性 。在多标签分类中,准确性score()函数用于处理子集的准确性 。为样本预测的标签必须与其他子集中的相应标签完全匹配 。
运行以下代码:
pclass = PassiveAggressiveClassifier(max_iter = 60)pclass.fit(tfidf_train,b_train)b_pred = pclass.predict(tfidf_test)factcheckscore = accuracy_score(b_test,b_pred)print(f’Fact-check Accuracy Is {round(factcheckscore*100,2)}%’)这表明从假新闻中调用真实新闻时,我们的模型准确率为94.43% 。让我们看看它是对的 。运行以下代码:
文章插图
这意味着我们有456个真实阳性,442个真实阴性,27个假阳性和49个假阳性 。
最后的想法Python可用于检测社交媒体上的虚假新闻 。我们从包含政治新闻的数据集中提取数据,使用TfidfVectorizer将其转换为向量,运行
PassiveAggressiveClassifier,然后拟合模型 。最终,我们产生了94.43%的准确性 。
(本文翻译自Gayle Kurtzer-Meyers的文章《Using Python to Detect Fake News》,参考:
https://medium.com/datadriveninvestor/using-python-to-detect-fake-news-7895101aebb8)
推荐阅读
- 学习python你必须弄懂的 Python、Pycharm、Anaconda 三者的关系
- 为什么数据库不应该使用外键
- Docker容器完整使用教程
- 使用Transformer构建自己的机器翻译服务
- Python 图像处理 | 图像平滑之均值滤波、方框滤波、高斯滤波及中值滤波
- win10数字小键盘开机不亮灯的原因是什么?
- 茶叶脱氧保鲜剂的使用,茶叶保鲜绝对好用的三招
- 淘宝极速推怎么使用 淘宝极速推展现在哪里呢?
- 淘宝上的极速推广有用吗 淘宝极速推怎么使用
- 淘宝的超级店长怎么使用 超级店长怎么用
