Classifying job titles I have a dataset of about 10000 unlabeled job titles (mostly very short titles) such as head of mobile or lead iOS developer.

I would like to perform classification of those job titles in two different ways : 

The 1st classification is sorting job titles according to the type of job it represents (i.e. marketing, IT, healthcare, legal...)

The second classification would be about the level of seniority of a specific job (i.e. executive, manager, associate, trainee...)

I have tried an approach based on Word2Vec (vectors were taken from the Google Word2Vec set)  :


I cleaned and stemmed job titles
I created a vector representing the job title as the average vector of the words that compose it 
I created a list of vectors representing the target values (executive could be the average vector of +executive, +chief, -assistant for example)
Find the least cosine distance between the job title vector and the target vectors.


While this approach gets decent result (about 70-80% accuracy) it is not enough for the task I'm planning to do.

So I was wondering if a better approach could be used (except labeling the data by hand and using that to train some algorithm)
I'm surprised you got 80% accuracy and think you will have to do some labeling if you want to improve. Even people have problems with this! For example:


Sales Executive - executive can be misleading, this might have been called "Salesman" 50 years ago
VP at a technology company vs VP at a bank. In the latter case, VP is more of an honorific and might not include any actual management.


If you don't want to mass label data, I would try to assign weights to common words that are featured in titles. For example, replace senior/junior with +1 and -1 in a "seniority" value. If you do that for the top 100 words, I bet it will help over a totally unsupervised approach.