AI Zone Admin Forum Add your forum

NEWS: Chatbots.org survey on 3000 US and UK consumers shows it is time for chatbot integration in customer service!read more..

Pronoun resolution
 
 

Another question (which I suspect might be a bit more complicated)...

I understand from this post (http://www.chatbots.org/ai_zone/viewthread/748/) that when parsing is enabled, the engine automatically stores pronouns in its predefined set of variables.

This:

s: (like chicken)  You like chicken
s: (like itYou like $it_pronoun

gives me this:

> I like chicken
: You like chicken.
> I like it
: You like.

I suppose I understood wrong and that pronoun resolution is a much more complicated task?

Thanks again,

Jonathan

 

 
  [ # 1 ]

Sadly you are correct. Resolving pronouns is not a purely algorithmic task and is subject to how you want to do it. So in fact, pronoun resolution is handled primarily by script. 

Resolution algorithms involve considering whether the pronoun is a forward reference into the sentence, a backward one to a prior sentence. One might have multiple values of it (  “the car sat by the lake near the house”.  then “in it lives a woman” or “in it swam a fish”). Knowing the verb involved may be required to resolve the pronoun.

Which means you decide which pronouns to try to resolve (he,she,it,they, there?, here?, that?  etc).

Which means for “there” you have to decide what sentences it should think mean a place and which are merely existential there.  Which means for “it” which sentences are actually referents and which are not like “it is raining”. 

You have to decide if you want a simple reference or a phrase referent.  If the bot said “I have a black dog”, and the user says “what does it eat” do you want that as “what does a black dog eat”, “what does the black dog eat”, “what does dog eat”, etc.

Then you have to decide what it means to resolve the pronoun… do you actually rewrite the sentence and resubmit it or do you just mark the word site with auxiliary marks.  For example the “what does it eat” can remain intact, and you can mark the 3rd word with “dog” and all that that implies (~animals, ~pets, etc).

So I have script that captures pronoun values (run on both user input and bot output), and script to decode pronoun references (sometimes rewriting, sometimes just marking, sometimes deciding not to decode).  The pronoun “her” generally forces a rewrite because until I know whether that is a possessive or an object pronoun, I won’t know if I want a possessive marker around regardless (eg.  “her dress” will become “Mary’s dress” which tokenizes to Mary ‘s dress. ).

 

 
  [ # 2 ]

Thanks for the generous clarifications.

What do the variables such as $it_pronoun contain then?

 

 
  [ # 3 ]

well, in my “old style” pronoun processing, the script grabbed a single noun phrase to represent it.  But as I pointed out, that won’t work when multiple possible targets exist. My new style builds a series of facts, classifying the its by type (eg building, weapon, etc), so I can retrieve a particular class if I want to. And in my old style I always resubmitted revised input. My new style generally doesn’t resubmit input any more, but I don’t yet use the series of facts notation yet.

 

 
  login or register to react