"""
明朝晚期,中国文人士大夫中掀起一股实学潮流,通过田野考察、收集整理、记录数据、归纳分类等方法总结前人技术,以达到富国强民的目的,不再将科学技术简单的视为“奇技淫巧”,所以这一阶段出现了很多综合性科技书籍,《天工开物》是这股实学潮流的集大成者。
如果晚明这一思潮继续传承发展下来,中国近代未必不能走上类似西欧的科技文明之路,未必不能与西方一争长短。可惜,清朝建立之后,晚明重视科学技术的潮流就逐渐被掐断了,《天工开物》的命运恰如其分的显示了两个王朝的不同品格。
"""
import nltk
from nltk.tokenize import word_tokenize
from nltk.corpus import stopwords
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 读取输入文本 我这里只使用了一段话所以直接加载了,内容过多可以考虑读取txt文本的形式加载数据
text = input("请输入文本: ")
# 分词
tokens = word_tokenize(text)
# 去除停用词 这里还可以去除自己统计的停顿词
stop_words = set(stopwords.words("english"))
filtered_tokens = [token for token in tokens if token.lower() not in stop_words]
# 统计词频
freq_dist = nltk.FreqDist(filtered_tokens)
# 绘制词云
wordcloud = WordCloud().generate_from_frequencies(freq_dist)
plt.figure(figsize=(10, 10))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()
上面一个demo是之前pythonFlask里面剥出来的一个小Demo,但是只绘制了词云图,之前因为绘制思维导图有点扎手就没做了,希望这个对你有帮助
【以下回答由 GPT 生成】
要实现对输入文本的分词、归纳和绘制环形思维导图,可以使用以下Python库和工具:
NLTK(Natural Language Toolkit)(自然语言处理工具包):NLTK 是Python中用于自然语言处理的强大工具包,可以帮助我们对文本进行分词、词性标注、关键词提取等操作。
Gensim(自然语言处理库):Gensim 是一个用于主题建模、文本相似性计算等任务的Python库。它可以帮助我们进行文本的主题归纳和关键词提取。
Networkx(复杂网络分析工具):Networkx 是一个用于复杂网络分析和可视化的Python库。它可以帮助我们创建并操作思维导图,并进行各种布局和绘制操作。
下面是具体的步骤和代码示例:
步骤1:安装所需的库和工具
!pip install nltk
!pip install gensim
!pip install networkx
步骤2:导入所需的库和工具
import nltk
from nltk.tokenize import word_tokenize
from nltk.corpus import stopwords
from gensim import corpora, models
from gensim.utils import simple_preprocess
import networkx as nx
import matplotlib.pyplot as plt
步骤3:进行文本分词和关键词提取
def preprocess_text(text):
# 分词
tokens = word_tokenize(text)
# 去除停用词
stop_words = set(stopwords.words('english'))
tokens = [token for token in tokens if token.lower() not in stop_words]
# 去除标点符号和数字
tokens = [token for token in tokens if token.isalpha()]
return tokens
def extract_keywords(text):
# 预处理文本
tokens = preprocess_text(text)
# 构建词袋模型
dictionary = corpora.Dictionary([tokens])
# 构建文档-词频矩阵
corpus = [dictionary.doc2bow(tokens)]
# 训练TF-IDF模型
tfidf = models.TfidfModel(corpus)
# 提取关键词
keywords = tfidf[corpus[0]]
return keywords
步骤4:构建环形思维导图
def draw_mind_map(keywords):
G = nx.Graph()
# 添加节点
for keyword in keywords:
G.add_node(keyword[0])
# 添加边
for i, keyword1 in enumerate(keywords):
for j, keyword2 in enumerate(keywords):
if i != j:
G.add_edge(keyword1[0], keyword2[0])
# 设置布局
pos = nx.circular_layout(G)
# 绘制节点和边
nx.draw_networkx_nodes(G, pos, node_color='lightblue', node_size=1000)
nx.draw_networkx_edges(G, pos)
nx.draw_networkx_labels(G, pos, font_size=10, font_family='sans-serif')
# 显示图形
plt.axis('off')
plt.show()
步骤5:调用函数,完成文本处理和绘图
text = "这里是输入的文本"
# 提取关键词
keywords = extract_keywords(text)
# 绘制环形思维导图
draw_mind_map(keywords)
通过以上步骤和代码示例,你可以实现对输入文本的分词、归纳并绘制环形思维导图的功能。请注意,以上代码仅提供了基本的功能实现,你可以根据实际需求进行进一步的扩展和优化。
【相关推荐】