Reference resolution
The OpenCog natural language pipeline implements a basic form of reference resolution in opencog/nlp/anaphora. The code creates ReferenceLinks between pronouns and several possible references that they may refer to. The TruthValue on the ReferenceLinks is adjusted to indicate a general preference. It is presumed that a later stage, making use of word-sense disambiguation and common-sense reasoning will adjust the truth values to determine the true reference.
For example, the input sentences "blah blah ..." will result in
ReferenceLink <TV> WordInstanceNode "he@123" WordInstanceNode "blah@456"
being created.
Contents
Anaphora
Anaphora resolutions are fully supported by the current algorithm(Modified Hobbs Algorithm).
Cataphora
Cataphora resolutions are not supported right now
Split Antecedents
Only AND conjunctions are supported.
""The cook and waitress sigh and roll their eyes."" - The anaphor their has a split antecedent, referring to both cook and waitress.
Zero-Pronoun
Quantifiers
many
some
few
much
little
most
several
Example:
"We told all the students about the meeting, but only some came."
Numbers
e.g. "Twenty", "12", etc
Example:
"We told all the students about the meeting, but only twenty came."
Determiners
this
that
these
those
Examples:
"I made two stacks of books. These need to be reshelved and those need to be sold."
"these", "those" should refer to "stacks".
"He took the shot that won the game." here, "that" refers to "shot". Arguably "that" could refer to "took", a verb.
"that" can sometimes refer to verbs, often gerunds.
"that copier is always breaking down. We should do something about that. The second "that" refers to "breaking".
its not always a gerund: "I gave him a piece of my mind. That should keep him away for a while." "that" refers to "give", which is a verb.
"I will give him some sedative. That should calm him down." "that" should refer to "give". I guess you could argue that it refers to "sedative" .. maybe. but I think "that" refers to the action not the object.
Pleonastic it
(Incomplete)
NP < (PRP=m1) $.. (VP < ((/^V.*/ < /^(?:is|was|become|became)/) $.. (VP < (VBN $.. /S|SBAR/))))
NP < (PRP=m1) $.. (VP < ((/^V.*/ < /^(?:is|was|become|became)/) $.. (ADJP $.. (/S|SBAR/))))
NP < (PRP=m1) $.. (VP < ((/^V.*/ < /^(?:is|was|become|became)/) $.. (ADJP < (/S|SBAR/))))
NP < (PRP=m1) $.. (VP < ((/^V.*/ < /^(?:is|was|become|became)/) $.. (NP < /S|SBAR/)))
NP < (PRP=m1) $.. (VP < ((/^V.*/ < /^(?:is|was|become|became)/) $.. (NP $.. ADVP $.. /S|SBAR/)))
NP < (PRP=m1) $.. (VP < (MD $ .. (VP < ((/^V.*/ < /^(?:be|become)/) $.. (VP < (VBN $.. /S|SBAR/))))))
NP < (PRP=m1) $.. (VP < (MD $ .. (VP < ((/^V.*/ < /^(?:be|become)/) $.. (ADJP $.. (/S|SBAR/))))))
NP < (PRP=m1) $.. (VP < (MD $ .. (VP < ((/^V.*/ < /^(?:be|become)/) $.. (ADJP < (/S|SBAR/))))))
NP < (PRP=m1) $.. (VP < (MD $ .. (VP < ((/^V.*/ < /^(?:be|become)/) $.. (NP < /S|SBAR/)))))
NP < (PRP=m1) $.. (VP < (MD $ .. (VP < ((/^V.*/ < /^(?:be|become)/) $.. (NP $.. ADVP $.. /S|SBAR/)))))
NP < (PRP=m1) $.. (VP < ((/^V.*/ < /^(?:seems|appears|means|follows)/) $.. /S|SBAR/))
NP < (PRP=m1) $.. (VP < ((/^V.*/ < /^(?:turns|turned)/) $.. PRT $.. /S|SBAR/)
Source: Heeyoung Lee, Angel Chang, Yves Peirsman, Nathanael Chambers, Mihai Surdeanu and Dan Jurafsky. Deterministic coreference resolution based on entity-centric, precision-ranked rules. Computational Linguistics 39(4), 2013.
Coreferring Noun Phrases
Not supported.
Examples:
a. The project leaderi is refusing to help. The jerki thinks only of himself. - Coreferring noun phrases, whereby the second noun phrase is a predication over the first.
b. Some of our colleagues1 are going to be supportive. These kinds of people1 will earn our gratitude. - Coreferring noun phrases, whereby the second noun phrase is a predication over the first.
Special cases
Enough
Examples:
"the children kept fighting till they had enough" -- "enough" refers to "fighting".
"care for another beer? Thanks, I've had enough" -- enough refers to "beer".