这是一个课程作业,主要是摘取了美国国内具有影响力的新闻网站关于俄亥俄州氯乙烯泄漏事件的新闻报道标题、日期和全文,人工进行情感和重点标注,是一个进行文本分析的小尝试。
首先是配置需要的环境。
#This project was designed and coded by Meiling Zhong
pip install jieba
pip install wordcloud
#按道理英文的话要用nltk,但是由于wall的原因,pip的时候无法响应
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import seaborn as sns
from wordcloud import WordCloud
import copy
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.preprocessing import StandardScaler
from sklearn import preprocessing
from sklearn.preprocessing import LabelEncoder
import jieba
import re
#import nltk
#import nltk.corpus as nc
#import nltk.classify as cf
#import nltk.classify.util as cu
#from nltk.corpus import stopwords
#from nltk.tokenize import word_tokenize
from datetime import datetime
from datetime import timedelta
import warnings
warnings.filterwarnings('ignore')
sns.set_style('white')
sns.set_palette('Set2')
接下来是导入数据和对数据进行查看。
df= pd.read_excel('俄亥俄数据5.31.xlsx').astype(str)
# 将data转换为DataFrame格式
df = pd.DataFrame(df)
df.head()
df.info()
在Jupyter中运行结果显示如下:
接下来,我们就可以开展一些简单的统计分析。
首先是新闻发布特点,如时间、热点、关键词等等。
在词频的统计上,一个缺陷是stop_words_list在运行当中好像并没有起到作用,导致后面词云生成有些不好。
除了这些,还可以对新闻的情感进行简单的统计。
我们还可以创建新的编码标签来观察新闻关键词、新闻情感和新闻类型之间的关系。
绘制的可视化图如下,可以反映不同情感类型的新闻在报道上的覆盖面。
第一个文本分析项目,存在很多不足,请多多指教。