7 ms·
Show HN: Semantic Calculator (king-man+woman=?)
I've been playing with embeddings and wanted to try out what results the embedding layer will produce based on just word-by-word input and addition / subtraction, beyond what many videos / papers mention (like the obvious king-man+woman=queen). So I built something that doesn't just give the first answer, but ranks the matches based on distance / cosine symmetry. I polished it a bit so that others can try it out, too.
For now, I only have nouns (and some proper nouns) in the dataset, and pick the most common interpretation among the homographs. Also, it's case sensitive.
- Finbel 1y agoLondon-England+France=Maupassant
- antidnan 1y agoNeat! Reminds me of infinite craft https://neal.fun/infinite-craft/ https://neal.fun/infinite-craft/
- thaumasiotes 1y agoI went to look at infinite craft. It provides a panel filled with slowly moving dots. Right of the panel, there are objects labeled "water", "fire", "wind", and "earth" that you can instantiate on the panel and drag around. As you drag them, the background dots, if nearby, will grow lines connecting to them. These lines are not persistent. And that's it. Nothing ever happens, there are no interactions except for the lines that appear while you're holding the mouse down, and while there is notionally a help window listing the controls, the only controls are "select item", "delete item", and "duplicate item". There is also an "about" panel, which contains no information.
- n2d4 1y agoIn the panel, you can drag one of the items (eg. Water) onto another one (eg. Earth), and it will create a new word (eg. Plant). It uses AI, so it goes very deep
- thaumasiotes 1y agoNo, that was the first thing I tried. The only thing that happens is that the two objects will now share their location. There are no interactions.
- n2d4 1y agoProbably a bug then, you can check YouTube to find videos of people playing it (eg. [0]) [0] https://youtu.be/8-ytx84lUK8 https://youtu.be/8-ytx84lUK8
- mkl 1y agoThere are definitely interactions. https://news.ycombinator.com/item?id=39205020 https://news.ycombinator.com/item?id=39205020
- gaoryrt 1y agoAfter turning off adblock everything goes well.
- firejake308 1y agoKing-man+woman=Navratilova, who is apparently a Czech tennis player. Apparently, it's very case-sensitive. Cool idea!
- fph 1y ago"King" (capital) probably was interpreted as https://en.wikipedia.org/wiki/Billie_Jean_King https://en.wikipedia.org/wiki/Billie_Jean_King , that's why a tennis player showed up.
- nikolay 1y agoReally?! man - brain = woman woman - brain = businesswoman
- 2muchcoffeeman 1y agoMan - brain = Irish sea
- karel-3d 1y agowoman+penis=newswoman (businesswoman is second) man+vagina=woman (ok that is boring)
- sapphicsnail 1y agoTelling that Jewess, feminist, and spinster were near matches as well.
- nxa 1y agoI probably should have prefaced this with "try at your own risk, results don't reflect the author's opinions"
- adzm 1y agonoodle+tomato=pasta this is pretty fun
- growlNark 1y agoSurely the correct answer would be `pasta-in-tomato-sauce`? Pasta exists outside of tomato sauce.
- cabalamat 1y agoWhat does it mean when it surrounds a word in red? Is this signalling an error?
- nxa 1y agoYes, word in red = word not found mostly the case when you try plurals or non-nouns (for now)
- rpastuszak 1y agoThis is neat! I think you need to disable auto-capitalisation because on mobile the first word becomes uppercase and triggers a validation error.
- iambateman 1y agoTry Lower casing, my phone tried to capitalize and it was a problem.
- fallinghawks 1y agoSeems to be a word not in its dictionary. Seems to not have any country or language names. Edit: these must be capitalized to be recognized.
- zerof1l 1y agomale + age = female female + age = male
- G1N 1y agotwelve-ten+five= six (84%) Close enough I suppose
- lightyrs 1y agoI don't get it but I'm not sure I'm supposed to. life + death = mortality life - death = lifestyle drug + time = occasion drug - time = narcotic art + artist + money = creativity art + artist - money = muse happiness + politics = contentment happiness + art = gladness happiness + money = joy happiness + love = joy
- grey-area 1y agoDoes the system you’re querying ‘get it’? From the answers it doesn’t seem to understand these words or their relations. Once in a while it’ll hit on something that seems to make sense.
- bee_rider 1y agoLife + death = mortality is pretty good IMO, it is a nice blend of the concepts in an intuitive manner. I don’t really get drug + time = occasion But drug - time = narcotic Is kind of interesting; one definition of narcotic is > a drug (such as opium or morphine) that in moderate doses dulls the senses, relieves pain, and induces profound sleep but in excessive doses causes stupor, coma, or convulsions https://www.merriam-webster.com/dictionary/narcotic https://www.merriam-webster.com/dictionary/narcotic So we can see some element of losing time in that type of drug. I guess? Maybe I’m anthropomorphizing a bit.
- deleted 1y ago[deleted]
- woodruffw 1y agocolorless+green+ideas doesn't produce anything of interest, which is disappointing.
- dmonitor 1y agowell green is not a creative color, so that's to be expected
- skeptrune 1y agoThis is super fun. Offering the ranked matches makes it significantly more engaging than just showing the final result.
- ericdiao 1y agoInteresting: parent + male = female (83%) Can not personally find the connection here, was expecting father or something.
- ericdiao 1y agoThough dad is in the list with lower confidence (77%). High dimension vector is always hard to explain. This is an example.
- spindump8930 1y agoFirst off, this interface is very nice and a pleasure to use, congrats! Are you using word2vec for these, or embeddings from another model? I also wanted to add some flavor since it looks like many folks in this thread haven't seen something like this - it's been known since 2013 that we can do this (but it's great to remind folks especially with all the "modern" interest in NLP). It's also known (in some circles!) that a lot of these vector arithmetic things need some tricks to really shine. For example, excluding the words already present in the query[1]. Others in this thread seem surprised at some of the biases present - there's also a long history of work on that [2,3]. [1] https://blog.esciencecenter.nl/king-man-woman-king-9a7fd2935a85 https://blog.esciencecenter.nl/king-man-woman-king-9a7fd2935... [2] https://arxiv.org/abs/1905.09866 https://arxiv.org/abs/1905.09866 [3] https://arxiv.org/abs/1903.03862 https://arxiv.org/abs/1903.03862
- nxa 1y agoThank you! I actually had a hard time finding prior work on this, so I appreciate the references. The dictionary is based on https://wordnet.princeton.edu/ https://wordnet.princeton.edu/, no word2vec. It's just a plain lookup among precomputed embeddings (with mxbai-embed-large). And yes, I'm excluding words that are present in the query because. It would be interesting to see how other models perform. I tried one (forgot the name) that was focused on coding, and it didn't perform nearly as well (in terms of human joy from the results).
- kaycebasques 1y ago(Question for anyone) how could I go about replicating this with Gemini Embedding? Generate and store an embedding for every word in the dictionary?
- nxa 1y agoYes, that's pretty much what it is. Watch out for homographs.
- 7373737373 1y agoit doesn't know the word human
- grey-area 1y agoAs you might expect from a system with knowledge of word relations but without understanding or a model of the world, this generates gibberish which occasionally sounds interesting.
- fallinghawks 1y agogoshawk-cocaine = gyrfalcon , which is funny if you know anything about goshawks and gyrfalcons (Goshawks are very intense, gyrs tend to be leisurely in flight.)
- kataqatsi 1y agogarden + sin = gardening hmm...
- MYEUHD 1y agoking - man + woman = queen queen - woman + man = drone
- blobbers 1y agorice + fish = fish meat rice + fish + raw = meat hahaha... I JUST WANT SUSHI!
- godelski 1y agodata + plural = number data - plural = research king - crown = (didn't work... crown gets circled in red) king - princess = emperor king - queen = kingdom queen - king = worker king + queen = queen + king = kingdom boy + age = (didn't work... boy gets circled in red) man - age = woman woman - age = newswoman woman + age = adult female body (tied with man) girl + age = female child girl + old = female child The other suggestions are pretty similar to the results I got in most cases. But I think this helps illustrate the curse of dimensionality (i.e. distances are ill-defined in high dimensional spaces). This is still quite an unsolved problem and seems a pretty critical one to resolve that doesn't get enough attention.
- virgilp 1y agohacker+news-startup = golfer
- pjc50 1y agoAh yes, 女 + 子 = girl but if combined in a kanji you get 好 = like.
- Affric 1y agoYeah I did similar tests and got similar results. Curious tool but not what I would call accurate.
- n2d4 1y agoFor fun, I pasted these into ChatGPT o4-mini-high and asked it for an opinion: data + plural = datasets data - plural = datum king - crown = ruler king - princess = man king - queen = prince queen - king = woman king + queen = royalty boy + age = man man - age = boy woman - age = girl woman + age = elderly woman girl + age = woman girl + old = grandmother The results are surprisingly good, I don't think I could've done better as a human. But keep in mind that this doesn't do embedding math like OP! Although it does show how generic LLMs can solve some tasks better than traditional NLP. The prompt I used: > Remember those "semantic calculators" with AI embeddings? Like "king - man + woman = queen"? Pretend you're a semantic calculator, and give me the results for the following:
- TZubiri 1y agoI'm getting Navralitova instead of queen. And can't get other words to work, I get red circles or no answer at all.
- gus_massa 1y agoFrom another comment, https://news.ycombinator.com/item?id=43988861 https://news.ycombinator.com/item?id=43988861 King (with capital K) was a top 1 male tenis player.
- nxa 1y agoThis might be helpful: I haven't implemented it in the UI, but from the API response you can see what the word definitions are, both for the input and the output. If the output has homographs, likeliness is split per definition, but the UI only shows the best one. Also, if it gets buried in comments, proper nouns need to be capitalized (Paris-France+Germany). I am planning on patching up the UI based on your feedback.
- ericdiao 1y agowine - alcohol = grape juice (32%) Accurate.
- afandian 1y agoThere was a site like this a few years ago (before all the LLM stuff kicked off) that had this and other NLP functionality. Styling was grey and basic. That’s all I remember. I’ve been unable to find it since. Does anyone know which site I’m thinking of?
- halter73 1y agoI'm not sure this is old enough, but could you be referencing https://neal.fun/infinite-craft/ https://neal.fun/infinite-craft/ from https://news.ycombinator.com/item?id=39205020 https://news.ycombinator.com/item?id=39205020?
- afandian 1y agoThanks, no it wasn't that, it was a basic HTML form.
- ephou7 1y ago[flagged]
- montebicyclelo 1y ago> king-man+woman=queen Is the famous example everyone uses when talking about word vectors, but is it actually just very cherry picked? I.e. are there a great number of other "meaningful" examples like this, or actually the majority of the time you end up with some kind of vaguely tangentially related word when adding and subtracting word vectors. (Which seems to be what this tool is helping to illustrate, having briefly played with it, and looked at the other comments here.) (Btw, not saying wordvecs / embeddings aren't extremely useful, just talking about this simplistic arithmetic)
- raddan 1y ago> is it actually just very cherry picked? 100%
- gregschlom 1y agoAlso, as I just learned the other day, the result was never equal, just close to "queen" in the vector space.
- charcircuit 1y agoAnd queen isn't even the closest.
- mcswell 1y agoWhat is the closest?
- deleted 1y ago[deleted]
- charcircuit 1y agoUsually king is.
- KeplerBoy 1y ago
- jumploops 1y agoThis is super neat. I built a game[0] along similar lines, inspired by infinite craft[1]. The idea is that you combine (or subtract) “elements” until you find the goal element. I’ve had a lot of fun with it, but it often hits the same generated element. Maybe I should update it to use the second (third, etc.) choice, similar to your tool. [0] https://alchemy.magicloops.app/ https://alchemy.magicloops.app/ [1] https://neal.fun/infinite-craft/ https://neal.fun/infinite-craft/
- ezbie 1y agoCan someone explain me what the fuck this is supposed to be!?
- mhitza 1y agoSemantical subtraction within embeddings representation of text ("meaning")
- deleted 1y ago[deleted]
- matallo 1y agouncle + aunt = great-uncle (91%) great idea, but I find the results unamusing
- lcnPylGDnU4H9OF 1y agoSome of these make more sense than others (and bookshop is hilarious even if it's only the best answer by a small margin; no shade to bookshop owners). map - legend = Mercator projection noodle - wheat = egg noodle noodle - gluten = tagliatelle architecture - calculus = architectural style answer - question = comment shop - income = bookshop curry - curry powder = cuisine rice - grain = chicken and rice rice + chicken = poultry milk + cereal = grain blue - yellow = Fiji blue - Fiji = orange blue - Arkansas + Bahamas + Florida - Pluto = Grenada
- C-x_C-f 1y agoI don't want to dump too many but I found chess - checkers = wormseed mustard (63%) pretty funny and very hard to understand. All the other options are hyperspecific grasslike plants like meadow salsify.
- ccppurcell 1y agoMy philosophical take on it is that natural language has many many more dimensions than we could hope to represent. Whenever you do dimension reduction you lose information.
- ActionHank 1y agodog - fur = Aegean civilization
- kylecazar 1y agoWoman + president = man
- tlhunter 1y agoman + woman = adult female body
- __MatrixMan__ 1y agoHere's a challenge: find something to subtract from "hammer" which does not result in a word that has "gun" as a substring. I've been unsuccessful so far.
- neom 1y agoif I'm allowed only 1 something, I can't find anything either, if I'm allowed a few somethings, "hammer - wine - beer - red - child" will get you there. Guessing given that a gun has a hammer and is also a tool, it's too heavily linked in the small dataset.
- tough 1y agohammer + man = adult male body (75%)
- rdlw 1y agoClose, that's addition
- Retr0id 1y agoWell that's easy, subtract "gun" :P
- mrastro 1y agoThe word "gun" itself seems to work. Package this as a game and you've got a pretty fun game on your hands :)
- __MatrixMan__ 1y agoDoh why didn't I think of that
- downboots 1y agoBullet
- aniviacat 1y agoGun related stuff works: bullet, holster, barrel Other stuff that works: key, door, lock, smooth Some words that result in "flintlock": violence, anger, swing, hit, impact
- neom 1y agocool but not enough data to be useful yet I guess. Most of mine either didn't have the words or were a few % off the answer, vehicle - road + ocean gave me hydrosphere, but the other options below were boat, ship, etc. Klimt almost made it from Mozart - music + painting. doctor - hospital + school = teacher, nailed it. Getting to cornbread elegantly has been challenging.
- downboots 1y agothree + two = four (90%)
- LadyCailin 1y agoHaha, yes, this was my first thought too. It seems it’s quite bad at actual math!
- yigitkonur35 1y agoshows how bad embeddings are in a practical way
- rdlw 1y agoI've always wondered if there's s way to find which vectors are most important in a model like this. The gender vector man-woman or woman-man is the one always used in examples, since English has many gendered terms, but I wonder if it's possible to generate these pairs given the data. Maybe to list all differences of pairs of vectors, and see if there are any clusters. I imagine some grammatical features would show up, like the plurality vector people-person, or the past tense vector walked-walk, but maybe there would be some that are surprisingly common but don't seem to map cleanly to an obvious concept. Or maybe they would all be completely inscrutable and man-woman would be like the 50th strongest result.
- Jimmc414 1y agodog - cat = paleolith paleolith + cat = Paleolithic Age paleolith + dog = Paleolithic Age paleolith - cat = neolith paleolith - dog = hand ax cat - dog = meow Wonder if some of the math is off or I am not using this properly
- Glyptodon 1y agoI figure the mathematically highest value must defer from the semantically most accurate relatively frequently. (Because Car - Wheel = Touring Car doesn't make a lot of sense to me.)
- downboots 1y agomathematics - Santa Claus = applied mathematics hacker - code = professional golf
- quantum_state 1y agoThe app produces nonsense ... such as quantum - superposition = quantum theory !!!
- nxa 1y agoartificial intelligence - bullsh*t = computer science (34%)
- behnamoh 1y agoThis. I'm tired of so many "it's over, shocking, game changer, it's so over, we're so back" announcements that turn out to be just gpt-wrappers or resume-builder projects. Very few papers that actually say something meaningful are left unnoticed, but as soon as you say something generic like "language models can do this", it gets featured in "AI influencer" posts.
- galaxyLogic 1y agoWhat about starting with the result and finding set of words that when summed together give that result? That could be seen as trying to find the true "meaning" of a word.
- GrantMoyer 1y agoThese are pretty good results. I messed around with a dumber and more naive version of this a few years ago[1], and it wasn't easy to get sensinble output most of the time. [1]: https://github.com/GrantMoyer/word_alignment https://github.com/GrantMoyer/word_alignment
- e____g 1y agoman - intelligence = woman (36%) woman + intelligence = man (77%) Oof.
- cylinderthought 1y agoJust use a LLM api to generate results, it will be far better and more accurate than a weird home cooked algorithm
- throwaway984393 1y ago[dead]
- hagen_dogs 1y agofluid + liquid = solid (85%) -- didn't expect that blue + red = yellow (87%) -- rgb, neat black + {red,blue,yellow,green} = white 83% -- weird
- moefh 1y ago> blue + red = yellow (87%) -- rgb, neat Blue + red is magenta. Yellow would be red + green. None of these results make much sense to me.
- doubtfuluser 1y agodoctor - man + woman = medical practitioner Good to understand this bias before blindly applying these models (Yes- doctor is gender neutral - even women can be doctors!!)
- heyitsguay 1y agoFwiw, doctor - woman + man = medical practitioner too
- erulabs 1y agodog - fur = Aegean civilization (22%) huh
- havkom 1y agoI tried: -red and: red-red-red But it did not work and did not get any response. Maybe I am stupid but should this not work?
- atum47 1y agohorse+man 78% male horse 72% horseman
- darepublic 1y agoman - courage = husband
- dtj1123 1y ago"man-intelligence=woman" is a particularly interesting result.
- ainiriand 1y agodog+woman = man That's weird.
- bluelightning2k 1y agopotato + microwave = potato tree
- tiborsaas 1y agoI've tried to get to "garage", but failed at a few attempts, ChatGPT's ideas also seemed reasonable, but failed. Any takers? :)
- mynameajeff 1y ago"car + house + door" worked for me (interestingly "car + home + door" did not)
- tiborsaas 1y agoThanks, nice :) House sounds more general, I guess. I've had some fun finding this: car - move + shape = car wheel
- anonu 1y agoReminds me of the very annoying word game https://contexto.me/en/ https://contexto.me/en/
- hello_computer 1y agodoesn’t do anything on my iphone
- coolcase 1y agoOh you have all the damn words. Even the Ricky Gervais ones.
- ignat_244639 1y agoHuh, that's strange, I wanted to check whether your embeddings have biases, but I cannot use "white" word at all. So I cannot get answer to "man - white + black = ?". But if I assume the biased answer and rearrange the operands, I get "man - criminal + black = white". Which clearly shows, how biased your embeddings are! Funny thing, fixing biases and ways to circumvent the fixes (while keeping good UX) might be much challenging task :)
- clbrmbr 1y agoA few favorites: wine - beer = grape juice beer - wine = bowling astrology - astronomy + mathematics = arithmancy
- krishna-vakx 1y agofor founders : love + time = commitment boredom + curiosity = exploration vision + execution = innovation resilience - fear = courage ambition + humility = leadership failure + reflection = learning knowledge + application = wisdom feedback + openness = improvement experience - ego = mastery idea + validation = product-market fit
- ale42 1y agoNot what it's meant for, I guess, but it's not very strong at chemistry ;-) salt - chlorine + potassium = sodium chlorine + sodium = rubidium water - hydrogen = tap water It also has some other interesting outputs: woman + man = adult female body (already reported by someone else) man - hand = woman woman - hand = businesswoman businessman - male + female = industrialist telephone + antenna = television equipment olive oil - oil = hearth money
- wdutch 1y agoIt's interesting that I find loops. For example car + stupid = idiot, car + idiot = stupid
- mannykannot 1y agoNow I'm wondering if this could be helpful in doing the NY Times Connections puzzle.
- cosmicgadget 1y agocar + dragon = panzer
- jryb 1y agoJust inverting the canonical example fails: queen - woman + man = drone
- x3y1 1y agoThis kind of makes sense for bees.
- andrelaszlo 1y agohand - arm + leg = vertebrate foot snowman - man = snowflake snowman - snow = snowbank
- spinarrets 1y agocheeseburger-giraffe+space-kidney-monkey = cheesecake
- Glyptodon 1y agoCar - Wheel(s) doesn't really have results I'd guess at (boat, sled, etc.). Just specific four wheeled vehicles.
- insane_dreamer 1y agocarbon + oxygen = nitrogen LOL