My task for the next four weeks is to read a bunch of papers on natural language processing programs! This is actually a lot of fun, because most of the papers are quite interesting. Something interesting I learned: I have now reached the stage in my education where I can read a paper called “Efficient Estimation of Word Representations in Vector Space” and be very excited and interested in its contents. Maybe this is why I don’t get invited to parties? Just kidding, the real reason is that I’m an engineering major and don’t have time to have fun. The only issue with this is that it means I will only have 9 weeks to do my actual project, but again, that’s just how research works sometimes and hopefully I’ll have enough time to create something useful for the lab! I don’t say this because I’m altruistic and want to help out the lab, I say this because I want to be a co-author on a paper.
In the realm of NLP, a natural language processor is a program that analyzes human language. For instance, when you use a text editor like Google Docs that predicts how you will complete your sentence, that's natural language processing in action. It typically operates by employing 'word vectors,' which are sets of integers representing words. You can perform arithmetic operations on these word vectors to obtain intriguing outcomes. For example, with well-designed models, if you subtract the vector for 'man' from the vector for 'king' and then add the vector for 'woman,' the resulting vector is remarkably close to the vector for 'queen.' In fact, it's closer than any other word, which is quite cool.
There are primarily two methods employed in NLP: global matrix factorization and local context window methods. Global matrix factorization entails converting an entire body of text into a 2D graph for analysis. In contrast, local context window methods involve sliding a 'window' of around 5 words across a body of text, training the data on the snippets of text within the window. Some approaches, like GloVe, are hybrids, but most tend to align with one of these two categories.
In addition, I’ve got my Raspberry Pi to communicate with every finger in my robotic hand! One issue that I had been facing was being completely unaware as to how servo motors are supposed to work. You see I didn't know that you had to screw the fingers into the motors. I didn't even know that you could put screws inside of the servo motors. I just thought it was weird that the fingers kept popping off. Eventually I figured it out, but it took a while which my housemate who is a biomedical engineer (basically a mechanical engineer with neuroscience on top) found very amusing.