大數(shù)據(jù)畢設(shè)實戰(zhàn)項目-基于文本挖掘與數(shù)據(jù)可視化的網(wǎng)絡(luò)小說作者創(chuàng)作能力評估系統(tǒng)-基于Hadoop+Spark的起點小說網(wǎng)大數(shù)據(jù)可視化分析系統(tǒng)

注意:該項目只展示部分功能

1 開發(fā)環(huán)境

發(fā)語言:python
采用技術(shù):Spark、Hadoop、Django、Vue、Echarts等技術(shù)框架
數(shù)據(jù)庫:MySQL
開發(fā)環(huán)境:PyCharm

2 系統(tǒng)設(shè)計

隨著數(shù)字閱讀產(chǎn)業(yè)蓬勃發(fā)展,網(wǎng)絡(luò)文學(xué)平臺積累了海量作品數(shù)據(jù),但傳統(tǒng)分析手段難以挖掘其深層價值。起點小說網(wǎng)作為國內(nèi)頭部文學(xué)平臺,其內(nèi)容生態(tài)、作者行為與用戶偏好數(shù)據(jù)蘊含豐富的商業(yè)洞察,卻面臨著數(shù)據(jù)規(guī)模龐大、維度復(fù)雜、實時性要求高等挑戰(zhàn)。本項目針對單一數(shù)據(jù)集15個核心字段,構(gòu)建基于Python、Spark、Hadoop、Vue、Echarts與MySQL的端到端大數(shù)據(jù)分析系統(tǒng),旨在通過分布式計算架構(gòu)處理千萬級數(shù)據(jù),實現(xiàn)從原始文本清洗到多維可視化呈現(xiàn)的完整鏈路。系統(tǒng)通過量化分析小說類別分布、作者創(chuàng)作能力、作品熱度質(zhì)量等六大維度,不僅為平臺優(yōu)化內(nèi)容策略、作者扶持機制、商業(yè)化變現(xiàn)提供數(shù)據(jù)支撐,也為讀者提供選書決策參考,推動網(wǎng)絡(luò)文學(xué)產(chǎn)業(yè)從經(jīng)驗驅(qū)動向數(shù)據(jù)驅(qū)動轉(zhuǎn)型,釋放大數(shù)據(jù)在內(nèi)容創(chuàng)作與運營中的戰(zhàn)略價值。

基于Spark的起點小說網(wǎng)大數(shù)據(jù)可視化分析系統(tǒng)
功能模塊設(shè)計
緊扣數(shù)據(jù)特征與業(yè)務(wù)訴求,構(gòu)建六大分析體系:
1)小說類別分布分析
模塊涵蓋大類別統(tǒng)計、子類別熱度排行、類別質(zhì)量對比、完結(jié)率與VIP占比分析,利用二級分類體系識別爆款賽道;
2)作者創(chuàng)作能力分析
模塊聚焦作者產(chǎn)量、平均質(zhì)量、跨類別創(chuàng)作與簽約率,通過重復(fù)值挖掘高產(chǎn)優(yōu)質(zhì)作者,構(gòu)建作者價值評估模型;
3)小說熱度與質(zhì)量分析
模塊解析推薦數(shù)分布、字?jǐn)?shù)相關(guān)性、周推薦占比及VIP作品質(zhì)量對比,量化動態(tài)關(guān)系,區(qū)分經(jīng)典長尾與新興熱門;
4)內(nèi)容文本特征分析
模塊研究標(biāo)題長度、簡介長度分布,并執(zhí)行關(guān)鍵詞提取與情感分析,探索文本特征與推薦數(shù)的關(guān)聯(lián);
5)平臺商業(yè)化分析
模塊評估VIP占比趨勢、簽約作品質(zhì)量差異及類別商業(yè)化潛力,識別高商業(yè)價值作品與免費轉(zhuǎn)VIP潛力股;
6)用戶偏好與趨勢分析
模塊捕捉熱門類別變遷、用戶閱讀偏好長度及連載關(guān)注度,通過周推薦數(shù)波動洞察市場趨勢。各模塊輸出獨立的CSV結(jié)果文件,支撐可視化看板實現(xiàn)下鉆分析與交叉驗證,確保每個功能點均具備明確的業(yè)務(wù)含義與論文撰寫價值。

3 系統(tǒng)展示

3.1 分析頁面

wechat_2025-10-24_231824_629.png
wechat_2025-10-24_231839_702.png
wechat_2025-10-24_231851_100.png
wechat_2025-10-24_231903_442.png

3.2 大屏頁面

wechat_2025-10-24_231758_733.png
wechat_2025-10-24_231816_116.png

4 更多推薦

計算機專業(yè)畢業(yè)設(shè)計新風(fēng)向,2026年大數(shù)據(jù) + AI前沿60個畢設(shè)選題全解析,涵蓋Hadoop、Spark、機器學(xué)習(xí)、AI等類型
計算機專業(yè)畢業(yè)設(shè)計選題深度剖析,掌握這些技巧,讓你的選題輕松通過,文章附35個優(yōu)質(zhì)選題助你順利通過開題!
【避坑必看】26屆計算機畢業(yè)設(shè)計選題雷區(qū)大全,這些畢設(shè)題目千萬別選!選題雷區(qū)深度解析
緊跟風(fēng)口!2026計算機畢設(shè)新賽道:精選三大熱門領(lǐng)域下的創(chuàng)新選題, 拒絕平庸!畢設(shè)技術(shù)亮點+功能創(chuàng)新,雙管齊下
純分享!2026屆計算機畢業(yè)設(shè)計選題全攻略(選題+技術(shù)棧+創(chuàng)新點+避坑),這80個題目覆蓋所有方向,計算機畢設(shè)選題大全收藏
計算機專業(yè)畢業(yè)設(shè)計選題深度剖析,掌握這些技巧,讓你的選題輕松通過,文章附35個優(yōu)質(zhì)選題助你順利通過開題!

