Mathematics, Tabla and the Arts

Spring break is here and I finally have ample time to practice my tabla. In the absence of a regular schedule and a teacher, I rely on online videos to improve my skills. Following my YouTube recommendations, I came across this talk given by Manjul Bhargava to a group of school children in Bangalore. Not many of you may know that Dr. Bhargava is not only the 2014 Fields Medal winner, but he is also an accomplished tabla player who has studied under one of the greatest tabla player of our times – Zakir Hussain.

I thought I should post this on my blog for it is certainly the kind of talk that I would have cherished as a kid attending it. Also, I really liked the way he simplified and explained a reasonably difficult concept to his audience. I am sure it would have made a lot of minds curious about the topic:

If you found this interesting, you can find a nice tutorial on it with the title Mathematics for Poets and Drummers by Dr. Rachel Hall (also has an extended version that I haven’t been through yet). Also if this talk inspired you to pick up tabla, I found this very useful series of videos on a YouTube channel by Tej Singh for beginning and intermediate tabla players.

Clinical Text Analysis Using Interactive Natural Language Processing

Update: Here’s our full paper announcement with source-code release…

I am working on a project to support the use of Natural Language Processing in the clinical domain. Modern NLP systems often make use of machine learning techniques. However, physicians and other clinicians, who are interested in analyzing clinical records, may be unfamiliar with these methods. Our project aims to enable such domain experts make use of Natural Language Processing using a point-and-click interface . It combines novel text-visualizations to help its users make sense of NLP results, revise models and understand changes between revisions. It allows them to make any necessary corrections to computed results, thus forming a feedback loop and helping improve the accuracy of the models.

Here’s the walk-through video of the prototype tool that we have built:

At this point we are redesigning some portions of our tool based on feedback from a formative user study with physicians and clinical researchers. Our next step would be to conduct an empirical evaluation of the tool to test our hypotheses about its design goals.

We will be presenting a demo of our tool at the AMIA Summit on Clinical Research Informatics and also at the ACM IUI Workshop on Visual Text Analytics in March.

References

  1. Gaurav Trivedi. 2015. Clinical Text Analysis Using Interactive Natural Language Processing. In Proceedings of the 20th International Conference on Intelligent User Interfaces Companion (IUI Companion ’15). ACM, New York, NY, USA, 113-116. DOI 10.1145/2732158.2732162 [Presentation] [PDF]
  2. Gaurav Trivedi, Phuong Pham, Wendy Chapman, Rebecca Hwa, Janyce Wiebe, Harry Hochheiser. 2015. An Interactive Tool for Natural Language Processing on Clinical Text. Presented at 4th Workshop on Visual Text Analytics (IUI TextVis 2015), Atlanta. http://vialab.science.uoit.ca/textvis2015/ [PDF]
  3. Gaurav Trivedi, Phuong Pham, Wendy Chapman, Rebecca Hwa, Janyce Wiebe, and Harry Hochheiser. 2015. Bridging the Natural Language Processing Gap: An Interactive Clinical Text Review Tool. Poster presented at the 2015 AMIA Summit on Clinical Research Informatics (CRI 2015). San Francisco. March 2015. [Poster][Abstract]

Learning from multiple annotators

I recently prepared a deck of slides for my machine learning course. In the presentation, I talk about some of the recently proposed methods on learning from multiple annotators. In these methods we do not assume the labels that we get from the annotators to be the ground truth, as we do in traditional machine learning, but try to find “truth” from noisy data.

There are two main directions of work in this area. One focuses on finding the consensus labels first and then do traditional learning, while the other approach is to learn a consensus model directly. In the second approach, we may estimate the consensus labels during the process of building a classifier itself.

Here are the slides for the presentation. I would be happy to receive your comments and suggestions.

Macbook 2011 Problem

issueUpdate: Apple finally owned up to the problem and is offering free repairs starting Feb 20, 2015.

As everyone was starting to queue up for the sale of iPhone 6 today, I was trying to get my macbook working again at the Genius bar. I had been facing problems with a garbled display since the last couple of days which then turned into a critical problem rendering my computer unable to start up. It would show the apple logo and the loading animation but then get stuck with a gray screen.

I am not sure how everyone’s experience at the Apple store has been but I have always had a terrible time explaining any of my problems to the “geniuses” out there. It takes a lot of patience to listen to the condescending way they would talk to you (You seem to be having a problem with the logic board – you know, the brain of the computer”). I don’t know if they are trained to talk like that to anyone not wearing a blue t-shirt or is it their everyday experiences that make them act like that.

Turns out that early 2011 version of the macbooks with ATI graphics cards came with a manufacturing defect that Apple is refusing to own up to. There are several threads on popular sites and on Apple’s discussion forums that talk about it. In fact, there has been a class action lawsuit has also been filed against Apple against this issue. You can also support the change.org petition and sign your name along with 15,000 supporters there:

