I am trying to find a way to group multiple keywords based on their meaning or possible relation to each other. These grouping are based on the semantics of the word and not word similarity.
I don't know how to do this as all the solutions that find use word similarity.
I tried using chatGPT and it did group a sample list correctly. But it kept forgetting this sample on multiple occasions making its response very unreliable. Along with other issues, using chatGPT directly or any service that exposes its APIs seems not very useful.
The option that I have right now is to run an opensource LLM locally and see if it can be reliably used to group keywords together and decide on which group to add the keyword to.
Before I do that I would like to get some insight into similar issues and their solutions. Is there another applicable opensource solution that might hemp me
Here is an example of what I would like:
// input
[
'macbook',
'earbuds',
'microwave',
'DVR',
'HDMI cable',
'Stove',
'Fridge',
'Iphone',
'satelite dish',
'garden hose'
]
// output
{
"appleProducts" : [
'macbook',
'earbuds',
'Iphone'
],
"Electronics" : [
"earbuds",
"microwave",
"DVR",
"HDMI cable",
"Fridge",
"Iphone"
"Satelite Dish"
],
"KitchenAppliances": [
"microwave",
"Stove",
"Fridge",
],
"multimediaDevices": [
"DVR",
"Iphone",
"satelite dish"
]
}