5 部分功能代碼


def preprocess_data_analysis():
    """
    數(shù)據(jù)預(yù)處理核心函數(shù)
    1. 從HDFS加載bookInfo.csv數(shù)據(jù)
    2. 處理count字段的"萬"單位轉(zhuǎn)換為數(shù)值
    3. 清洗空值和異常數(shù)據(jù)
    4. 將處理結(jié)果保存至HDFS標(biāo)準(zhǔn)目錄
    """
    # 從項目dataset目錄讀取原始數(shù)據(jù),使用絕對路徑
    raw_df = spark.read.csv(
        "file:///absolute/path/to/project/dataset/bookInfo.csv",
        header=True,
        inferSchema=True,
        encoding="utf-8"
    )

    # UDF:將字?jǐn)?shù)字符串(如"62.97萬")轉(zhuǎn)換為整型(629700)
    def convert_count(count_str):
        if not count_str or count_str == "未知":
            return 0
        match = re.match(r"(\d+\.?\d*)萬", str(count_str))
        if match:
            return int(float(match.group(1)) * 10000)
        return 0

    convert_count_udf = udf(convert_count, IntegerType())

    # 數(shù)據(jù)清洗與轉(zhuǎn)換
    processed_df = raw_df \
        .withColumn("word_count", convert_count_udf(col("count"))) \
        .withColumn("total_recommend", when(col("total_recommend").isNull(), 0)
                    .otherwise(col("total_recommend").cast(IntegerType()))) \
        .withColumn("total_week_recommend", when(col("total_week_recommend").isNull(), 0)
                    .otherwise(col("total_week_recommend").cast(IntegerType()))) \
        .withColumn("is_vip", when(col("is_vip").isNull(), "未知").otherwise(col("is_vip"))) \
        .withColumn("is_lianzai", when(col("is_lianzai").isNull(), "未知").otherwise(col("is_lianzai"))) \
        .filter(col("word_count") > 0) \
        .filter(col("total_recommend") >= 0)

    # 寫入HDFS標(biāo)準(zhǔn)目錄(先刪除舊目錄避免沖突)
    hdfs_path = "hdfs://namenode:9000/qidian/processed_data"
    processed_df.write.mode("overwrite").parquet(hdfs_path)
    print(f"預(yù)處理完成,數(shù)據(jù)已寫入: {hdfs_path}")
    return processed_df


def novel_class_distribution_analysis(df):
    """
    小說類別分布分析核心函數(shù)
    基于class_type字段統(tǒng)計大類別分布,計算平均推薦數(shù)、完結(jié)率、VIP占比
    輸出結(jié)果用于可視化展示類別結(jié)構(gòu)
    """
    result_df = df.groupBy("class_type") \
        .agg(
            count("*").alias("novel_count"),
            round(avg("total_recommend"), 2).alias("avg_recommend"),
            round(avg("word_count"), 2).alias("avg_word_count"),
            round(count(when(col("is_lianzai") == "完本", True)) / count("*") * 100, 2).alias("completion_rate"),
            round(count(when(col("is_vip") == "VIP", True)) / count("*") * 100, 2).alias("vip_ratio")
        ) \
        .orderBy(col("novel_count").desc())

    # 轉(zhuǎn)換為Pandas并輸出CSV(文件名不含數(shù)字)
    result_df.toPandas().to_csv("/output/class_distribution_analysis.csv", index=False, encoding="utf-8")
    print("類別分布分析完成,結(jié)果已保存")
    return result_df


def author_creation_ability_analysis(df):
    """
    作者創(chuàng)作能力分析核心函數(shù)
    統(tǒng)計作者產(chǎn)量、平均質(zhì)量、跨類別創(chuàng)作情況
    識別高產(chǎn)優(yōu)質(zhì)作者,為平臺簽約策略提供依據(jù)
    """
    # 計算每位作者的創(chuàng)作指標(biāo)
    author_metrics_df = df.groupBy("author_name") \
        .agg(
            count("*").alias("works_count"),
            round(avg("total_recommend"), 2).alias("avg_recommend"),
            round(avg("word_count"), 2).alias("avg_word_count"),
            countDistinct("class_type").alias("cross_class_count"),
            round(count(when(col("is_qianyue") == "簽約", True)) / count("*") * 100, 2).alias("sign_rate")
        ) \
        .filter(col("works_count") >= 2) \
        .orderBy(col("works_count").desc())

    author_metrics_df.toPandas().to_csv("/output/author_ability_analysis.csv", index=False, encoding="utf-8")
    print("作者能力分析完成,結(jié)果已保存")
    return author_metrics_df


源碼項目、定制開發(fā)、文檔報告、PPT、代碼答疑
希望和大家多多交流

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容