我使用python通过使用名为(pytagcloud)的模块从文本文件创建了一个文字云,但我已将其创建为.jpeg文件。但是当我将光标悬停在云中的单词上时,我想让云中的单词处于活动状态。 当我点击文字云中的特定单词时,应突出显示该段落中的相应句子。如何做到这一点?请帮我。我在这个主题上有项目工作。 我创建了一个gui,我可以选择导入文本文件并读取文本文件。在阅读文本文件后,我需要从.txt文件中的段落中生成单词云。
def wordcloud(self):
from pytagcloud import create_tag_image, create_html_data, make_tags, LAYOUT_HORIZONTAL, LAYOUTS, LAYOUT_MIX, LAYOUT_VERTICAL, LAYOUT_MOST_HORIZONTAL, LAYOUT_MOST_VERTICAL
from pytagcloud.lang.counter import get_tag_counts
from pytagcloud.colors import COLOR_SCHEMES
import webbrowser
#import Tkinter
#from tkFileDialog import askopenfilename
#filename=askopenfilename()
#with open(filename,'r') as f:
# text=f.read()
#def create_tag_cloud(text):
words = nltk.word_tokenize(self._contents)
doc = " ".join(d for d in words[:70])
tags = make_tags(get_tag_counts(doc), maxsize=100)
create_tag_image(tags, 'sid.jpeg',size=(1600, 1200),fontname='Philosopher',layout=LAYOUT_MIX,rectangular=True)
webbrowser.open('sid.jpeg')
答案 0 :(得分:1)
没有看到你的代码就没有什么可以纠正的。
然而,最好的解决方法是在HTML
和CSS
中输出您的代码云,以便结束their demo.
获得HTML代码后,一种方法是使用Javascript对单击的单词做出反应,并突出显示您单词中每个单词的出现次数。
然而,还有许多其他方法可能更适合,但没有任何背景,我不敢发表评论。无论如何,请勿将您的代码云渲染为jpeg
。这是静态的,无法进行交互。
查看github上可用的PyTagCloud tests中的test_create_html_data(self):
函数,了解如何输出HTML
和CSS
。
只需快速了解您的代码,Python将在每次运行wordcloud()
方法时导入所有这些包。将它们拉出这样的东西(我开始适应你):
from pytagcloud import (create_tag_image, create_html_data,
make_tags, LAYOUT_MIX)
from pytagcloud.lang.counter import get_tag_counts
from pytagcloud.colors import COLOR_SCHEMES
import webbrowser
# ...the rest of your code...
def wordcloud(self):
words = nltk.word_tokenize(self._contents)
doc = " ".join(d for d in words[:70])
tags = make_tags(get_tag_counts(doc), maxsize=100)
data = create_html_data(tags, (1600,1200), layout=LAYOUT_MIX, fontname='Philosopher', rectangular=True)