1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| def analyze_comments(comments): try: print("开始分词处理...") words = [] for comment in comments: if isinstance(comment, str): words.extend(jieba.lcut(comment)) word_freq = Counter(words) stop_words = { '的', '了', '啊', '吧', '吗', '呢', '啦', '呀', '嘛', '哦', '哈', '呐', '嗯', '诶', '我', '你', '他', '她', '它', '我们', '你们', '他们', '这', '那', '这个', '那个', '这些', '那些', '什么', '谁', '哪', '哪个', '哪些', '都', '也', '很', '真', '太', '好', '还', '别', '就', '才', '可', '要', '怎么', '怎样', '这样', '那样','真的', '这么', '那么', '已经', '只能' '在', '从', '和', '与', '跟', '同', '及', '或', '而', '但是', '可是', '然后', '因为', '所以', '如果', '要是','还是', '就是', '是', '有', '没', '没有', '不', '不是', '不要', '能', '可以', '应该', '需要', '想', '觉得', '不会', '不能', '一个', '一些', '几个', '好多', '很多', '非常', 'doge', 'up', 'b23', 'UP', 'ok', 'OK', 'http', 'https', 'call', 'tv', '\"', '“', '”', } word_freq = Counter(word for word in words if not re.fullmatch(r'^\[.*?]$', word)) word_freq = {word: freq for word, freq in word_freq.items() if word not in stop_words and len(word) > 1 and freq >= 5} word_df = pd.DataFrame(word_freq.items(), columns=['词语', '出现次数']) word_df = word_df.sort_values('出现次数', ascending=False) return word_df except Exception as e: print(f"分析词频时出错:{e}") print(traceback.format_exc()) return pd.DataFrame(columns=['词语', '出现次数'])
|