I don't think they're in the similar category at all. Keywords are part of the syntax - if you know what they are in one place, you know what they are in another. (even if they have multiple meanings) Magic numbers are use-specific and you need extra context to understand them. They're part of the code, not the language itself - although the language can help the situation by enforcing naming in some cases.
Well, I think many programming keywords have a form of meaning that you need extra context to understand. How would I intuitively could guess what 'public static void' was, withing having any idea about OO or Java? I mean, 'void' is perhaps OK, but don't tell me you could understand 'swing' with no context, just by reading the word?