一、 項目認識
背景:
????????電商直播/短視頻已積累大量「視頻 + 評論」數據,蘊含了消費者的真實反饋。
目標:
????????通過「商品識別 → 情感分析 → 評論聚類」三步,輔助品牌洞察、網紅投放評估。
二、 Baseline 代碼流程
1. 讀取和預處理
video_data = pd.read_csv("origin_videos_data.csv")
comments_data = pd.read_csv("origin_comments_data.csv")
video_data["text"] = video_desc + " " + video_tags # 拼接文本
2. 商品識別
pipeline = make_pipeline(TfidfVectorizer(tokenizer=jieba.lcut, max_features=50),SGDClassifier()
)
pipeline.fit(labeled_text, labeled_product)
video_data["product_name"] = pipeline.predict(video_data["text"])
實現思路: TF-IDF + 線性分類器(SGD)做二分類
簡化點:僅用了 50 個特征,無額外的清洗。
3. 意圖分類(四個模型)
for col in ["sentiment_category", "user_scenario", "user_question", "user_suggestion"]:pipeline = make_pipeline(TfidfVectorizer(tokenizer=jieba.lcut), SGDClassifier())pipeline.fit(train_text, train_label)comments_data[col] = pipeline.predict(all_text)
4. 評論聚類? & 主題詞抽取 (5個維度進行執行)
pipeline = make_pipeline(TfidfVectorizer(tokenizer=jieba.lcut), KMeans(n_clusters=2))
pipeline.fit(subset_text)
labels = pipeline.predict(subset_text)
top_words = (" ".join(前 10 重要詞)) # 每簇
comments_data[target_theme_col] = [top_words[label] for label in labels]
大賽要求: 要求 5 - 8 個簇,目前項目僅用了 n_clusters = 2。?
調整策略:將 n_clusters 進行優化調整,讓其等于 5-8 之間,進行優化。
5. 結果導出
video_data[["video_id", "product_name"]].to_csv("submit/submit_videos.csv", index=False)
comments_data[導出列].to_csv("submit/submit_comments.csv", index=False)
!zip -r submit.zip submit/
三、 技術分析
1. 分詞 & 特征
jieba?+?TfidfVectorizer:?適配中英文及?emoji/特殊符號。
2.?商品識別
SGDClassifier:?快速迭代、可在線學習。
3. 意圖分類
多個?SGDClassifier:?訓練速度快,支持稀疏特征。
4. 聚類
KMeans:?易解釋、效率高。
5. 主題詞抽取
中心向量前 N?詞:?簡單直觀。
四、Baseline?局限 & 提升方向
1. 文本預處理缺失:大小寫、URL、表情、停用詞均未處理。
2. 模型簡單:全部采用線性/常規模型,難以捕捉深層語義。
3. 聚類數量不合規:固定?2 簇,勢必影響 100 分聚類子任務。
4. 未利用多語言特性:數據包含中/英/日/韓等多語,分詞器不統一。
5. 評價指標未在本地計算:無法提前驗證得分。
五、學習收獲
1. 端到端管線思維:一個 Notebook 覆蓋讀取→標注數據利用→預測→聚類→提交文件的完整鏈路,是參賽 Baseline 的典型范式。
2. 快速原型:Scikit-learn?+?jieba?幾行代碼即可跑通 baseline,利于早期驗證。
3. 實驗可重復:全部步驟在?Notebook?內顯式記錄,方便 debug / 復現。
4. 評測視角:先滿足格式與流程正確,再逐步優化指標 —— 典型競賽節奏。
5. 改進空間評估:通過閱讀代碼可迅速定位性能瓶頸,為后續升級指明方向。