tag:blogger.com,1999:blog-4348519741358344123.post185150837753291061..comments2023-04-16T06:46:23.339-04:00Comments on functional orbitz: Cryptogram solverUnknownnoreply@blogger.comBlogger6125tag:blogger.com,1999:blog-4348519741358344123.post-19148484186832133812008-04-02T16:52:00.000-04:002008-04-02T16:52:00.000-04:00http://www.blisstonia.com/software/Decrypto/http://www.blisstonia.com/software/Decrypto/Benhttp://www.blogger.com/profile/12147464683064864133noreply@blogger.comtag:blogger.com,1999:blog-4348519741358344123.post-26361475707375214282008-03-24T01:22:00.000-04:002008-03-24T01:22:00.000-04:00I think the statistical model breaks down a bit in...I think the statistical model breaks down a bit in that situation. But it depends on what you mean by 'irregular'. If you define an irregular series of words as those that contain letter counts that do not fit what you would statistically expect, then sure there is an issue. If you define 'irregular' as a series of words that people just don't use very often, the letter frequency there might still be in the range you expect.orbitznoreply@blogger.comtag:blogger.com,1999:blog-4348519741358344123.post-4811352776782330912008-03-23T21:35:00.000-04:002008-03-23T21:35:00.000-04:00How would a statistical model work with a high num...How would a statistical model work with a high number of irregular words?Benjaminhttp://www.crypto-fun.comnoreply@blogger.comtag:blogger.com,1999:blog-4348519741358344123.post-85643637825040039432006-11-24T10:55:00.000-05:002006-11-24T10:55:00.000-05:00The target text that I'm trying to solve are t...The target text that I'm trying to solve are the cryptograms that appear in most Sunday American newspapers. I'm not sure a statistical model would work so well for those since the input is generally only a sentence or two.<br><br>My solver has a similar problem in terms of outputting a lot of things that have 100% valid words but they make no sense. Perhaps instead of understanding the grammar one could have a heirarchy of what matches seem better than others. For instance if you solve something via the large words that have fewer matches in your dictionary perhaps those would be better matches than those that have lots of choices. SO if solving those words leads to a full dictionary perhaps that is a better match, but then that runs into the issue of using some odd word that isn't in the dictionary.orbitznoreply@blogger.comtag:blogger.com,1999:blog-4348519741358344123.post-47677740932563572922006-11-21T12:38:00.000-05:002006-11-21T12:38:00.000-05:00Of course, the traditional method without brute fo...Of course, the traditional method without brute force lookups is to use letter frequencies. In English the most common letters are roughly ETAONIRSHDLU (there are variants and you can build your own frequencies easily from open source text).<br><br>The manual technique also involved recognizing patterns. For example in Dustin's phrase the two letter word "ko" is also the ending for "Wjko". "This is" could be a good guess to get things started.<br><br>The method was generally:<br><br>1) Count letter frequencies<br>2) Count two-letter frequencies<br>3) Note any subsequences that are also words<br>4) Apply any constraints of #2 and #3 that are unambiguous or only have 2 or 3 choices.<br>5) Try letters using the frequency expected vs the frequency observed, replacing all occurrences<br>6) Fill in words with 1 or 2 or 3 letters missing.<br>7) Backtrack if you get stuck.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-4348519741358344123.post-58236883868205489592006-11-21T02:21:00.000-05:002006-11-21T02:21:00.000-05:00I did a similar project in ocaml. I didn't do...I did a similar project in ocaml. I didn't do the ``abstract word'' thing until later on in the evolution of the development, but instead started by counting the letter frequencies and sorting the words by cost to isolate the most valuable word to solve first and then figuring out the additional mappings from there.<br><br>For example, given the input:<br><br>Wjko ko f weow oerwerce wh grocxfsbme<br><br>It'd decide to process ``oerwerce'' first because there were five unique letters, many of them existing in other words. There were also only 5 matches given my word classification (abcdbceb) once I added that.<br><br>Then, of course, for the rest of the words, I just have to fill in whatever letters are left and check all the remaining words against the dictionaries I loaded by classification.Dustin Sallingshttp://bleu.west.spy.net/~dustin/noreply@blogger.com