Typeface recommendation project using deep learning with dataset taken from corporate branding guides. Won the first prize on the Tsinghua's brain inspired competition
Each typography has its own meaning. Therefore, when a company wants to design its own fonts, they will have to use the font that can stand for their company culture. Bearing this in mind, we explore the relationship between a company's culture and the typography they use.
We use online scraping to scrape the mission and vision statement of each company, and the font they use as their official font from their official website, as well as LinkedIn.
During scraping, one interesting finding is that companies related to technology prefer sans-serif for their futuristic feeling while universities prefer serif (like Garamond) for their seriousness. if you are interested in the intuition behind click here
Here we collected a dataset of the 9 most common fonts used by a big company. With a training set of total 2300. we wish to predict what font is suitable for the company based on their vision and mission statement.
We used CNN architecture for text classification published by Yoon Kim as a base architecture with a bit of moderation on the architecture. Getting a prediction of 45.5%. We are confident that there are more things to be explored between a company's culture and font!
The baseline for this project using the simple SVM gives a result of about 22%.
You will need 'GoogleNews-vectors-negative300.bin.gz' or GloVe for the word embeddings. We did not include it in this repository.
- download the word vectors, we used 300d GLoVe vector.
- install packages using requirements.
- run
python model/classify.py
to test the accuracy
Result: It trains about 4 mins on a normal PC with only CPU. You should get an accuracy of around 46%.
We can turn each font to its corresponding vector, using a completely new idea -- Font2vec from "fontjoy" for thousands of Google fonts. And then after getting your predicted result in each portion of the font, you can see what the composed font is by adding all of your font vector vectors together. This enables you to get predictions not limited to 9 fonts but to all 900 google fonts. Check here for a quick idea of font2vec
To do this run python inference/GUI.py
the final prediction looks something like this:
Credits to TensorFlow implementation of Text Classifier