如何将鼠标悬停在文字云中

时间:2014-02-07 11:24:18

标签: python

我使用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')

1 个答案:

答案 0 :(得分:1)

没有看到你的代码就没有什么可以纠正的。

然而,最好的解决方法是在HTMLCSS中输出您的代码云,以便结束their demo.

之类的内容

获得HTML代码后,一种方法是使用Javascript对单击的单词做出反应,并突出显示您单词中每个单词的出现次数。

然而,还有许多其他方法可能更适合,但没有任何背景,我不敢发表评论。无论如何,请勿将您的代码云渲染为jpeg。这是静态的,无法进行交互。

Edit1:提供的代码

查看github上可用的PyTagCloud tests中的test_create_html_data(self):函数,了解如何输出HTMLCSS

只需快速了解您的代码,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)