a ok, adesso e' molto piu' chiara la questione;
quindi in sintesi vuoi associare ad ogni istruzione una determinata "funzione";
allora se hai qualche nozione di NLP la cosa alla fine risulterebbe abbastanza semplice; ovvio e' che puoi optare per diverse soluzioni; questo dipende dai dati che hai;
se ad esempio hai un numero definito di istruzioni che conosci a priori, ,mettiamo un insieme di n istr:
Close the door --> A
Check that the door is closed -->B
Open the window --> C
Check that the window is open --> D
Close the window --> E
se ogni istruzione e' unica'(anche se presenta errori di ortografia o battitura), ovvero se NON sono presenti istruzioni con sintassi e parole differenti che chiamano una stessa funzione, la cosa e' ancora piu immediata.
tipo puoi usare una library come "textdistance", "strsimpy" (googla) etc..
ti crei una lista con le relative distanze, ad es. [levenshtein.distance(target, istr) for istr in your_data] ti estrai l'indice della minore -- lst.index(min(lst))-- e poi ti vai recuperare la relativa istruzione e la funzioen associata;
le distanze che solitamente fungono meglio con testi simili, ma con piccoli errori ortografici, o parole con posiz non troppo diversa., etc..sono la jaccard, levenshtein ma anche la cosine; cmq fai dei tests;(potresti anche definire un piccolo ensemble delle varie misurazioni e poi andare a' 'maggioranza' fra le varie distanze...
diciamo che questo e' il metodo migliore se effettivamente hai a che fare con dati di questo genere; cioe' alla fine non scomodi regex, non devi fare alcun preprocessing del testo (tokenizing, lemmatizing, lower text, stopwords, ecc) in quanto dai il testo direttamente in pasto alla funzione;
in caso anche librerie come "pyspellchecker" ti potrebbero tornare utili per un semplice preprocessing;
se invece le istruzioni cominciano ad avere parole e sintassi molto differenti ma chiaramente mantengono stessa semantica allora devi cominciare a fare del preprocessing e lavorare con librerie piu' avanzate come "Doc2Vec", "infersent" che invece lavorano con matrici di 'word embeddings', sia gia istruiti (vedi Glove, word2vec, ...) che da istruire direttamente sui tuoi dati; (questo da fare soprattutto se hai a che fare con testi molto tecnici); nel qual caso puoi usare librerie come "Gensim";
alla fine ultima spiaggia , ma non credo sia il tuo caso, puoi andare di "RNN"(recurrent neural network ma non te la cavi solo con Python, doversti maneggiare frameworks come keras, tensorflow o pytorch..) o al limite di "transformers", ma da come ho intuito non sembra proprio il tuo caso, che cmq rimane una task abbastanza semplice;
comincia a visionare quello che ti ho segnalato e butta giu' qualcosa, ed in caso, se hai problemi, ti do una mano