import pandas as pd import networkx as nx # 读取Excel文件中的数据 df = pd.read_excel("新闻情感分析结果.xlsx") # 获取主题和关键词列表 topics_and_keywords = [ [], [] ] # 构建节点 nodes = [keyword for topic_keywords in topics_and_keywords for keyword in topic_keywords] # 创建图 G = nx.Graph() # 添加节点 G.add_nodes_from(nodes) # 计算节点之间的共现关系并添加边 for text in df["Combined Text"]: text_keywords = set(text.split()) for i, topic_keywords in enumerate(topics_and_keywords): for keyword in topic_keywords: if keyword in text_keywords: for other_keyword in topic_keywords: if keyword != other_keyword and other_keyword in text_keywords: # 使用 Counter 计算共现频率 cooccurrence_count = sum(1 for word in text.split() if word == keyword) + \ sum(1 for word in text.split() if word == other_keyword) edge_weight = 1 / cooccurrence_count if cooccurrence_count > 0 else 0 # 避免除以零 G.add_edge(keyword, other_keyword, weight=edge_weight) # 保存图为GraphML文件 nx.write_graphml(G, "graph.graphml")
Python制作gephi代码
最新推荐文章于 2025-02-23 23:44:39 发布