Can anybody provide me with a definition of "oracle information" as it's used in NLP and machine learning? I've come across the term in in sentiment analysis, wsd, mt, and in a number of other areas but haven't been able to find a definition of the term. Here is some context:

  • In a section of a thesis dealing with automated classification of discourse relations, the author describes oracle information in terms that are indistinguishable from "supervised." To predict Z, manually annotated discourse segments X and Y serve as "oracles" to the classifier.

  • In a paper dealing with a two-stage classification task (first classify a sentence as subjective/not subjective, then classify all subjective sentences as x or y) the tags from stage 1 are described as "oracles"--so, output from the stages of a hierarchical classifier is oracle information for later stages?

  • In a paper dealing with named entity recognition, the authors use word alignment information as an oracle.

So, can anyone provide a decent definition for the term along with an example?

2 Answers 2


It is a term from computer science or computability theory.You know,there are some sets that are not computable or recursive or not computably enumerable.To compare these sets,the Turing machine may ask information source outside the turing machine(you may think of turing machine as computer) the question about the membership for yes or no when it can not decide a element's membership or it can not decide a element's membership after amount of computation steps.To extend such an idea of information source to compare two computable sets ,one may be regarded as information source so as to decide the membership of other set's element.So it is defined in two cases,one is incomputable,the other is computable.

Because the information source outside the Turing Machine is not gotten by computation or reasoning,it comes to Turing machine as from God,we call it oracle,or oracle information.You know in ancient china,people used oracle to get God's intention


I think the term oracle here refers to information that is kind of useful in solving a question/task, but also intransparent and in need of interpretation.

So your first example

To predict Z, manually annotated discourse segments X and Y serve as "oracles" to the classifier.

sounds to me as if the classifier was trained and for such a task manually annotated data is often used. The classifier has no idea how this training data was annotated in this way, it just has the annotation as information and (presumably) information on the classification outcome. In other words, the training data is not transparent to the classifier, it just has to take it as it is.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.