Here you have a code for the Google Apps Script which iterates through emails and for each word in the all emails subjects create a new tag.
To make it fully work you need to just add the label for each thread which is processed.
here you fan find this code and additional functions which could help.
To invoke code open new Google Apps Script window

It is possible to create time triggers for invoking functions.
function createTagsFromSubject() {
var threads=GmailApp.getInboxThreads();
for(var i=0;i<threads.length;i++){
var subject=threads[i].getMessages()[0].getSubject()
Logger.log(subject)
createLabels(subject)
}
}
function createLabels(subject)
{
createLabelSafe("AutoContainer");
var words=subject.split(" ");
for(var i=0;i<words.length;i++)
{
// Logger.log(words[i]);
createLabel(words[i])
}
}
function createLabel(word)
{
word=word.replace("/","").replace("|","").replace(":","").replace("\"","").replace("(","").replace(")","")
if (word!=null && word!="")
{
var finalLabel="AutoContainer/"+word;
createLabelSafe(finalLabel)
}
}
function createLabelSafe(word)
{
Logger.log(word);
if (word=="/") return
if (word==" ") return
var label=GmailApp.getUserLabelByName(word)
if (label==null)
{
GmailApp.createLabel(word)
}
}