We construct a parametrization of deep–inelastic structure functions which retains information on experimental errors and correlations, and which does not introduce any theoretical bias while interpolating between existing data points. We generate a Monte Carlo sample of pseudo–data configurations and we train an ensemble of neural networks on them. This effectively provides us with a probability measure in the space of structure functions, within the whole kinematic region where data are available. This measure can then be used to determine the value of the structure function, its error, point–to–point correlations and generally the value and uncertainty of any function of the structure function itself. We apply this technique to the determination of the structure function F2 of the proton and deuteron, and a precision determination of the isotriplet combination F2[p-d]. We discuss in detail these results, check their stability and accuracy, and make them available in various formats for applications.