Giter VIP home page Giter VIP logo

topicviz's Introduction

TopicViz

A JavaScript topic visualization project using D3.js

topicviz's People

Contributors

davharris avatar laurenwalker avatar parkerabercrombie avatar stacyrhespanha avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

topicviz's Issues

Filter by year

Filter nodes by project or publication year - use a slider UI widget.

Create a more accurate opacity scale

Currently, the nodes/circles change opacity when a category/filter is chosen. The opacity is determined by simply using the value in the data table, which isn't very accurate.

An opacity scale should be created by finding the highest value in that category and associating that value as an opacity of 1. The lowest value is an opacity of 0. The in between values will be determined based on that scale.

D3 has an easy way of creating quantitative scales like this: https://github.com/mbostock/d3/wiki/Quantitative-Scales

Write introductory text

  • This will display when the visualization first loads. Keep it short
  • Include link to this Github repo with visualization code and possibly mention Codefest

Filter by journal

Similar to the person filter, have a textbox with an autocomplete of journal names.

Determine category labels and descriptions

Write up a short category label for each arc and a paragraph description for each category. The description may also end up including links, images, etc. Maybe just pull in HTML.

Display details on click of circle

When a user clicks on a circle/node, the details that are in the tooltip should also display in the side text container. This is to help users who may be having trouble hovering over the tooltip in order to click a link and may be useful for mobile users as well.

An alternative to is have the tooltip "stick" on click of the circle rather than display text on the side. When any circle is clicked again, the tooltip will close.

Add introductory text when viz first loads

In the same area where category descriptions will be displayed, we will display a general introduction to the visualization and research topics. We will probably want a link to this GitHub repo, short instructions for navigating documents, etc.

On click of a project, highlight the related publications

Since a project can be associated with a publication, it would be useful to show which publications those are when the user clicks on a project node.

For example, when a user clicks on a project node, the associated publications will change their style somehow like add a thick border or become a bigger size. When the publication is clicked again, that style will go away.

Filter nodes by person (author or PI)

A text box should be displayed next to the graphic that has an autocomplete feature with author and PI names from the projects and publications.

This filtering feature will be really useful for sharing/publicity - being able to find your publications and projects in the visualization will draw people to checking it out.

What information do we want to display?

We don't seem to have all of these in table.tab, as far as I can tell

  • Document type (e.g. proposal, summary, research paper)
  • Document title
  • URL/DOI pointing to the document on the web (if it exists)
  • Common/diagnostic words in the document, organized by topic (see #1 for an example)

Add tooltip for each circle on hover

Each circle represents a publication or project, so on hover a tooltip should display:

  • Author names or PI's
  • Citation, pulled from DOI service if possible
  • Title
  • Link to a related page (for NCEAS, the NCEAS project page for projects and a link to the general Science page for this category)

We should try to pull in this information as dynamically as possible so that someone does not have to keep a data table updated constantly. There should be an API for DOI services to provide links and basic info, for example. Some information is already in the data table, such as title.

Filter by title

Add a text filter with an autocomplete feature for filtering by project and publication name

Example of interactive exploration of topic model

A Stanford graduate student has a nice example of interactive exploration of topic modeling available here: http://cs.stanford.edu/people/karpathy/nips2013/

A few features that seem complementary to what has already been discussed:

  • A more manageable number of topics (7)
  • The ability to rank documents by how well they fit a given topic or set of topics
  • The ability to rank documents by their similarity to a target document
  • A color-coded list of the most diagnostic words used in each document

Differentiate between projects and publications

Options:

  • use a circle for publications and a square for projects
  • use a border on projects and no border on pubs

The main data table has a flag for whether something is a project or pub.

Topic reduction

Would it be possible to re-run the topic model with a smaller number of topics? If we're going to be presenting ~16 topics, I think it would make sense to do the actual analysis with that same number.

Also, I think it would make sense to remove words from the corpus before running the topic model rather than removing topics from the final model. Removing topics leads to some documents having topic probabilities that don't add up to one.

User actions

This issue can serve as a wish list for the actions we might want to allow the user to take.

  • Hovering on a point to bring up a small amount of information (e.g. title, authors)
  • Clicking to bring up more detailed information/options
  • Option to find the most similar documents
  • Toggling document types (papers versus working group documents)
  • Panning/Zooming with the mouse
  • Clicking topics around the donut to bring up subtopics and to adjust the sizes of documents based on their percentage association with that topic
  • Hovering over topics around the donut to bring up a list of words associated with it

Others?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.