Thursday, September 8, 2016

Initial Thoughts

I've researched several cross-platform app development frameworks. We want a platform that's free to use, powerful, and runs on iOS, Android, and Windows Phones. Candidates include PhoneGap, Xamarin, CodenameOne, and Qt. It would be difficult to maintain one code-base per OS, but this is also an option.

Qt seems like the best framework for our purposes. With it we can write efficient and multi-platform C++ code. Not only that, but it comes with a JSON/JavaScript-like domain-specific-language called QML for describing graphics layouts and most application logic. QML doesn't support networking so we will have to write the TCP or HTTP code using C++, but QML works well with C++ components.


Qt gives us the benefits of developing with PhoneGap, an easy-to-use language with WYSIWYG editor, and the benefits of writing the app using a compiled language as we would use CodenameOne and Xamarin.

I learned all of this from its very readable documentation --- another feature!

Qt employs asynchronous functions and a related concept called "signals" for handling many inputs, like clicks or network requests. When used right, these improve the application's efficiency; but we'll have to learn about this new control style.


--Hugo

Wednesday, March 4, 2015

Quick Update

The meetings have been productive. Much of the dataset is complete: we have collected reviews from over 100 applications from top 100 lists on the Google Play store. Theresa and I have been experimenting with different methods of sentiment analysis including Natural Language Processing (our initial focus) and support vector machines (a side experiment).

Dr. Zheng has pointed us in a more focused direction. We're going to test the sentiment analysis on all of the apps that the developers we collected have created. After giving each app a sentiment score, we will create an aggregate score for the developer. This aggregate score will be compared to the overall developer score. In particular, we are looking at developers that have earned the "Top Developer" badge as more interesting examples.

We hope to test this method on the dataset this week!

NMT CREU Team

Tapia Conference Update

I recently attended ACM Richard Tapia Celebration of Diversity in Computing. The conference was very enlightening and enjoyable. It was very refreshing to get to discuss topics in Computer Science with individuals in fellow minority groups.

Many of the talks were non-technical but fascinating. One talk in particular was on using Twitter as a medium to empower minority women in STEM.
Khalia Braswell (pictured right) led a "Twitter Chat" during the workshop. Individuals participating in the workshop (or anyone with the correct hashtag) could participate in a Q/A session via Twitter. Individuals could share their success stories with other members of the chat. Some example questions were:
Q1: At what moment did you feel most Empowered to pursue/remain in STEM?! Q2: What helped you overcome the most challenging moment you had in STEM?
The workshop shared some great ideas about using social media to connect numerous small groups that are all dedicated to the same cause. Thank you Khalia for the experience!

There were many interesting companies fully or partially attending the conference. Microsoft showed off one of its products: Microsoft Power BI. The demonstration provided some amazing visualizations. The presentation made me realize just how far we have come with data visualization.

website_imgs_socialvpn-crop
SocialVPN was a project spearheaded by the workshop speaker
The second day of the conference provided more technical workshops. I attended an interesting instructional workshop on using the internet privately in the age of NSA Spying. The talk was very informative and I learned a lot about tools that I did not know existed such as SocialVPN

I met some interesting people throughout the conference. I enjoyed discussing classes with other students attending the conference; it really gave me a way to gauge my education at New Mexico Tech as compared to much larger schools.

Perhaps the most academically fulfilling moment was during a conversation I had with a student attending Cornell about class size. The student told me that when she started, there were hundreds of individuals in her classes. She thought that this number would get smaller as she went on with her degree. Much to her surprise, the class sizes did not shrink. This made me really appreciate the small class sizes that I have experienced at New Mexico Tech. In my classes, most of the professors know your name and the class sizes are often below 20 people. When I told the student this, she was shocked; she told me I was very fortunate to be able to learn in such a close-knit environment. I am now more appreciative of the quality of education that I am getting at New Mexico Tech.

Overall, the conference was a very fulfilling experience. I talked with a lot of interesting individuals and shared conversation on interesting topics in computer science. In addition, I learned just how useful resources such as Twitter can be in communication and networking. Given the chance, I would like to attend the conference again next year.

Randy Van Why
NMT CREU Team

Thursday, December 18, 2014

Progress

Over the past few weeks, I have been looking into sentiment analysis techniques, and implemented some of these in Python. I used the NLTK library for the SentiWordNet data set, sentence tokenization, and part of speech tagging. The various algorithms were tested using a set of comments from the android app store, and the output was compared with the user's actual rating. Using sentiment scores of only verbs and adverbs seemed to have the best performance on this data set.

A technique to account for negation described in "Handbook of Natural Language Processing" was implemented (http://www.cs.uic.edu/~liub/FBS/NLP-handbook-sentiment-analysis.pdf). Whenever a negative adverb such as 'not' appears, the sentiment analysis scores of the siblings in the parse tree are multiplied by -1. However, this did not seem to have much effect on the performance of the sentiment analyzer.

I will continue to look into sentiment analysis techniques in the coming weeks, but we have a good start so far.

-Theresa

Friday, December 5, 2014

Sentiment Analysis

Implementation of sentiment analysis of app comments has begun.  We are using Python's NLTK library for tasks such as tokenization and part of speech tagging.  SentiWordNet is used as a data set for the sentiment classification of various English words.  Various algorithms that assign a positive or negative sentiment analysis score to a comment are being looked at, and some simple algorithms have been implemented.  To test the suitability of various algorithms, we are comparing the 1-5 star rating associated with the comment to the output of the sentiment analyzer.

Wednesday, November 19, 2014

Python NLTK

Python NLTK looks promising as a possible toolkit for the project. The homepage can be found here:

http://www.nltk.org/

The students will begin testing the toolkit to see if it is powerful enough for the project at hand.

Monday, November 10, 2014

Update November 10

After our last meeting, the entire team agreed on a direction for the metric. The students agreed that the most interesting approach would be to go the way of natural language processing for analyzing the reviews and descriptions of applications in the Google Play store.

At this step, the team is tasked with finding the tools to perform the natural language processing as well as writing a script to crawl the relevant websites and gather data for processing. We will meet again in the next week or so to discuss our progress on these tasks.