Giter Club home page Giter Club logo

calcipher's Introduction

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.

calcipher's People

Contributors

double-a-92 avatar mattstam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

double-a-92

calcipher's Issues

Ways to expand the program and improve accuracy

I've got some of the main algorithms down (pattern recognition, "above" answer biases, length considerations) but am certainly still looking to tac on more ways to improve accuracy for guessing the correct answer in multiple choice questions.

The source code should be very easy to add too, the comments make it very clear what everything does. In essence, to add another algorithm: add another class that does what you need it to do, make an object in the main, and make a method for multiplying it with the desired bias.

Other things you might want to try:

Adjust the biases to get more accurate answers (although currently there is only 2 to adjust, so this isn't as important at this stage

Throw example data in from available tests and see report what kind of results you're getting

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.