MihailPertsev

MihailPertsev

Hi there!
I have a tough understanding what to do:

I need to categorize a product by it’s keywords.
I have a several “Topics”, for example: “New Technologies”, “Health”.
Each of those “Topics” have several “Subtopics”, for example: "New Technologies => “Internet of Things (IoT)”, “New Technologies => 3-D Printing”

There are in average about 250 categorized products in each “Subtopic”.
I went ahead and grabbed all keywords from already categorized products, and made a list for each “Subtopic” with keywords and their frequency, for example: %{“keyword”: “stereolithography”, “uniqueCount”: 8, “totalCount”: 17}

So, long story short: I have a bunch of lists with keywords that I need to somehow “measure” and “rank” them.
I guess my next step should be creating a keywords for each “Topic” from its “Subtopic”'s combine “dictionary” of all “important” keywords… I have no idea how to do it. The keywords are overlapping among “Subtopics” but I still need to “measure” them somehow…
Is there any “cool and easy” Elixir library that can be useful in my case?
Please share any tips!

Showing Posts 1 to 10

thiagomajesk

thiagomajesk

Could you provide a real example of the data structure you have and how you expect the output to be?
This will improve the quality of the answers you’ll get from the community.

MihailPertsev

MihailPertsev OP

Sure, I have a bunch of Excel files with this kind of structure:
For Topic: “New Technologies”

Subtopic: “Artificial Intelligence”

Keywords Unique Count Total Count
artificial intelligence 125 190
machine learning 34 65
big data 29 54
artificial intelligence ai 18 23
neural networks 16 20
social media 16 21
decision making 15 32

Subtopic: “Internet of Things”

Keywords Unique Count Total Count
internet things iot 22 38
iot 18 36
internet things 16 66
big data 12 12
cloud computing 12 19
sensors 9 10
internet 8 9
privacy 7 10

Subtopic: “Machine Learning”

Keywords Unique Count Total Count
machine learning 111 164
artificial intelligence 41 86
big data 29 64
data mining 26 43
supervised learning 23 26
neural networks 22 26
deep learning 19 26
support vector machines 19 22
internet things 17 30
machine learning algorithms 17 19

And this is for every Subtopic inside “New Technologies” Topic.

Topic Subtopic
New Technologies 4th Industrial Revolution
Sustainability (Energy) Core
Sustainability (Energy) Extended
3-D Printing
Artificial Intelligence (AI)
Augmented & Virtual Reality (& wearables)
Big Data & Data Analytics
Cloud & Fog Computing
Internet of Things (IoT)
Machine Learning
Wireless Technology

As you can see a lot of keywords are overlapping. For example: “artificial intelligence”, “big data”, “machine learning”.

Now I want to create a combined keywords list for “New Technologies” topic .
But I don’t know how to “measure” a value of the given keyword. I am really lacking in theory about this kind of stuff… For example: the keyword “big data” is in every single one those Subtopics, so I need to rank it lower because it is not unique, but I don’t know the formula or algorithm to do it…

So, it would be really nice to use some library (maybe not an Elixir library) to achieve it. But I don’t know about them as well…

MihailPertsev

MihailPertsev OP

And there is also a problem with the keywords themself… Some of them are meaning the same thing, like “internet things iot”, “iot”, “internet things”. All of them are basically the same thing, yet in my dataset they are different. But currently I want to treat them as unique keywords for the purpose of simplicity and MVP.

MihailPertsev

MihailPertsev OP

Any tips?

kokolegorille

kokolegorille

First step would be to normalize your data…

After this, sure You can transform your data, Elixir is good at that :slight_smile:

MihailPertsev

MihailPertsev OP

Hi!
I can’t understand what do you mean by “transform your data”. Can you please specify what exactly do you mean?

kokolegorille

kokolegorille

@pragdave explains it much better than I would do :slight_smile:

TLDR in FP, almost everyhing is expressed as input → function → output, which is transforming input into output.

MihailPertsev

MihailPertsev OP

I am still confused… I understand that I need to write a bunch of functions, which would transform my data. I am just clueless what algorithms should I use in those functions…
So, I have a lack of understanding “what” to do, instead of “how”.
Should I use something like GloVe for “measure” and “ranking”? Or maybe it is easier to use some python library (that I dont know about yet)… Thats kind of questions is my concern right now.

kokolegorille

kokolegorille

I don’t know what You really want to achieve… but what about something like?

sum(points) / number of occurence in subtopic
MihailPertsev

MihailPertsev OP

I want to create some simple “measure” system which can rank keywords in each Subtopic by it “importance”. My current thinking about “importance”: “if given keyword is appearing more frequently across different products inside Subtopic, then this keyword is more important…” But I don’t know what to do about keywords that are overlapping across many Subtopics, for example keyword “big data” is probably more important inside “Artificial Intelligence” than "Internet of Things. But I don’t know how to mathematically “measure” it.

Where Next? Top

Trending in Questions Top

katta
I having some trouble figuring out if I have set myself too strict of standards for my production server. Currently I can handle 75% of r...
New
brecabral
Documentation While reading the Scoped Routes section, I noticed that the documentation currently refers to a problem without explainin...
New
achenet
Hello, I’m trying to build a basic Phoenix web-app, and I’d like to use Tailwind. However, when I launch mix phx.server, I get an error...
New
kpanic
Hi everyone, I am toying with the idea of building a “match maker” for giving personal help to people that wants to start coding. I sta...
New
asweet-confluent
I recently noticed that Elixir’s Logger defaults its primary log level to :debug when no :logger, :level application configuration is pre...
New
Cxx-mlr
I’m working on a small exercise involving update_in/3, and I came up with this solution: data = %{ name: "Periodic Table", category:...
New
ChrisAmelia
I’ve got trouble wrapping my head around the order in which functions are called in this snippet (from Phoenix’s authentication): toke...
New

Other Trending Topics Top

GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
garrison
Hobbes is a low-level distributed database for the Elixir programming language. Hobbes provides a simple, safe, and scalable storage lay...
New
mhanberg
Hi everyone! The first release candidate for the Expert language server project is now available! We’ve published a press release detai...
New
budgie
A little off-topic, but I feel like people here have a good head on their shoulders. I used to be quite good at making software. Was luc...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews