2024年1月23日发(作者:)
一、实验名称:使用朴素贝叶斯进行社会媒体挖掘
1、实验目的:
使用朴素贝叶斯进行社会媒体挖掘
2、实验内容:
学习朴素贝叶斯算法原理,并使用朴素贝叶斯进行社会媒体挖掘
3、实验环境(设备、软件、实验数据):
设备:笔记本电脑
软件:Python idle
实验数据:python_、python_
4、实验步骤:
1. 安装相关Python库Json、nltk、Numpy、Sklearn、twitter;
2. 从社交网站下载数据;
import twitter
consumer_key = "
consumer_secret = "
access_token = "
access_token_secret = "
authorization = (access_token, access_token_secret,
consumer_key, consumer_secret)
import os
output_filename = (user("~"),"Data", "twitter", "python_")
import json
t = r(auth=authorization)
3. 获取到Twitter消息,使用json库的dump函数将其转换为字符串形式后,写入到输出文件中;
with open(output_filename, 'a') as output_file:
search_results = (q="python", count=100)['statuses']
for tweet in search_results:
if 'text' in tweet:
output_((tweet))
output_("nn")
4. 加载库,提取消息;
import os
import json
from e_extraction import DictVectorizer
from _bayes import BernoulliNB
import numpy as np
from import TransformerMixin
from nltk import word_tokenize
from _selection import cross_val_score
from ne import Pipeline
# 添加文件路径,路径最好不要出现中文
input_filename = ("../", "Data", "twitter", "python_")
labels_filename = ("../", "Data", "twitter", "python_")
#加载消息。我们只对消息内容感兴趣,因此只提取和存储它们的text值,存在tewwts[]内
tweets = []
with open(input_filename) as inf:
for line in inf:
# strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列。
if len(()) == 0:
continue
((line)['text'])
#加载数据集:消息的类别(设置消息的类别为1或0)
with open(labels_filename) as inf:
labels = (inf)
5. 构造一个用于抽取特征的类,返回结果为一个元素为字典的列表,第一个字典的各项为第一条消息中的所有词语;
class NLTKBOW(TransformerMixin):
def fit(self, X, y=None):
return self
def transform(self, X):
#word_tokenize 对句子进行分词
return [{word: True for word in word_tokenize(document)} for document in X]
6. 抽取特征,将字典转换为矩阵,分类器安装顺序组装起来,创建流水线,将之前获取的消息导入流水线进行处理,得出结果;
#流水线的每一步都用元组(‘名称’,步骤)来表示。现在来创建流水线。
#具体使用流水线在第三章实验流水线。
pipeline = Pipeline([('bag-of-words', NLTKBOW()), ('vectorizer', DictVectorizer()), ('naive-bayes',
BernoulliNB())])
#通过交叉检验使用流水线,导入数据
scores = cross_val_score(pipeline, tweets, labels, scoring='f1',cv=3)
print("Score: {:.3f}".format((scores)))
输出结果:
5、总结及心得体会:
通过本次实验,我学习朴素贝叶斯算法原理,并使用朴素贝叶斯进行社会媒体挖掘,学会了如何到社交网络上获取数据并进行分析处理。
发布者:admin,转转请注明出处:http://www.yc00.com/news/1705979735a1432829.html
评论列表(0条)