Well, I've had a look at the data file from there - word-0.99.3.mysql - and you need to extend your load data infile statement with a FIELDS clause as the defaults do NOT apply to this data. It is TAB-delimited, yes, but the data strings are not enclosed by anything so at a minimum you need to include the OPTIONALLY ENCLOSED BY '' statement
Also, the line-terminator is going to depend on your platform: UNIX = \n hex 0A but Wins DOS format = \r\n hex 0D 0A. This file is not in DOS format as downloaded but that can change as soon as you open it in a text editor.
You can also specify IGNORE to overcome the duplicate key error; get at least some of the data into the table and then see what is causing the problem.
As to using DECIMAL - yes, it is OK but not efficient. Your decimal column is actually going to be stored as a string and take up 7 bytes, while an int would only take up 4 bytes. Size is important with indexes as they need to be loaded into memory to be used - smaller column size means less I/O and faster processing. Also, and this is most important, integer indexes are far faster than other data types to process. That is because they are an absolute binary number and can be compared in one operation at machine code level, while a sting will need multiple comparisons byte by byte. Now, I'm sure that mysql will do a silent type conversion from stored-string to binary-interger for a decimal index before it processes it, but that still requires processing cycles. So, integer indexes win every time.