如何建设一免费的网站高考评卷工作全面展开
2026/1/12 11:10:01 网站建设 项目流程
如何建设一免费的网站,高考评卷工作全面展开,网页超链接怎么做,南京学校网站制作c-TF-IDF 和 TF-IDF 什么是 c-TF-IDF#xff1f;传统 TF-IDFc-TF-IDF#xff08;基于类的 TF-IDF#xff09; c-TF-IDF 的计算公式直观理解在 BERTopic 中的工作流程代码示例#xff1a;使用 c-TF-IDF与传统 TF-IDF 对比c-TF-IDF 的优势自定义 c-TF-IDF 参数可视化 c-TF-ID…c-TF-IDF 和 TF-IDF什么是 c-TF-IDF传统 TF-IDFc-TF-IDF基于类的 TF-IDFc-TF-IDF 的计算公式直观理解在 BERTopic 中的工作流程代码示例使用 c-TF-IDF与传统 TF-IDF 对比c-TF-IDF 的优势自定义 c-TF-IDF 参数可视化 c-TF-IDF 权重总结BERTopic 中一个非常核心的概念——c-TF-IDFclass-based TF-IDF。这是 BERTopic 区别于其他主题模型的关键创新点。什么是 c-TF-IDF传统 TF-IDFTF词频一个词在单个文档中出现的频率IDF逆文档频率衡量一个词在所有文档中的普遍性应用对象单个文档c-TF-IDF基于类的 TF-IDF将每个主题视为一个文档类计算时一个主题类vs所有其他主题类应用对象整个主题/类别c-TF-IDF 的计算公式c-TF-IDF(w, c) tf(w, c) × log(1 N / df(w))tf(w, c)词 w 在主题 c 的所有文档中出现的总次数N主题总数df(w)包含词 w 的主题数量直观理解假设我们有 3 个主题科技、体育、政治词科技主题体育主题政治主题是否适合做主题词“算法”高频几乎无偶尔出现✅ 优秀区分度高“比赛”低频高频低频✅ 优秀“政策”低频低频高频✅ 优秀“非常”中频中频高频❌ 差普遍性高“重要”高频高频高频❌ 差无区分度在 BERTopic 中的工作流程frombertopicimportBERTopicfrombertopic.vectorizersimportClassTfidfTransformer# 1. 文档聚类使用嵌入和聚类算法# docs → 文档嵌入 → 聚类 → 得到主题标签# 2. 为每个主题创建词袋表示# 同一主题的所有文档合并 → 统计词频# 3. 应用 c-TF-IDFctfidf_modelClassTfidfTransformer(reduce_frequent_wordsTrue,# 降低过于频繁的词的权重bm25_weightingTrue,# 使用 BM25 风格的权重可选)# 4. 得到每个主题的 top N 关键词topic_keywordsctfidf_model.transform(topic_word_frequencies)代码示例使用 c-TF-IDFfrombertopicimportBERTopicfrombertopic.vectorizersimportClassTfidfTransformerimportnumpyasnp# 示例文档docs[机器学习算法需要大量数据,深度学习是机器学习的一个分支,篮球比赛需要团队合作,足球运动员需要良好的体能,政府发布了新的经济政策,外交关系对国家发展很重要]# 1. 创建 BERTopic 模型自定义 c-TF-IDF 参数ctfidf_modelClassTfidfTransformer(bm25_weightingTrue,# 使用 BM25 而非传统 TF-IDFreduce_frequent_wordsTrue,# 降低常见词的权重diversity0.5# 增加多样性可选)topic_modelBERTopic(ctfidf_modelctfidf_model,# 使用自定义的 c-TF-IDFmin_topic_size2,# 每个主题最少文档数verboseTrue)# 2. 训练模型topics,probabilitiestopic_model.fit_transform(docs)# 3. 查看主题关键词基于 c-TF-IDF 排序print(主题和关键词)fortopic_numinset(topics):iftopic_num!-1:# 跳过异常值-1 表示未聚类topic_infotopic_model.get_topic(topic_num)print(f\n主题{topic_num}:)forword,scoreintopic_info[:5]:# 前5个关键词print(f{word}:{score:.4f})# 4. 查看 c-TF-IDF 矩阵print(\n c-TF-IDF 矩阵形状 )ifhasattr(topic_model,c_tf_idf_):print(f矩阵形状:{topic_model.c_tf_idf_.shape})print(f(主题数 × 词汇表大小))与传统 TF-IDF 对比fromsklearn.feature_extraction.textimportTfidfVectorizerimportpandasaspd# 传统 TF-IDF文档级别vectorizerTfidfVectorizer()X_tfidfvectorizer.fit_transform(docs)print(传统 TF-IDF 矩阵形状:,X_tfidf.shape)# (6个文档 × 词汇表大小)# c-TF-IDF主题级别# 假设我们已经有主题标签[0, 0, 1, 1, 2, 2]# BERTopic 内部会合并同一主题的文档# 得到矩阵形状: (3个主题 × 词汇表大小)c-TF-IDF 的优势主题导向为整个主题选择最具代表性的词去噪能力自动降低常见词如的、“是”和停用词的权重可解释性每个主题的关键词都是基于统计的容易理解效率高只在主题级别计算而非文档级别自定义 c-TF-IDF 参数frombertopic.vectorizersimportClassTfidfTransformer# 配置选项ctfidf_config{# BM25 参数bm25_weighting:True,# 使用 BM25更好的长文档处理k1:1.2,# BM25 k1 参数控制词频饱和度b:0.75,# BM25 b 参数控制文档长度归一化# 传统 TF-IDF 参数reduce_frequent_words:True,# 降低过于频繁的词的权重diversity:None,# 可选0-1增加关键词多样性}ctfidf_modelClassTfidfTransformer(**ctfidf_config)# 或者在创建 BERTopic 时直接传递topic_modelBERTopic(ctfidf_modelctfidf_model,# ... 其他参数)可视化 c-TF-IDF 权重importmatplotlib.pyplotasplt# 获取特定主题的关键词和权重topic_num0topic_wordstopic_model.get_topic(topic_num)# 提取词和权重words[wordforword,scoreintopic_words[:10]]scores[scoreforword,scoreintopic_words[:10]]# 绘制条形图plt.figure(figsize(10,6))plt.barh(words,scores)plt.xlabel(c-TF-IDF 权重)plt.title(f主题{topic_num}的关键词权重)plt.gca().invert_yaxis()# 最高权重在顶部plt.show()总结c-TF-IDF 是 BERTopic 的大脑它将传统 TF-IDF 从文档级别提升到主题级别自动识别每个主题最具有区分度的关键词配合嵌入模型既考虑语义相似度又考虑统计显著性使得生成的主题标签既准确又可解释这就是为什么 BERTopic 既能处理海量文档又能生成高质量、易理解的主题

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询