Hi! Just one correction I want to mak. In wordpress "tags"are assigned to "posts" not the other way around.
Now on the brief.
Your last sentence kind of contradicts the examples, but I take that is from English not being your first language"(apart from the obvious that ONE word cannot have multiple words, you probably meant "ONE tag", which obvious could comprise of multiple words). What you probably meant to say, in overall, is that "if the tag has multiple words, these does not necessarily immediately follow one after the other, as expression, although that would be a match too based on your examples you wrote, as found in the post title, but can be spaced by other words, though they probably need to be in the same order I guess. You did not touch on that last one specifically.
And obviously, if any of these tag propositions already exist on the site the existing one should be assigned to the post, and if it does not exit already it should be added and then assigned.
And as you actually want the tool to perform this yourself, not just someone to do it one time for you, which means it obviously will be a plugin, what means of providing the "tags suggestions list" to the code you'd want this to includext ar - a page with a text erea where to drop the delimited list and a button, or a csv/text file upload and a button, or maybe both?
Regards,
Dobri