From the previous example, we might end up with the following possible answers:
maker, taker, baker, faker, mater, poker
The program will determine the letters to eliminate as m, a, k, t, o, b, f, p. Notice that the program often prioritizes and chooses words that contain the first few letters. If it is unable to match it all, it will continue to look for words with letters down the list. How it chooses the letters is it iterates through each column and finds the most frequently appearing letter. In this case m is the most frequent in column 1, a in column 2, k in column 3. Column 4 and 5 are skipped because there is no uncertainty among those columns. Again it goes through column 1 and finds t, column 2 and finds o. Column 3 is finished since we already found t. The program continues to do this until there are no more letters to eliminate.
The source code and DataFrames containing the recorded info can be found here.
Guesses Made in 2 Attempts: 12
Considering that the guesses are no longer chosen from the list of possibilities at random, the only way in which the program could have guessed the answer when the list of possibilities is greater than one is if the guess to eliminate the length of possiblities turned out to be the answer as well.