In case you have been facing the same issue and are looking to buy some more time to get a final backup and move your stuff etc… Moving the graphics driver to a temporary directory helped me with that. Here‘s the StackExchange answer that you could make use of. And if you own a Macbook Pro from 2011 and haven’t faced this problem yet, please do bookmark the link for you would eventually need it anytime you do any graphics intensive work.

 

Edits:

1. Zach Clawson has compiled a list of actions that you could possibly take if you are facing a similar problem – https://people.cam.cornell.edu/~zc227/extras/early2011mbp_graphics.html.

2. I had written this post as a rant after a rather disappointing visit to the Apple Store. I have edited some portions since then for providing a more objective view.

3. Add bug report screenshot:

Bug report I filed The update making it a dupe

 

I have filed a bug report for this issue as well to make sure that it is in their system (which they later updated to be a duplicate of another issue – see picture).

 

Ugly Pic Tweet

Lately I have observed the twitterrati follow a trend of tweeting “text” as images. My timeline was completely filled with such tweets today.

This is even encouraged by twitter as it expands all picture tweets by default.

So to further spread this epidemic (to convince Twitter to do something about it), I re-purposed one of my Interactive System Design class assignments [1] into a Ugly-Pic-Tweeter.

Go ahead, start posting your own ugly pic tweets. May you fill your followers timelines with them!

 

Footnotes

  1. Thanks Julio for teaming up for the original assignment 🙂 ^

Kivy wrap for the summer

As I conclude my summer work on Kivy and Plyer, here’s a post to summarize all the contributions I have made. It would also be useful to start from here when I wish to revisit any of this in future.

To draw a comparison to the current state of Plyer development, this table shows a list of supported facades before the summer started:

Platform Android < 4.0 Android > 4.0 iOS Windows OSX Linux
Accelerometer X X X
Camera (taking picture) X X
GPS X X
Notifications X X X X X
Text to speech X X X X X
Email (open mail client) X

If you have been following the updates, you would have come across my weekly progress posts over the last couple of months. Here’s a list of all such posts since mid-summer for easy access (also check out my mid-summer summary post):

  1. I can haz commit access and other updates
  2. Maintenance work in progress
  3. Plyer on iOS
  4. More, more facades

And in comparison to the table above, this is how the Plyer support looks like as of today after all these changes:

Platform Android < 4.0 Android > 4.0 iOS Windows OSX Linux
Accelerometer X X X X X
Camera (taking picture) X X
GPS X X
Notifications X X X X X
Text to speech X X X X X X
Email (open mail client) X X X X X
Vibrator X
Sms (send messages) X X
Compass X X X
Unique ID (IMEI or SN) X X X X X X
Gyroscope X X X
Battery X X X X X X

Of course there’s more than what meets the eye. There has been a lot of background work that went into writing them. This included understanding the individual platforms APIs and working with other Kivy projects — Pyjnius and Pyobjus that support this work. Some of these changes called for a re-write of old facades in order to follow a consistent approach. Since Plyer is at an early stage of development, I also contributed some maintenance code and writing build scripts.

In the beginning of August, I took a break from facade development for two weeks and made recommendations on making Kivy apps more accessible. I looked into existing projects that could be useful for us and pointed at a possible candidate that we could adapt for our purposes. Here are the two posts summarizing my investigations:

  1. Towards Making Kivy Apps Accessible
  2. Towards Making Kivy Apps Accessible – 2

At this point, I would also include a thank you note to everyone on #kivy and #plyer on freenode for helping me out whenever I got stuck. This was the first time I actively participated in IRC discussions over an extended period. I also tried to return the favor by offering help, when I could, to other new users. Apart from getting a chance to work with the Kivy community from all around the world (with so many timezones!), there were couple of other firsts as well that I experienced while working on the project. Those served as good learning experiences and a motivation for making contributions to open source.

Overall, it was a quite a fun experience contributing to kivy over the summer and I hope to continue doing so every now and then. Now as Kivy is gaining more popularity everyday, I hope to see many more users diving into writing code for it and be a part of this community. Hope these posts could also serve to point them to relevant development opportunities.

More, more facades

This week I added many more facade implementations in Plyer. It was only a few days ago that I had started working on iOS and I am happy that the list has grown quite a bit this week.

I also added Plyer in the kivy-ios tool-chain, i.e. it is now a part of the build-all script and would be available for use in apps packaged with Kivy for iOS.

Apart from that I also did a couple of maintenance fixes to close the holes that I noticed with the checked in code and fix style problems with other contributions.

Although this update was a short one, it did involve a considerable amount of coding effort.

As the summer is coming to a close, I will be spending the next week wrapping up my work, polishing the rough edges in the contributions till now, and of course write the “obvious” bits and pieces that I may have ignored from the documentation till now.