tokens: In Natural Language Processing ( NLP ) research as in other areas , this requires three crucial components : ( a ) published methods described in sufficient detail ( b ) a working code base and ( c ) open dataset(s ) to permit training , testing and validation to be reproduced and generalised .