首页 > 编程知识 正文

用Python分析豆瓣影评

时间:2023-11-22 03:22:16 阅读:294710 作者:PMNX

本文将介绍如何使用Python对豆瓣影评进行分析。

一、网页爬取

首先我们需要爬取豆瓣电影的影评数据。我们可以使用Python中的requests库和BeautifulSoup库来实现。

import requests
from bs4 import BeautifulSoup

def get_reviews(movie_id):
    url = f'https://movie.douban.com/subject/{movie_id}/comments?start=0&limit=20&status=P&sort=new_score'
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.182 Safari/537.36'}
    response = requests.get(url, headers=headers)
    soup = BeautifulSoup(response.text, "html.parser")
    reviews = soup.find_all('span', class_='short')
    return [review.get_text() for review in reviews]

movie_id = '1292052'
reviews = get_reviews(movie_id)
print(reviews)

上述代码中,我们定义了一个函数get_reviews,根据电影ID爬取豆瓣影评,然后使用BeautifulSoup库解析网页内容,并提取所有短评内容。

二、数据清洗

获得的影评数据可能包含一些不相关的内容,我们需要进行数据清洗,只保留有用的信息。

import re

def clean_reviews(reviews):
    cleaned_reviews = []
    for review in reviews:
        cleaned_review = re.sub(r'[ns]', '', review)
        cleaned_reviews.append(cleaned_review)
    return cleaned_reviews

cleaned_reviews = clean_reviews(reviews)
print(cleaned_reviews)

上述代码中,我们使用正则表达式去除每条影评中的换行符和空格。

三、情感分析

对电影影评进行情感分析可以帮助我们了解观众对电影的评价是正面还是负面。我们可以使用Python中的TextBlob库来实现情感分析。

from textblob import TextBlob

def analyze_sentiment(reviews):
    sentiment_scores = []
    for review in reviews:
        blob = TextBlob(review)
        sentiment_score = blob.sentiment.polarity
        sentiment_scores.append(sentiment_score)
    return sentiment_scores

sentiment_scores = analyze_sentiment(cleaned_reviews)
print(sentiment_scores)

上述代码中,我们使用TextBlob库创建一个文本Blob对象,并调用sentiment属性获取情感评分。

四、可视化分析结果

最后,我们可以使用Python中的matplotlib库对情感分析结果进行可视化分析。

import matplotlib.pyplot as plt

def plot_sentiment_scores(sentiment_scores):
    plt.hist(sentiment_scores, bins=10, range=(-1, 1))
    plt.xlabel('Sentiment Score')
    plt.ylabel('Number of Reviews')
    plt.title('Distribution of Sentiment Scores')
    plt.show()

plot_sentiment_scores(sentiment_scores)

上述代码中,我们使用matplotlib库的hist函数绘制情感评分的分布直方图。

五、总结

本文介绍了如何使用Python对豆瓣影评进行分析。我们通过网页爬取获取影评数据,对数据进行清洗和情感分析,并使用matplotlib进行可视化分析。通过这些步骤,我们可以更好地了解观众对电影的评价。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。