The amount of each precursor is parsed based on regular expression, via strict proximityand-pattern-based linking using each precursor match position. Then each subrecipe is featurized as a maximum 41-dimension vector in which each component of this vector is the molar concentration in the resulting solution. However, there existed several publications with recipes for which the amounts parsing returned errors (e.g. precursor typos, or the seed solution recipe entirely missing). These cases are regarded as "hard" cases to be re-extracted by the fine-tuned LLM.