All Projects → mattstam → calcipher

mattstam / calcipher

Licence: Apache-2.0 license
Calculates the best possible answer for multiple-choice questions using techniques to maximize accuracy without any other outside resources or knowledge.

Programming Languages

java
68154 projects - #9 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to calcipher

Sig
The most powerful and customizable binary pattern scanner
Stars: ✭ 131 (+773.33%)
Mutual labels:  patterns, pattern-recognition
HHH-An-Online-Question-Answering-System-for-Medical-Questions
HBAM: Hierarchical Bi-directional Word Attention Model
Stars: ✭ 44 (+193.33%)
Mutual labels:  question-answering
notes
My personal tutorials and notes.
Stars: ✭ 34 (+126.67%)
Mutual labels:  patterns
Instahelp
Instahelp is a Q&A portal website similar to Quora
Stars: ✭ 21 (+40%)
Mutual labels:  question-answering
goodcode
A curated collection of annotated code examples from prominent open-source projects
Stars: ✭ 184 (+1126.67%)
Mutual labels:  patterns
Natural-color-image-segmentation
A list of papers and datasets about natural/color image segmentation (processing)
Stars: ✭ 17 (+13.33%)
Mutual labels:  pattern-recognition
GrailQA
No description or website provided.
Stars: ✭ 72 (+380%)
Mutual labels:  question-answering
BERT-for-Chinese-Question-Answering
No description or website provided.
Stars: ✭ 75 (+400%)
Mutual labels:  question-answering
TeBaQA
A question answering system which utilises machine learning.
Stars: ✭ 17 (+13.33%)
Mutual labels:  question-answering
dagger2-clean-mvp-example
Sample project with a basic approach to CLEAN architecture on Android
Stars: ✭ 41 (+173.33%)
Mutual labels:  patterns
Question-Answering-based-on-SQuAD
Question Answering System using BiDAF Model on SQuAD v2.0
Stars: ✭ 20 (+33.33%)
Mutual labels:  question-answering
deglob
📂 Take a list of glob patterns and return an array of file locations, respecting `.gitignore` and allowing for ignore patterns via `package.json`.
Stars: ✭ 38 (+153.33%)
Mutual labels:  patterns
strategyqa
The official code of TACL 2021, "Did Aristotle Use a Laptop? A Question Answering Benchmark with Implicit Reasoning Strategies".
Stars: ✭ 27 (+80%)
Mutual labels:  question-answering
fast-tsetlin-machine-with-mnist-demo
A fast Tsetlin Machine implementation employing bit-wise operators, with MNIST demo.
Stars: ✭ 58 (+286.67%)
Mutual labels:  pattern-recognition
tartifacts
📦 Create artifacts for your assemblies
Stars: ✭ 20 (+33.33%)
Mutual labels:  patterns
KitanaQA
KitanaQA: Adversarial training and data augmentation for neural question-answering models
Stars: ✭ 58 (+286.67%)
Mutual labels:  question-answering
pair2vec
pair2vec: Compositional Word-Pair Embeddings for Cross-Sentence Inference
Stars: ✭ 62 (+313.33%)
Mutual labels:  question-answering
Dynamic-Coattention-Network-for-SQuAD
Tensorflow implementation of DCN for question answering on the Stanford Question Answering Dataset (SQuAD)
Stars: ✭ 14 (-6.67%)
Mutual labels:  question-answering
FreebaseQA
The release of the FreebaseQA data set (NAACL 2019).
Stars: ✭ 55 (+266.67%)
Mutual labels:  question-answering
TransTQA
Author: Wenhao Yu ([email protected]). EMNLP'20. Transfer Learning for Technical Question Answering.
Stars: ✭ 12 (-20%)
Mutual labels:  question-answering

Calcipher

Calcipher is a Java program that calculates the best possible answer for multiple-choice questions using techniques to maximize accuracy without any other outside resources or knowledge.

Example Questions:

examplequestions

Result:

exampleanswers

How To Use

Enter in a text file with the questions you want analyzed. The program will determine the best possible answers for each question. Those answers are bolded in an HTML file.

Methodology

In theory, guessing on a 4 answer multiple choice test would yield a result of 25% correct. However, we can increase our accuracy if we exploit the techniques that creators typically use to design these tests. There are multiple ways we can reverse-engineer these techniques and use them to bolster the amount of questions we can correctly guess.

One of the most powerful of these techniques is to look at word occurrences between each question's answers. When false answer choices are designed, they are made with slight deviations from the correct choice. In these false answers, there is often a part of the answer that is correct combined with part of the answer that is incorrect. This gives each question multiple answers that seem viable, which should make it harder to guess on. However, if we look for these types of patterns, we can use them to guess the correct answer.

For example:

cloudquestion

Assuming you have no knowledge meteorology, you should have a 25% chance of guessing the correct response. But we can use our knowledge of how these questions are created to maximize our chances of being correct. There is two traits to look at in each choice, the color and the type. Of all the questions, the only response with repeated traits is option C. The color choice is the same as option D, and the type is the same as option A. Because no other option has this much in common with the rest, the best possible guess is always C.

We can combine this method with others that will help improve our accuracy even more. We can give biases to "None of the above, All of the above, etc" type questions, which have ~52% chance of being correct. We can look at answer length, exploiting the fact that the correct choices have to be unequivocally correct, which lends itself to expressive language, and thus are typically longer answers.

Each one of these factors gets its own bias which changes how much the result of each method should weigh. These biases are summed up to determine which answer is the best possible choice to maximize accuracy.

Calcipher does all of this on a large scale. It takes in any multiple choice test (which can have any number of options) and outputs the best possible guesses by bolding them in a HTML file.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].