How to deal with homonyms (for example "okay")

Hello there :slight_smile:,

I have been stumbling upon the problem of how to deal with homonyms (= words with same form but different meaning). In the German language there are several examples, but one rather interlingual case would be the the simple word “ok” (or “okay”). It can convey the intent affirm but also got_it. As I can only match this utterance to one intent I come across problems sometimes. Does anyone have found a useful approach to handle this issue?

Thanks in advance,

Sebastian

@sebastian Thanks for the question. My follow up question based on the example you give would be do you need affirm and got_it as separate intents? One way to answer this would be by thinking if you need different conversation paths based on affirm and got_it intents.

Hey @dakshvar22, thanks for your reply. Let’s say the bot asks the user a question which the user can answer with either an affirmation or a denial – and depending on the answer, the follow-up action by the bot is selected. If the user now says “okay” and has the intent affirm in mind, which is also part of my story, the story fails because I have matched “okay” with the intent got_it. Now the bot is confused because got_it is not part of my story at this point. A possible solution I can think of right now is to create two stories: one with affirm and a copy of this story in which I replace affirm with got_it. Would this be a logical and clean solution or do you have another idea?

Still my question is do you need affirm and got_it as a separate intent or your can merge them into one? From the perspective of an ML model, the latter would be easier.

Ah, now I get what you mean. Never thought about it. I will check my use cases and see if it works out this way. Thanks for now. :slight_smile:

1 Like

Hi @sebastian,

this looks interesting for me. Would you agree, that we are talking about the common problem of disambiguation? For example take the word “Flügel” (wing/grand piano) - normally I’d say we can “simply” take a look at the context to resolve the ambiguity. That said - is your UseCase dominated by short phrases where most of the times the ambigue word is a single token utterance? Because if not, you might indeed would want to go the intent way - depending on the UseCase.

Kind regards
Julian

Hi @JulianGerhard,

Thanks for joining the discussion. Yes, most cases are about single token utterances. And it’s not just – let’s call it – standard vocabulary, but also constructions that are typical for spoken/chat language. Another example would be the German word “geht” or “es geht”. I just had this in my data. In my context it could be used for “This is working (out)” (after the question “Is it working?”) or “I am alright” (after the question “How are you?”) or even “It is alright” (after the question “How do you like this feature?”). Therefore, it’s not that easy to combine it all in one single intent…

Kind regards,

Sebastian

Circling back to this. It’s very common for users to type “ok” as a response to anything that the bot suggests/recommends. The bot answers this by saying “goodbye!”. Typically the “intent” of the user is not to exit the conversation, but maybe “nod” to what the bot said. How do we control this behavior of rasa? Having separate intent for “ok” is a way forward?