I am learning deep learning, and as a first exercise to myself I am trying to build a system that learns a very simple task - capitalize the first letter of each word.  As a first step, I am tried to create character embeddings - a vector for each character. I am using the following code:import gensimmodel = gensim.models.Word2Vec(sentences)where sentences is a list of lists of chars which I took from this long Wikipedia page. For example, sentences[101] is:[' ', ' ', ' ', ' ', 'S', 'p', 'e', 'a', 'k', 'i', 'n', 'g', ' ', 'a', 't', ' ', 't', 'h', 'e', ' ', 'c', 'o', 'n', 'c', 'l', 'u', 's', 'i', 'o', 'n', ' ', 'o', 'f', ' ', 'a', ' ', 'm', 'i', 's', 's', 'i', 'l', 'e', ' ', 'e', 'x', 'e', 'r', 'c', 'i', 's', 'e', ... ]To test the model, I did:model.most_similar(positive=['A', 'b'], negative=['a'], topn=3)I hoped to get 'B' at the top, since 'A'-'a'+'b'='B', but I got:[('D', 0.5388374328613281), ('N', 0.5219535827636719), ('V', 0.5081528425216675)](also, my capitalization application did not work so well, but this is probably because of the embeddings).What should I do to get embeddings that identify capitalization?
Learning character embeddings with GenSim
word2vec;word embeddings;gensim