[HN Gopher] A Spellchecker Used to Be a Major Feat of Software E...
___________________________________________________________________
A Spellchecker Used to Be a Major Feat of Software Engineering
Author : Bogdanp
Score : 129 points
Date : 2025-08-09 01:07 UTC (3 days ago)
(HTM) web link (prog21.dadgum.com)
(TXT) w3m dump (prog21.dadgum.com)
| gnabgib wrote:
| (2008) Popular in:
|
| 2023 (314 points, 180 comments)
| https://news.ycombinator.com/item?id=34971924
|
| 2020 (363 points, 143 comments)
| https://news.ycombinator.com/item?id=25296900
|
| 2012 (94+156 points, 70+61 comments)
| https://news.ycombinator.com/item?id=4640658
| https://news.ycombinator.com/item?id=3466388
| unstatusthequo wrote:
| Fast forward to now, and autocorrect in draft Teams messages
| appears to be the unbreakable barrier.
| AlphaAndOmega0 wrote:
| I'd have liked more explanation of the actual solutions that
| programmers used at the time.
| Someone wrote:
| For the basic word list, possibly tries
| (https://en.wikipedia.org/wiki/Trie), DAGs (https://en.wikipedi
| a.org/wiki/Directed_acyclic_graph#Data_co...), or Bloom filter
| (https://en.wikipedia.org/wiki/Bloom_filter)
| tetraodonpuffer wrote:
| according to https://en.wikipedia.org/wiki/Ispell ispell
| (1971) already used Levenshtein Distance (although from the
| article it is not stated if this already existed in the
| original version, or if it was added in later years).
| Someone wrote:
| Levenshtein distance up to 1, according to that article. If
| you have a hierarchical structure (trie or a DAG; in some
| sense, a DAG is a trie, but stored more efficiently, with
| the disadvantage that adding or removing words is hard)
| with valid words, it is not hard to check what words
| satisfy that. If you only do the inexact search after
| looking for the exact word and finding it missing I think
| it also won't be too slow when given 'normal' text to
| spell-check.
| bazzargh wrote:
| The limit given in the article is 360KB (on floppy). At that
| size, you can't use Tries, you need lossy compression. A
| Bloom filter can get you 1 in 359 false positives with the
| size of word list given
| https://hur.st/bloomfilter/?n=234936&p=&m=360KB&k=
|
| The error rate goes up to 1 in 66 for 256KB (in memory only);
| Aurornis wrote:
| The article is about fitting large dictionaries into small
| memory footprints. Writing a 200K word spell checker on a
| machine with only 256K memory.
|
| When you need to store your dictionary in under 1 byte per
| word, a trie won't cut it.
| tgv wrote:
| For checking? Just a lookup on disk (no db, just a large list
| with a custom index, then binary search in the retrieved
| block). Decoding anything was slow, and in-core was basically
| out of the question [1]. Caching was important, though, since
| just a handful of words make up 50% of the text.
|
| I once built a spell checker plus corrector which had to run in
| 32kB under a DOS hotkey, interacting with some word processor.
| On top of that, it had to run from CD ROM, and respond within a
| second. I could do 4 lookups, in blocks of 8kB, which gave me
| the option to look up the word in normal order, in reverse
| order, and a phonetic transcription in both directions. Each
| 8kB block contained quite a few words, can't remember how many.
| Then counting the similarities, and returning them as a sorted
| list. It wasn't perfect, but worked reasonably well.
|
| [1] Adding that for professional spell checking you'd need at
| least 100k lemmata plus all inflections plus information per
| word if you have to accept compounds/agglutination.
| ksherlock wrote:
| https://blog.codingconfessions.com/p/how-unix-spell-ran-in-6...
|
| https://news.ycombinator.com/item?id=42752604
| canucker2016 wrote:
| The first article I read about the techniques used in the
| spell program was the 1985 May issue of Communications of the
| ACM (CACM for those who know),
| https://dl.acm.org/toc/cacm/1985/28/5, in Jon Bentley's
| Programming Pearls column.
|
| Not as much detail as the blog.codingconfessions.com article
| mentioned above, maybe some of the other/later techniques
| were added later on?
|
| Link to the online version of the 1985 May Programming Pearls
| column: https://dl.acm.org/doi/10.1145/3532.315102
|
| The PDF version of that article:
| https://dl.acm.org/doi/pdf/10.1145/3532.315102
| knicholes wrote:
| I loved what Peter Norvig did with this. It's not just a spell
| checker, but a spelling corrector. https://norvig.com/spell-
| correct.html
| soperj wrote:
| "why should they know about something so far __outisde__ their
| specialty?"
|
| Should have used it on his spell-correct article.
| thimabi wrote:
| Given that spellcheckers are mostly stable tech, I wonder why
| Google's spellchecker in Gmail, or even in Chrome in "enhanced"
| mode, is so bad.
|
| Even Microsoft Word, being a local app and everything, manages to
| work better than Google's cloud-based offerings. That's surely
| evidence that progress is far from being linear.
| devmor wrote:
| There have been some very specific issues I and others have
| noticed that lead me to believe the backend for Google's cloud
| based spellchecker has changed from a traditional language
| model to some more generalized LLM-based system. It's gotten
| distinctly more terrible a couple of times in the last few
| years.
| chilipepperhott wrote:
| Checking if a word is spelled correctly is easy. It is providing
| high-quality suggestions that is hard.
| DJBunnies wrote:
| Having written a spellcheck, maybe 20 years ago for school,
| this is accurate.
| Finnucane wrote:
| As a copyeditor/proofreader, the number of times over the years
| I've had to fix the low-quality (i.e, wrong) suggestions is
| quite large. ("he had a small plague on his desk" remains a
| favorite.)
| KineticLensman wrote:
| One of my favourites was 'rouge elephant'.
| cratermoon wrote:
| I have a spelling checker It came with my PC
| It highlights for my review Mistakes I cannot sea.
| I ran this poem thru it I'm sure your pleased to no
| Its letter perfect in it's weigh My checker told me
| sew.
|
| https://www.thoughtco.com/spell-checker-poem-by-mark-
| eckman-...
| bluGill wrote:
| Even that is hard since there are many words where a mispelling
| is a valid different word.
| catwhatcat wrote:
| A recent article from PCGamer adding some more details:
| https://www.pcgamer.com/software/implementing-a-spellchecker...
| jimt1234 wrote:
| Can confirm. The first time I saw an automatic spellchecker was
| probably with WordStar around 1989, and it blew me away. _How can
| the computer know all the words? That 's insane!_ Sounds lame,
| but it's true. It was a different world.
| torium wrote:
| Since you're old enough, here's a question for you. Do you
| remember if at the time the first spellcheckers were invented,
| people were negative on spellcheckers, because that would mean
| that soon people would stop learning how to spell and just
| general dumbing down?
|
| It seems that anything that helps people gets this reaction
| these days. On the one hand, the argument 100% resonates with
| me. On the other hand, spelling isn't really the end, is it?
| It's just a means to an end, so what's wrong with making the
| mean easier? Did people worry that you'd stop knowing how to
| plant potatoes when trading was invented? EDIT: The example
| doesn't make sense because agriculture is newer than trading,
| but you got the idea.
| mikaelmello wrote:
| "The careless, the inept, the spelling disabled will be able
| to survive in a world of words by relying on computers to
| conceal their own weaknesses."
|
| https://www.washingtonpost.com/archive/opinions/1985/06/02/t.
| ..
| runako wrote:
| Not as much with spellcheckers because even when they started
| to get popular, it was apparent that many people cannot spell
| English. So it was very natural.
|
| People pushed back on the grammar checks when they landed in
| Word.
|
| Before that, people pushed back on calculators in secondary
| schools. This was a huge point of contention all classes
| except trigonometry, and calculators were definitely not
| allowed in the SAT/ACT.
| kergonath wrote:
| > People pushed back on the grammar checks when they landed
| in Word.
|
| Word's grammar checker has improved quite a lot. But I
| absolutely hate the style checker and its useless advice.
| Yes, I know how the passive voice works and yes, it is
| appropriate in this sentence. Also, it's not really a
| problem in English but Word still can't do spaces properly
| so it wants to put normal spaces everywhere and it's
| fucking ugly. I wish it would spend as much time fixing
| inappropriate breaking spaces (in English as well).
| Gibbon1 wrote:
| What I think is one should question if something is the
| point of the exercise.
|
| I'd argue that where writing spelling is something
| completely arbitrary and thus of no fundamental importance.
| Arithmetic is the same way, lots of algorithms to do that
| and they are all valid. So calculators and spell checkers
| are fine. And you should use them.
|
| The same is not true for grammar. Getting AI to write an
| essay for you.
| KineticLensman wrote:
| I don't remember any particular negative reaction to spell-
| checkers like the 'calculator panic'.
|
| Perhaps partly because most schoolkids then wouldn't have
| been using word processors as their main writing tool at
| school and people using them in a corporate environment were
| pleased not to make embarrassing errors in their emails.
| cruffle_duffle wrote:
| I remember that! People were worried we'd all forget how to
| spell stuff.
| mrweasel wrote:
| > because that would mean that soon people would stop
| learning how to spell and just general dumbing down?
|
| I'd argue that negative people where correct. People can't
| spell anymore, not even with a spellchecker. Maybe they never
| could? I'm not against spellcheckers, I think they are
| amazing, but they haven't helped much.
| jimt1234 wrote:
| As I recall, there was some, but not a lot of FUD around
| spellcheckers, mostly because personal computers were still
| relatively new. Most GenX parents (Boomers) didn't even know
| what personal computers were yet, so they didn't know enough
| to be concerned. (I grew up in Missouri, which was the
| Digital Stone Age back then.) At the time, I think their
| complaining was more focused on MTV and video games.
|
| However, also sounds weird, but I recall myself and some of
| my peers questioning spellcheckers, _" Why do I need this?"_,
| because spelling was a primary mission of our education. We
| were all raised constantly being tested on spelling. In fact,
| I think I disabled the spellchecker on my old-ass 286 because
| it caused delays in the overall experience.
| taftster wrote:
| It was the opposite experience for me. Before spellcheck was
| commonly part of the web browser, I would go back and reread
| some very early emails and/or usenet posts from myself. And
| realize how atrocious my spelling was.
|
| I actually consider spellcheck to have improved my spelling
| dramatically over the years. The little red squiggles under
| words have helped me to recognize my misspellings, especially
| the words that are hard for me to get right consistently.
| paradox460 wrote:
| I remember hearing this as late as the early 00s. I'd buy
| electronic dictionaries and spell checkers at yard sales and
| things like that, and use them in class. Multiple teachers
| were disapproving of it, despite it basically just being a
| paper book dictionary in a small, TI-92 shaped device. 10
| year old me never saw how flipping through some obnoxiously
| heavy book in the back of the classroom was better than just
| punching in a few letters, hitting the "show definition", and
| ensuring I was spelling and using "curmudgeonly" properly.
|
| Same went for using MacWord vs AppleWorks. MacWord had a
| built in dictionary, AppleWorks didn't.
| NitpickLawyer wrote:
| I had the same thing when the Encarta CDs started to include
| pronunciation tests. You'd get a word, speak it in the
| microphone, and get a "score" on how well you pronounced that
| word. Knowing what I know now, it was probably pretty
| inaccurate and hand wavy, but in the early 90s that was an
| absolutely amazing experience for an ESL person.
| DevX101 wrote:
| It still is? Few engineers could build a good spell checker
| without external libraries, giving a database of valid words.
| justin66 wrote:
| It takes a PhD to develop that. (ahem)
| adrianN wrote:
| The existence of external libraries is part of the point.
| kccqzy wrote:
| I was actually asked to build a spell checker in an interview.
| I immediately thought of Peter Norvig's article on spell
| corrector (https://norvig.com/spell-correct.html) and proceeded
| to explain. It turned out that the interviewer really wanted a
| spell _checker_ not spell _corrector_ : the program will only
| point out words not in the set of known words.
|
| I failed that interview by overengineering.
| dehrmann wrote:
| > I failed that interview by overengineering.
|
| Almost. You needed to clarify what the interviewer was asking
| and discover requirements. As much as HN likes to hate on
| coding interviews requiring specific algorithm knowledge,
| determining requirements is very much part of the job, and
| engineers have a tendency to build what they want to build,
| not what the customer wants.
| Gibbon1 wrote:
| Marvin the Paranoid Android voice. 'Oh... that. Just do a
| linear search on a dictionary. Put the small words first. I
| know it's woefully inefficient but you won't fuck that up'
| Aurornis wrote:
| > Few engineers could build a good spell checker without
| external libraries, giving a database of valid words.
|
| Writing a spell checker that quickly identifies if a word is in
| a list of valid words (the problem described in the article) is
| a trivial problem for anyone who has basic algorithms and data
| structure knowledge. It's the classic example for using a trie:
| https://en.wikipedia.org/wiki/Trie
|
| The problem described in the article is doing it within very
| limited storage space. How do you store your list of 200K words
| on a system with only 256K of memory? This is the challenging
| part.
| mandeepj wrote:
| > How do you store your list of 200K words on a system with
| only 256K of memory?
|
| Your hard disk is almost always larger than your RAM. You
| only load into memory what's needed at the moment. I hope
| that gives a hint on how to proceed with the above problem.
| sib wrote:
| The article refers to the need to support machines that did
| not even have hard disk drives.
| Hackbraten wrote:
| What's a hard disk?
| dhosek wrote:
| But you don't necessarily even have a hard disk. You might
| only have a 320K floppy. Floppy-only computers were pretty
| common in the late 80s when I was in undergrad.
| unregistereddev wrote:
| Indeed, I remember having to insert a dedicated 5 1/4"
| floppy in order to run spell check in Apple Writer on an
| Apple ][e.
| mandeepj wrote:
| Let's replace "hard disk" with "external storage". Shall
| we?
| benoau wrote:
| IIRC none of the popular text-based games of the 80s and early
| 90s incorporated even basic support for spelling mistakes, best-
| case scenario they had one or two synonyms baked-in and even that
| was uncommon!
| yndoendo wrote:
| It is 2025 and the best spell checker is a search engine.
| Numerous time an application will not provide the correct word.
| Only solution is to try the word in a search engine and try using
| in a sentence if that fails.
|
| In my opinion, this is where ML/AL local model, no internet
| required, would be the most beneficial today.
|
| Even had to use a search engine with, "thoughts and opi" because
| I forgot how to spell opinion before posting this. In application
| spell checker was 100% useless with assisting me.
| athrowaway3z wrote:
| I've had a related idea for a while now.
|
| Instead of how LLMs operate by taking the current text and
| taking the most likely next token, you take your full text and
| use an LLM to find the likeliness/rank of each token. I'd
| imagine this creates a heatmap that shows which parts are the
| most 'surprising'.
|
| You wouldn't catch all misspelling, but it could be very useful
| information to find what flows and what doesn't - or perhaps
| explicitly go looking for something out of the norm to capture
| attention.
| paol wrote:
| I would like this too. This approach would also fix the most
| common failure mode of spelling checkers: typos that are
| accidentally valid words.
|
| I constantly type "form" instead of "from" for example and
| spelling checkers don't help at all. Even a simple LLM could
| easily notice out of place words like that. And LLMs also
| could easily go further and do grammar and style checking.
| NitpickLawyer wrote:
| I've seen this in a UI. They went a step further and you
| could select a word (well token but anyway) and "regenerate"
| from that point by selecting another word from the token
| distribution. Pretty neat. Had the heatmaps that you
| mentioned, based on probabilities returned by the LLM.
|
| This should also be pretty cheap (just one pass through the
| LLM).
| simianwords wrote:
| in fact it can work at the language level completely with a
| prompt like "mark parts of this paragraph that don't flow
| well".
| anuramat wrote:
| That's how BERT is trained, masked language modeling
| keiferski wrote:
| Is there a reason why Apple's iPhone spellcheck is often really
| poor, significantly worse than both LLMs and just...human eyes?
|
| I often find myself butchering the spelling of a word in a way
| where the correct answer is _obvious to human eyes_ (probably
| because of "typoglycemia" [1]) and _an AI LLM immediately
| understands what I meant to say,_ but Apple 's spellcheck has "No
| Guesses Found."
|
| Does anyone else have this experience?
|
| 1. https://www.dictionary.com/e/typoglycemia/
| dlivingston wrote:
| I run into this all the time. I've just given up on the built-
| in spell checker and search the word in Google now.
| nicce wrote:
| Bit off-topic - macOS has excellent built-in dictionary. Just
| select the word in any app, press Ctrl+Command+D and it opens
| it. It even guesses most incorrect words correctly. Also
| translation available if it exist for current keyboard locales.
|
| E.g.
|
| > No entries for "typoglycemia", did you mean "hypoglycemia"?
| bee_rider wrote:
| These user activated dictionaries tend to be excellent (even
| in vim, a pretty barebones system, I tend to get fantastic
| guesses from the machine).
|
| Actually, come to think of it, the problem must be a bit
| easier than on smartphones, right? Real keyboard input is
| very precise. Smartphone keyboards already guess what word
| you were trying to spell, so they are influencing the typos
| in the direction of likely words... cannibalizing the very
| guess list that the dictionary uses!
| paradox460 wrote:
| Alfred ties into it nicely too, you can type `spell someword`
| and the completions below have the various spellings of
| words, fuzzy matched. Select one and the word goes onto your
| clipboard
| moi2388 wrote:
| I have the same experience. Some things I've noticed:
|
| - they really don't want you saying bad words of any kind.
|
| - they do not look at context at all
|
| - they focus too much on the first letter of the word for
| suggestions
| torium wrote:
| Wouldn't typoglycemia be lack of typos in your blood? Don't you
| mean the opposite?
| Twisol wrote:
| "Hypo", meaning low; "glyc-", meaning sugar; and "emia",
| meaning of the blood. "Low sugar of the blood". (With
| apologies to chubbyemu.)
|
| Since "typo" comes from "typography", it roughly means
| "symbolic". So "typoglycemia" should mean "symbolic sugar of
| the blood". Low typos in your blood would be "hypotypemia".
|
| I have no idea why "typoglycemia" refers to a human ability
| to autocorrect, but it brings me joy, so I'm not going to
| question it ^_^
| torium wrote:
| Funny that we know the same obscure youtuber.
| bcrl wrote:
| I'd be happier if the suggested word didn't move between the
| time I saw it appear and the time my finger touched the screen.
| AnotherGoodName wrote:
| Yes but it's much broader. Just in general the lack of Steve
| Jobs noticing these glaring issues and coming down hard to
| solve them is pretty clear.
|
| I remember when macbooks briefly came out with a ridiculously
| bright standby led that required Black electrical tape over if
| you wanted to sleep with it in the house. Shortly after no more
| status leds on any MacBook (thank you!).
|
| Nowadays i find non stop little annoyances with threads from
| others on the same issues on Apple devices.
| From.the.overly.prominent.full.stop when searching textually in
| the url bar to the crappy spell check and crappy spam
| filtering. As much as Jobs apparently came across as an asshole
| there's a need for someone at the top to say 'WTF is this, fix
| it or get fired!'.
| IshKebab wrote:
| I've also found a lot of this stuff is due to naysayers
| telling people that things _can 't_ be fixed (because really
| they don't want to bother). You need a strong leader to say
| "no it can and we will".
| ww520 wrote:
| Or the incentive aligned.
| SkyPuncher wrote:
| This is really what it is.
| abullinan wrote:
| It takes a village. Also to be successful in tech it takes
| an asshole. No way around it. At some point all successful
| companies share an overly aggressive visionary. The entire
| company doesn't need to be toxic, but the apex does. If you
| don't like it, don't climb the ladder.
| ttoinou wrote:
| Surely there must be some counter examples. Collison
| brothers at Stripe ?
| stripe_away wrote:
| I guess you never worked at Stripe.
| IshKebab wrote:
| I don't think it requires being an arsehole. Just being
| firm. That doesn't _require_ arseholery.
| paradox460 wrote:
| Not just that, but the strong leader needs to ensure that
| it can be fixed.
|
| Yelling at a rank-and-file to unfuck some random system,
| then not giving them any time, resources, or tools to fix
| it is just being a dictatorial dickhead.
| mrweasel wrote:
| It's hard to pinpoint exactly what it is, but yes, there
| seems to be an increasing number of small issue with Apple
| devices. They aren't major stuff simply not work, but yes,
| spam filter being pretty terrible, text overlapping on non
| flagship phones (e.g. the iPhone SE). All sorts of minor
| annoyances.
| AnotherGoodName wrote:
| Yep I've worked at other big tech where they had periodic
| "executive bug filing" where executives would flag minor
| things that are annoying. These minor issues would then
| have higher than normal priority purely by virtue of being
| flagged by an exec. I have a likely controversial opinion
| that this executive bug filing actually led to better
| outcomes.
|
| It did break prioritization in the opinion of the ground
| level teams and their goals but I argue it's not bad to at
| least periodically do this since grating against the
| current org structure prioritization and goals is not a bad
| thing to do on occasion.
|
| Chances are they'll find there's no team that considers
| themselves the owners of spell check or spam filtering and
| the goals the keyboard team are going for is likely some
| silly thing like "number of sentences with correct
| punctuation" leading to the current ridiculous outcomes
| where the period in the URL is way too prominent,
| especially considering we don't even type full URLS into
| the search bar that often these days.
|
| Dear Apple leads: if you're reading this do a short
| initiative where execs aim to file an annoyance a day. It's
| not hard to find such. There will be some complaints at the
| ground level that these executive annoyances get too much
| priority but part of that will be because you're
| questioning lower level org priorities (a healthy thing to
| do!), not because the issues don't matter. The end result
| will bring Apple a bit more in line with the quality we saw
| during the Jobs period since this is exactly the kind of
| shake up he did on occasion.
| gitpusher wrote:
| I worked at Apple and heard a lot of Steve stories. He really
| did personally approve everything. He would be sitting in a
| room, and team leads would all line up to give their quick
| 2-minute update. So it's the MacBook Air guy's turn. He comes
| in and places his prototype down in front of Steve. Steve
| opens the lid. Two seconds later he picks up the laptop and
| heaves it so hard it skipped across the table like a stone on
| water: "I said fxxking INSTANT ON!!" The poor guy collected
| his prototype and exited the room. Later the MacBook Air
| launched... it fxxking turned on the moment you open the lid
| mathiaspoint wrote:
| Good product development really does seem to require some
| sort of leader who demands quality and smacks people when
| they don't deliver. Linux is nice because of Torvalds for
| example.
| valiant55 wrote:
| I was just thinking about Linux/Linus the other day. How
| will Linux fair when Linus is no longer with us?
| jdsnape wrote:
| Fare, not fair
|
| (I'm sorry, it doesn't matter but I couldn't help it in a
| discussion on quality)
| FirmwareBurner wrote:
| _> Two seconds later he picks up the laptop and heaves it
| so hard it skipped across the table like a stone on water:
| "I said fxxking INSTANT ON!!"_
|
| When did the OG MacBook Air have instant on at launch in
| 2008?
|
| IIRC the M1 brough Instant on and Jobs wasn't around
| anymore.
| csb6 wrote:
| Sounds like a petulant child. Wholly unnecessary to get his
| point across.
| ttoinou wrote:
| Try saying the same things over and over to adults for
| years
| zimpenfish wrote:
| > From.the.overly.prominent.full.stop when searching
| textually in the url bar
|
| One of the most aggravating things in iOS. Trips me up almost
| every day (and it's been there for what? 10 years now?)
| AnotherGoodName wrote:
| Wait until you realize that the icon of the period and
| spacebar don't at all line up to the touch area due to
| touch gravitation. You can tap slightly more on the
| spacebar side and still end up with a period. https://www.r
| eddit.com/r/iphone/comments/1ekszul/comment/lgn...
|
| So if you suffer from this it's not even your fault. You're
| literally hitting the spacebar but some incentive at Apple
| in their org structure has led to the period literally
| having waaaay too much weighting and the lack of exec
| oversight at Apple in the post Jobs days is leading to us
| all.typing.periods.whenever.we.just.wanted.to.search.
| doubled112 wrote:
| All this time (literal years) I thought I.was.losing it.
| kelipso wrote:
| Lol, the amount of time I spent backspacing to retype
| without the period. Probably my main annoyance in ios.
| egypturnash wrote:
| rightnnextntonthenspuriousnninsteadnofnanspace
| elzbardico wrote:
| That light was really helpful to do the occasional late night
| visit to the bathroom in a home where I lived where there
| were no light controls at the bedside.
| jmkni wrote:
| There's nothing more frustrating than when you type the word
| you want to type, it changes it to a different word, you delete
| it and type the word you wanted to type again and then
| rinse/repeat 3 to 4 times before you have the word you actually
| wanted.
|
| And if you're not paying attention, your message ends up
| looking like you're having a stroke.
| mikestew wrote:
| It used to be that if you typed, deleted the correction, and
| retyped, that spelling would now be the preferred and you
| wouldn't have to play that game anymore. Apple broke that
| years ago.
| porridgeraisin wrote:
| Meanwhile, vim's spell checker is one of the best I have used.
| I recommend reading [:h
| spell](https://vimhelp.org/spell.txt.html#spell).
|
| Here are some nice examples (excluding obvious edit distance
| based ones which it does right)
|
| "snowbalfight" --> "snowball fight"
|
| "unrelevant" --> "irrelevant"
|
| "fone" --> "phone"
|
| "the the" --> "The"
|
| And all of this with auto capitalization if it notices you're
| at the start of a sentence, and stuff like handling proper
| nouns, punctuations, etc,.
|
| What I find really interesting is swipe-type spell checking
| (its basically word prediction) on phones. That is a really
| cool problem to solve well. Sometimes it works like a dream and
| other times it's annoying. I wonder how they write those.
| bell-cot wrote:
| > Is there a reason why ...
|
| Yes: Apple doesn't care.
|
| > Does anyone else...
|
| Yes. I just typed in "Tipografical earer" - and iOS 18.6
| suggested "Tipograxical" for the first word, and one of
| "eared", "eager", and "eater" for the second word.
| uticus wrote:
| emoticons
| el_benhameen wrote:
| I have definitely noticed this too. I also use the built in
| swipe to type feature, and it may as well be a coin flip as to
| whether it gets the word right. I get that swiping is vague,
| but even a little bit of frequency prediction would tell you
| that "sounds good" is going to be more likely than "sings
| hood". It's an absolutely infuriating feature.
| fluidcruft wrote:
| I feel the same way about Android's. It just seems like spell
| check used to be so much better then years ago. But I'm not
| sure whether it's comparing mobile with desktop expectations.
| It really seems extremely dumb on Android.
| bikeshaving wrote:
| One wild thing about the AI era is that tasks which once required
| specialized NLP expertise--rhyming/meter detection, grammar
| correction, sentiment analysis--can now be done by weak LLMs.
| Same APIs, different prompts. I'm surprised more people aren't
| exploiting this.
| tgv wrote:
| Sentiment analysis by small models is quite bad. I haven't
| tried grammar correction, but I imagine it will perform better
| in English than in e.g. German.
| real_marcfawzi wrote:
| i can't help but make funny connection between "warm" making them
| less reliable/consistent and the temperature setting....
| numpad0 wrote:
| It's also a key enabler to CJK typing on computers. CJK scripts
| never map to keyboards well, so instead of actually typing,
| approximate representations are typed in and regularized into
| written forms using similar technologies as spell checkers. It's
| a neat thing if you speak one of the languages, sort of
| interesting that a similar tool haven't been integrated into
| English keyboards.
| grishka wrote:
| Doesn't Chinese input usually work by typing Latin codes for
| characters? Korean characters represent syllables made up of
| shapes representing individual sounds, those fit on a keyboard
| just fine. And I'm not sure about Japanese, _there_ they may
| use something like spell checkers to map kana to kanji.
|
| Another interesting challenge with CJK languages was just
| displaying them. You need higher-resolution graphics and a much
| bigger character ROM to even consider that.
| numpad0 wrote:
| IIUC there are ambiguity problems in Chinese and Korean, just
| less than there are for Japanese. Korean input has no end-of-
| character marks and multi-character entry could be split
| different ways, Chinese has bunch of homonyms-in-Latin, and
| Japanese is a huge mess(like always, if I think about it...)
| paradox460 wrote:
| Romanization systems for Chinese vary, but all have the issue
| that a single "word" in the romanized system can map to
| dozens, if not hundreds, of actual "words" in the target
| language.
|
| Pinyin is sort of the standard for romanization, although
| other systems exist, as well as inputs that aren't based on
| romanization (bopomofo).
|
| Take the pinyin `fei`. Just looking at the tones that can be
| on this word, it can mean at least 4 words (my dictionary app
| couldn't find any neutral tone words). In reality, its at
| least dozens, each with different contextual meanings.
| pcrh wrote:
| This is a history Chinese keyboards before word processors,
| and even as they were first introduced:
| https://spectrum.ieee.org/chinese-keyboard
|
| Very interesting! It was certainly a different technological
| challenge...
|
| Also discussed here:
| https://news.ycombinator.com/item?id=40537464
| 77pt77 wrote:
| Please add 2008 to the title.
| YesThatTom2 wrote:
| My Commodore 64 had a spellchecker. It was a separate program. I
| had to save my file, exit my word processor program, switch
| floppies to the spell checker program, wait for it to load, and
| all I got was a list of misspelled words... no suggested
| corrections.
|
| Thinking back, how the heck did they do spell checking algorithms
| on a 6502? That's a bit of code I'd like to see reverse
| engineered!
| tomatocracy wrote:
| SpellMaster for the (6502-based) BBC Micro was seriously
| impressive given the space limitations.
|
| It did both spell checking and correction (and had an anagram
| finder as a bonus), had integration with several different
| wordprocessors, check as you type functionality, AND its own
| integrated editor on top of that. The built in dictionary had a
| claimed 58k words (with a claimed checking speed of 10k words
| per minute). All of this was somehow squeezed into 128k (as a
| ROM on a carrier board with a hardware bank switching mechanism
| paging in 16K at once).
| zkmon wrote:
| I have used WordStar in 1993. But I don't remember anyone really
| using the spell checker or feeling a need for it those days. Work
| was slow and we had enough eyes and time to catch the spelling
| mistakes. When we were upgraded to MS Word on Windows 3.1, we
| were astonished to see that it has a feature to preview the
| document before printing. But somehow WordSatr still looked more
| fluid and faster than GUI-based word processors.
| rkagerer wrote:
| This article ends too soon! Show me the techniques and solutions
| those clever programmers of old came up with. Did I miss a link
| somewhere to subsequent posts?
| canucker2016 wrote:
| see https://news.ycombinator.com/item?id=44880979
| neuroelectron wrote:
| I used a document editor in DOS with spellcheck. It was quite
| fast too. I don't remember what it was called but it featured
| formatting characters such as character returns and paragraphs.
| It had good printer support. I think it was called Easy Print and
| it was only a couple of dollars.
| IAmNotACellist wrote:
| Pff, now Microsoft Word probably sends your document to an AI
| every second and asks it to send back a PNG that highlights every
| misspelled word, and it overlays that underneath your text.
| hilbert42 wrote:
| _" A Spellchecker Used to Be a Major Feat of Software
| Engineering"_
|
| It still is. The spell checker on my Android phone is a PIA. It's
| too dumb to correct many typos, there's no way of highlighting
| wrongly used but correct words such a 'fro' and 'for', etc.
| There's no automatic or user defined substitution such as
| correcting 'rhe' with 'the' and yet keep the words highlighted
| until a final revision.
|
| Wordpossessor spellers have no way of tagging certain words that
| one may or may not wish to use depending on context. A classic
| example that's caught me out past the draft and found its way
| into the final document without me noticing it is 'pubic' for
| 'public'. Why doesn't my speller highlight such words in red and
| ask whether I actually meant to use this word?
|
| Moreover, spellers are not all of the same level of accuracy, for
| example Microsoft Word's speller is much better than LibrOffice's
| much to my annoyance as LibreOffice is my main (preferred) WP.
|
| Nor is there a method of collecting misspelled words or typos and
| tagging them as spelling errors or typos for the purpose of
| helping one's spelling or typing. It'd be nice to have a list of
| my misspelled words together with their correct spelling, that
| way I could become a better speller. Also, spellers could be
| integrated with full dictionaries--highlight the word and press
| F1 for its meaning, etc.
|
| There are no dictionary formats that are both universal and
| smart, that is that would allow for easy amalgamation between
| dictionaries and yet could contain user defined words and other
| user metadata which would be distinguished from the general
| corpus of words when crossed or amalgamated. For example, a smart
| dictionary format could contain metadata that would allow a
| dictionary and thesaurus to coexist in the same word list,
| similarly so different dictionaries, technical, medical etc.
|
| All up, spellercheckers are still a damn mess. They need urgent
| attention.
| efitz wrote:
| Having a dictionary is a prerequisite but is only a small part of
| the spell check problem. Plus, plain text word lists are slow to
| parse in the 80s; better going with a Trie or some other exotic
| tree structure that is naturally compressed but O(log(n)) instead
| of O(n) to traverse.
|
| The computer has to figure out whether the word is in the
| dictionary, but it also has to figure out a suggestion for what
| to change it to.
|
| And even after just that, we already have a bug- homonym
| mistakes- homonyms are in the dictionary but they're misspelled
| (that was intentional btw).
|
| How misspelled is another problem. We've had Levenshtein et al
| algorithms for a long time, but how different can you get? A
| really badly misspelled word might not have any good replacement
| candidates within your edit distance limit.
|
| There are also optimizations like frequently mistyped words
| (acn-> can), acronyms, etc.
|
| It was never just about size.
| dhosek wrote:
| The way growth in memory availability changes the scope of
| problems is really quite astonishing. I cut my teeth writing code
| for Apple ][ computers with theoretically up to 128K of RAM, but
| in practice much closer to 40K for most use cases, but it does
| make me much more conscious of memory and CPU usage than younger
| devs who never faced these sorts of constraints.
|
| Thinking of the example given about being able to just load the
| word list into memory, I did something of that ilk when my son's
| fifth grade class read a book which had a concept of dollar
| words: You assign a value to each letter, a=1, b=2, ... z=26, add
| up the value and try to get exactly 100. It was pretty trivial to
| write a program that read the word list and produced the complete
| list of dollar words (although I didn't share that with my son, I
| did give him access to the word list and challenged him to write
| the program himself).
|
| At the moment, I'm building up a Spanish rhyming dictionary by
| using a Spanish word list, reversing the words and sorting the
| reversed list to find the groups of words that are most likely to
| rhyme, which was something that 30 years ago would have been a
| challenge on my desktop computer but now is a brief script that
| I'm just as likely to manage through perl 1-liners and shell
| pipes as not.
| dingaling wrote:
| Pity they can't correct themselves to "spelling checker".
|
| Would you ask someone to "check my spell"? Not unless you're a
| wizard, I suppose.
___________________________________________________________________
(page generated 2025-08-12 23:01 UTC)