什么是假新闻?
假新闻一般是夸大其辞的,通过网络达到迅速传播的新闻.通过检查特定的词汇分析感情,和算法可以推演出是否是假新闻
TfidfVectorizer ?中文用jieba
TfidfVectorizer可以把原始文本转化为tf-idf的特征矩阵,从而为后续的文本相似度计算,主题模型(如LSI),文本搜索排序等一系列应用奠定基础。利于算法量化文字
[tfidf介绍](https://zhuanlan.zhihu.com/p/67883024)
PassiveAggressiveClassifier?
一种增量学习方法好处是他的算法不断改进
增量算法
前置条件
import numpy as np
import pandas as pd
import itertools
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import PassiveAggressiveClassifier
from sklearn.metrics import accuracy_score, confusion_matrix
缺少的库可以通过
pip install numpy pandas sklearn 之类的下载
#Read the data直接读取数据
df=pd.read_csv('D:\\DataFlair\\news.csv')
#df.shape
#df.head()
#获取标签
labels=df.label
labels.head()
#DataFlair - Split the dataset 分开4个子集 在这里根据
x_train,x_test,y_train,y_test=train_test_split(df['text'], labels, test_size=0.2, random_state=7)
#DataFlair - Initialize a TfidfVectorizer 初始化Tfidf,训练,构建词汇表以及词项idf值,并将输入文本列表转成VSM矩阵形式
tfidf_vectorizer=TfidfVectorizer(stop_words='english', max_df=0.7)
#DataFlair - Fit and transform train set, transform test set
tfidf_train=tfidf_vectorizer.fit_transform(x_train)
tfidf_test=tfidf_vectorizer.transform(x_test)
#DataFlair - Initialize a PassiveAggressiveClassifier 一次初始循环量为50
pac=PassiveAggressiveClassifier(max_iter=50)
pac.fit(tfidf_train,y_train)
#DataFlair - Predict on the test set and calculate accuracy 根据test组数据预测pred组
y_pred=pac.predict(tfidf_test)
score=accuracy_score(y_test,y_pred)
print(f'Accuracy: {round(score*100,2)}%')
#DataFlair - Build confusion matrix建立 矩阵
confusion_matrix(y_test,y_pred, labels=['FAKE','REAL'])