Perform multimodal image search and visualization using CLIP, ChromaDB, UMAP and Bokeh

In this blog post, I am going to show you how to perform image search against the Unsplash Lite dataset with 25k photos, using both text and image queries. To better comprehend our search results, I will then visualize the query and its matches using UMAP dimension reduction and plot it with Bokeh. By the end of this post, we will have generated a plot like this, showing both our input query image, and photos in the Unsplash Lite dataset that are closest in semantic meaning to it....

May 31, 2025 · 15 min · 3172 words · Tiffena Kou

Generate meaningful insights from Japanese content with Topic Modeling using BERTopic

Today, information overload has become a daily problem. We often need to probe into a large set of information, and uncover common underlying themes so we have a better understanding of what we are facing. For example, we might want to quickly grasp user reviews and see whether customers are loving or hating us, and for each category, what exactly are the biggest areas that we need to focus our...

May 4, 2025 · 19 min · 9090 words · Tiffena Kou

Recommender Systems - Then and Now

My professional interest is in applying recommenders to travel planning and reservation. So it is natural that I’ll keep up with books on both technical implementation and those that dissect the cultural influences of recommendation systems. After finishing the book Computing Taste, which charted the change of recommendation systems in the music/movie industry, I want to extend what was discussed in the book to changes in software development paradigm, as well as societal views on mistakes or criteria for finished products....

October 29, 2023 · 6 min · 1176 words · Tiffena Kou

How to produce an interactive visualization using Matplotlib in Python

Problem with 3D charts I’ve been using Jupyter notebooks inside Visual Studio Code as my Python coding environment, and really enjoy its capability to mix markdown, code, text output and charting in the same place. Recently, I want to visualize the distribution pattern of my dataset for trimming. As I plot a 3D graph using the Matplotlib library, a static inline graph works fine in my notebook, but it provides not much value as it flattens one axis where my data are concentrated....

July 28, 2022 · 4 min · 732 words · Tiffena Kou

Integrate Firebase CLI & Hugo with VS Code for a seamless development environment in Windows

In my blog post about deploying a Hugo site to Firebase hosting, I mentioned the inconvenience of jumping out of Visual Studio Code to use the Firebase CLI for project creation, maintenance and deployment. I’ve finally resolved this issue so that my workflow can now be kept 100% inside VS Code. My current workflow Here’s my current workflow on a Windows machine. I author my blog (via markdown and javascript/html files) in VS Code, then use Hugo to stage to localhost and generate static files for the site....

June 22, 2022 · 5 min · 965 words · Tiffena Kou