Was the use of ANN necessary, or simply done because it was cool to do? Because at least in my mind it looks like extracting the text and running a brute force program on it would be faster, no?
If my reading is correct, the neural network was used to OCR the image, extracting the text. From there, it is indeed a simple brute-force string search.
The use of ANN was completely unnecessary, as there are only 3 characters in the crossword puzzle. I wanted to try out the OpenCV ANN implementation though and since it's not a real world application it doesn't really matter.
FWIW that's not a crossword puzzle. As a crossword enthusiast, I would be very interested in the implementation of an AI-backed crossword puzzle solver!
In Paint.Net I only adjusted the curves (CTRL+SHIFT+M) to get a better contrast. The OCR is done by Tesseract. This solution is all about using the right tool for the job.
You are correct. However, it is stated that 'KAYAK' appears only once and it seems to me that CTRL+Fing should be the first thing to do when searching for a string in a relatively small text. The next step, had the CTRL+F failed, would have been to search for "KAYAK" vertically/diagonally programmatically.
(on a sidenote, you're counting is incorrect, as it is a palindrome there really is only 4 directions for the word to appear: W-E, N-S, NW-SE, NE-SW)
Found it in a couple minutes by hand. I started from the position (3,3) and circled the board looking for "Y" surrounded by two A's, and checking for the phrase. Working inward it's only a matter of time before you find it. There are also the borders to check then.
21 comments
[ 73.6 ms ] story [ 371 ms ] threadhttp://games.usvsth3m.com/one-word-wordsearch/#MTAsS0FZQUssN...
https://projecteuler.net/problem=11
https://code.google.com/p/word2vec/
We're cleaning up the code now for release as an AI paper, so as soon as we're done I'll release the code on Github.
[1] http://en.wikipedia.org/wiki/Cryptic_crossword
Cryptic crosswords (at least good ones) play with conventions so much, I imagine it must be quite a challenge.
0. Download and install Tesseract https://code.google.com/p/tesseract-ocr/
1. Crop and adjust curves of the image in Paint.Net (= get a better contrast) to ease OCR
2. Save as PNG in the folder of Tesseract
3. Open cmd in Tesseract folder, type tesseract kayak.png kayak (produces kayak.txt)
4. Open kayak.txt in Notepad++, remove empty lines (to have correct indexes), CTRL+F "KAYAK"
(Well, for a palindrome, it works for east-to-west too - so I guess you missed 6).
(on a sidenote, you're counting is incorrect, as it is a palindrome there really is only 4 directions for the word to appear: W-E, N-S, NW-SE, NE-SW)