Solutions to “Just KNIME It!” Challenge 21 - Season 4

:sun_with_face: New Wednesday, new Just KNIME It! challenge! :sunny:

:busts_in_silhouette: The KNIME Forum contains thousands of topics on a variety of subjects, with interactions across many users. These features make it a great resource to experiment with text processing algorithms for natural language. :memo: This week, you will use your API interaction skills to fetch the latest forum topics, and then experiment with different text summarization techniques to check what subjects are the most talked about in the forum currently. You can even go one step further and create visualizations for these summaries! :chart_increasing:

Here is the challenge. Let’s use this thread to post our solutions to it, which should be uploaded to your public KNIME Hub spaces with tag JKISeason4-21 .

:sos: Need help with tags? To add tag JKISeason4-21 to your workflow, go to the description panel in KNIME Analytics Platform, click the pencil to edit it, and you will see the option for adding tags right there. :blush: Let us know if you have any problems!

I’m probably doing something stupid, but this Get Request produces a random list of old topic ids. The most recent topic ids are in the neighborhood of 90000.

Hi all,

Interesting one!

Here my solution: JKISeason 4-21 - Summarizing KNIME Forum Topics – KNIME Community Hub

First a Tag Cloud for all the topics, best on top (digram). Then a view of this results as a table.

The LLM is summarizing 5 topics (all the related posts) - table 2 - and you can select one, to display the related Tag Cloud (end of the view).

Cheers all

Jerome

1 Like

1 Like

find my submission : JKISeason4-21 – KNIME Community Hub

though Pagination pointer existed : more_topics_url also tried on page sequence while struggled to leap over.

1 Like

Greetings,

Here is my solution to this week’s challenge.

JKISeason4-21

This was a tough one for me but from looking at how others here addressed the objectives of this challenge, I was able to understand how to structure the nodes to complete the objectives. This is also my first learning text processing technique in KNIME so this is also a deep dive in the numerous nodes available (at no charge) to end-users with this platform.

I decided to use two separate visualizations for each objective. Not sure if I configured these nodes correctly but it was still a good learning experience.

My solution to the challenge:

For me this challenge was really great as I used AI for something that I didn’t think first for this topic: Generate names for the topics. :slight_smile:

My workflow:

My approach was:

  • Get the forum topics (keeping just 25 pages, as all the pages is approximately 48 000 posts and I felt it a little overkill :smiley: )
  • With text analytics I erased punctuations, filtered the stop words, convert all to lowercase, and used the snowball stemmer, after that used the Parallel LDA topic extractor node for get 3 words for 10 topics. I used fancy title as document
  • After the 10 topics was created I used my local Llama LLM to give each topic a category (as a summarison and you could see what the topic is about
  • After that I visualized the topics and top words in a table and in tag cloud. I do not have much words as I just visualized the most relevant words, maybe more words could be experimented with (but for me the LLM was real slow so I gave that up :slight_smile: )

My output:

I’m really open to conversation how to fine tune the solution!

Hi @rfeigel,

Not sure about your JSON path but if the IDs don’t make sense, maybe you are getting the user IDs instead of the topic IDs?

In the response to the initial URL, you get a list of users and then the list of topics.

Here is how the elements under users and topics in the response look like:

"users": [
    {
      "id": 20540,
      "username": "Brain",
      "name": "Brain",
      "avatar_template": "/user_avatar/forum.knime.com/brain/{size}/53424_2.png",
      "trust_level": 2
    },
"topics": [
      {
        "fancy_title": "Row Filter Groupby ??",
        "id": 90132,
        "title": "Row Filter Groupby ??",
        "slug": "row-filter-groupby",
        "posts_count": 2,
        "reply_count": 0,
        "highest_post_number": 2,
        "image_url": null,
        "created_at": "2025-10-06T11:12:11.614Z",
        "last_posted_at": "2025-10-06T11:14:48.732Z",
        "bumped": true,
        "bumped_at": "2025-10-06T11:14:48.732Z",
        "archetype": "regular",
        "unseen": true,
        "pinned": false,
        "unpinned": null,
        "excerpt": "Hi \nI want to select: \nThe 5 most recent rows for each Name, ordered by Date. Then delete the highest and lowest value column SP. \nI’m looking for an efficient method because there are many names, and they will change fr…",
        "visible": true,
        "closed": false,
        "archived": false,
        "bookmarked": null,
        "liked": null,
        "thumbnails": null,
        "tags": [],
        "tags_descriptions": {

        },
        "views": 3,
        "like_count": 0,
        "has_summary": false,
        "last_poster_username": "gonhaddock",
        "category_id": 20,
        "pinned_globally": false,
        "featured_link": null,
        "has_accepted_answer": false,
        "can_vote": false,
        "posters": [
          {
            "extras": null,
            "description": "Original Poster",
            "user_id": 20540,
            "primary_group_id": null,
            "flair_group_id": null
          },
          {
            "extras": "latest",
            "description": "Most Recent Poster",
            "user_id": 6617,
            "primary_group_id": 69,
            "flair_group_id": 69
          }
        ]
      },
1 Like

Thanks. Json is not one of my strengths.

1 Like

That’s a very good motive to complete this week’s challenge then :wink:

1 Like

:sun_with_face: Our solution to last week’s Just KNIME It! challenge is out! :boom:

:hot_face: Last week’s challenge was definitely hard, combining API manipulation skills with refined text processing, topic modeling (with or without AI), and text visualization. :clap: Congratulations to everyone who gave it a shot, really! Even if you couldn’t tackle all the objectives. This problem truly illustrates how real-world data science problems often require a range of skills to be solved.

:musical_notes: Tomorrow we dial it down difficulty-wise to analyze a music streaming dataset. Your goal will be to uncover which artists dominated the charts in recent years. Are you joining us?

would be better if beyond single page info could be extracted ( as in pagination) and enrich the output.

Dear @AnilKS,

Actually, you can do that by adding the “page” URL parameter. For example:
https://forum.knime.com/latest.json?page=4