Structured results from free text responses with SMS Insight

April 19, 2010  |  by Andi  |  Business, Features, Homepage, Task Types  |  ,  |  1 Comment

One of the first examples to demonstrate how Mobenzi can be used in a commercial context will be through the launch of a new vertical solution for researchers called SMS Insight.

Traditionally, when it comes to gathering data via SMS, researchers have two rather ungainly options if they wish to collect anything more than the simplest one word response:

  1. Require that respondents structure their feedback in some way (e.g. comma delimited) or;
  2. Solicit answers one SMS at a time, with responses still needing to be confined to a reasonably limited vocabulary.

But what if you could ask a question (or several questions) in an advert, SMS or display and allow respondents to answer in free text – but still be able to analyse the data using quantitative techniques? That’s precisely what SMS Insight offers: the ability to derive structured results from free text responses. Here’s how:

1. Pose the question.
Your message can be communicated via SMS, on TV or radio, in print ads or outdoor displays, on product packaging etc.
e.g. An advert asks: “What would you change about our company? SMS your name with you ideas to 35xxx”
2. Solicit feedback in plain text.
Respondents simply reply via SMS – in their own words – with no fixed formats, keywords or codes required.
e.g. “I wish your staff would be more friendly. Niki”
3. Use human intelligence to crunch the responses.
Our vast panel of mobile workers use their innate human ability to structure, classify and quantify each response by answering simple questions based on your exact analysis requirements.
e.g. “Is the response about our products, prices or service?”; “What is the respondent’s name and if possible, their gender?”
4. Integrate and act on the results.
What was once raw, unusable SMS data is transformed into rich, structured information that can be used to inform business strategy, evaluate performance and identify opportunities.
e.g. “14% Products, 12% Price, 74% Service”

1. Pose the question

Your message can be communicated via SMS, on TV or radio, in print ads or outdoor displays, on product packaging etc.

e.g. An advert asks: “What would you change about our company? SMS your name with your ideas to 35xxx”

2. Solicit feedback in plain text

Respondents simply reply via SMS – in their own words – with no fixed formats, keywords or codes required.

e.g. “I wish your staff would be more friendly. Niki”

3. Use human intelligence to crunch the responses

Our panel of mobile workers use their innate human ability to structure, classify and quantify each response by answering simple questions based on your exact analysis requirements.

e.g. “Is the response about our products, prices or service?”; “What is the respondent’s name and if possible, their gender?”

4. Integrate and act on the results

What was once raw, unusable SMS data is transformed into rich, structured information that can be used to inform business strategy, evaluate performance and identify opportunities.

e.g. “14% Products, 12% Price, 74% Service”

Interested in conducting research using SMS Insight? Please get in touch with us to discuss your requirements.

Preventing abuse of the Mobenzi platform

December 31, 2009  |  by Andi  |  Business, Task Types  |  , , , ,  |  No Comments

I came across an interesting article on ZDNet entitled “Inside India’s CAPTCHA solving economy” which discusses how Indian “data processing” companies are being used to solve CAPTCHAs, presumably to circumnavigate security measures put in place by companies to prevent spammers from registering bogus accounts for the purposes of spamming and other unsavoury activities.

Firstly, for those unfamiliar with what a CAPTCHA is and the purpose of it, here’s a definition from the official CAPTCHA site:

A CAPTCHA is a program that protects websites against bots by generating and grading tests that humans can pass but current computer programs cannot. For example, humans can read distorted text as the one shown below, but current computer programs can’t:

By using real people to solve CAPTCHAs – at a very low price – spammers are able to overcome the useful function of the CAPTCHA in an economically viable fashion.

Mobenzi could be used to solve CAPTCHAs as the Mobenzi task would simply need to prompt the agent to review the image (the CAPTCHA) and respond with the actual text (thereby solving the CAPTCHA).

The example of CAPTHA solving opens the broader question: What level of monitoring and/or censorship (if any) should be imposed on those submitting tasks for processing by the Mobenzi platform?

Naturally, when Mobenzi is commercially released we will stipulate terms of use which will outline the sorts of activities which are prohibited. But is this enough? This particular example introduces some interesting issues worthy of consideration. Spamming is obviously prohibited by legislation in most countries and solving a large number of CAPTCHAs using a human labour force is rather likely to be used for this purpose, but is the process of using real people to solve CAPTCHAs automatically illegal?

Following this line of thinking, what other potentially malicious activities could be supported by the Mobenzi service and how should we guard against this? It may be infeasible, and possibly unethical to screen tasks submitted by commercial users.

One possible solution may be to use the CAPTCHA solving ability of the Mobenzi platform to prevent spammers from doing so. A small number of CAPTCHAs from major sites typically attacked by spammers could be processed by us and compared with the images requested to be processed by Mobenzi users. If a statistical match is discovered, the offending user could be sanctioned immediately.

It’s early days yet – but these types of concerns will be important should the Mobenzi service prove successful to ensure that it is used for legitimate purposes only.

Twitter sentiment analysis using mobile phones in South Africa

November 29, 2009  |  by Mark  |  Features, Pilot Project, Task Types  |  , , , ,  |  No Comments

Yesterday I aggregated some data from Twitter that referenced KFC, Nandos, Debonairs or McDonalds and sat with the Mobenzi pilot participants as we answered two simple questions about each tweet.

  1. Was the message positive, negative or neutral in reference to the brand?
  2. If it was negative, was it due to customer service, taste, health or some other reason?

The work was entertaining for the participants, they completed tasks efficiently and the results seem to be very accurate.

About sentiment analysis

With the growing use of online services like Twitter, blogs and forums, there is a vast amount of publicly available information generated by everyday people about millions of different topics (companies, products, movies etc.). Knowing the sentiment of messages (e.g. whether they are positive or negative) can be extremely valuable to the people or organisations involved, especially when monitoring trends over time.

Sentiment analysis or opinion mining refers to a broad area of natural language processing, computational linguistics and text mining. Generally speaking, it aims to determine the attitude of a speaker or a writer with respect to some topic.

The rise of social media such as blogs and social networks has fuelled interest in sentiment analysis. With the proliferation of reviews, ratings, recommendations and other forms of online expression, online opinion has turned into a kind of virtual currency for businesses looking to market their products, identify new opportunities and manage their reputations.

Find out more about sentiment analysis on Wikipedia

This kind of work is well suited to Mobenzi agents

Sentiment analysis seemed like a very appropriate type of task for processing by Mobenzi agents on their phones as tweets are very short (only 140 characters). We also felt that there would be a demand for an efficient human sentiment rating service since computer algorithms face many difficulties in trying to understand the tone of human messages.

Twitter includes a lot of slang, humour, Textese and other informal language that makes automated analysis especially difficult. In a multi-cultural country like South Africa, many tweets also combine words from a variety of local languages which would make analysis very challenging to a computer.

Example Tweets that reference take-out brands

These were some of the messages included in our sample set of data from Twitter.

"Damn you debonairs" in this context is not negative.

"Damn you debonairs" in this context is meant in jest and is not negative.


The sentiment is not obvious in this message.

The sentiment is not obvious in this message.


The tone in this tweet changes totally at the end of the message.

The tone in this tweet changes totally at the end of the message.


The results were ‘positive’

The focus of this study was to assess issues relating to the completion of tasks. We only looked at a small sample of tweets, and could have been a lot more scientific in our approach, so the sentiment results themselves should not be taken too seriously.

There were six participants (including myself) and we each stepped through the analysis of Twitter messages that mentioned KFC, Nandos, Debonairs or McDonalds. Each task took only a few seconds to complete and the team found the work interesting and engaging. None of the participants (except myself) use Twitter themselves, but they were all very familiar with the concept and frequently use Mxit which is similar in some aspects.

One of the measurements we look at to gauge the accuracy of results, is the agreement between different participants for the same task. All six participants rated the sentiment of each tweet, so we were able to look at where our answers differed. It was very encouraging to see that most answers had 100% agreement (Especially if we exclude where participants stated that they were unsure of the sentiment). There are only a few cases where we disagreed on whether a particular tweet was positive or negative. In these cases, the majority was correct and in some cases the disagreement actually helped to balance the rating where the sentiment was ambiguous.

The summary across all brands came out at 48% positive, 35% negative and 17% neutral or unclear. Of the negative tweets, 29% were service related, 16% to do with taste, 9% health related and the rest for other reasons.

These charts show the summary of the sentiment analysis for all four brands.

These charts show the summary of the sentiment analysis for all four brands.

In the following results, we excluded tweets that were either neutral or unclear with regard to sentiment. Out of the four brands, Nandos was clearly the favourite with 80% of tweets being rated as positive.

Breakdown of Positive versus Negative sentiment for each brand

Breakdown of Positive versus Negative sentiment for each brand

To have a look at what people are saying right now about these brands, simply go to www.twitter.com and search for #Nandos, Debonairs, #KFC or #Mcdonalds.

Interestingly, a quick analysis of these keywords on Tweetsentiments.com (A service that attempts to automate the analysis of tweets) returns fairly similar results in terms of rank, but with some significant variations in the actual sentiment rating. Nandos: 68% positive, Debonairs 59% positive, Mcdonalds 56% positive and KFC 52% positive. The ranking of the brands is the same as our result, except that Mcdonalds moved in front of KFC with the automated analysis. This may have to do with the fact that we only looked at tweets in English and other South African dialects. Perhaps English speaking people are the least positive about Mcdonalds? Looking at some of the tweets in their data sets, I would trust our result over the automated one. Try the service out yourself at  http://tweetsentiments.com/analyze


Yesterday’s Twitter sentiment analysis pilot was a huge success and we are excited to continue testing next week. I am confident that we will take this idea further in the coming months.


It is no coincidence that we ended up having Nandos and Debonairs for lunch.

It is no coincidence that we ended up having Nandos and Debonairs for lunch.

Initial thoughts on mobile crowdsourced translation

November 26, 2009  |  by Andi  |  Pilot Project, Task Types  |  ,  |  No Comments

The possibility of having Mobenzi agents convert English content into local languages (and vice versa) was one which really excited us.

As with all Mobenzi tasks, we split up a large, complex challenge into small, discrete tasks which can be performed in a few minutes.

Obviously, there are limitless reasons people require translation services. One of our own immediate applications for translation is for surveys conducted using our Mobile Researcher platform. We frequently have clients embarking on multilingual studies who need questions to be available in several local languages (in South Africa alone we have 11 official languages); and need qualitative responses given in other languages available in English for analysis. Normally, surveys are designed, reviewed, debated and eventually finalised in English before they are sent for translation and back-translation. Our objective is to crowdsource this activity instead – making near real-time translations available to survey designers in Mobile Researcher at the click of a button.

In our first trial we took a client’s survey questions which we already had in English and professionally translated Zulu and converted them into two sets of translation tasks: from English to Zulu and vice versa.

As most people don’t speak Zulu (and mine isn’t exactly fluent either), I’ll use a Zulu-to-English example taken from the actual exercise:

Original English (not visible to Mobenzi agent): What is the household’s average monthly income?
Professionally Translated Zulu (shown to Mobenzi agent): Ungayilinganisela kumalini isiyonke imali engenayo ngenyanga?
Mobenzi Agent Translation (from Zulu to English): How much is the monthly income for the household?

Now, clearly the ideal would be for the original phrase to match the version coming back from the Mobenzi agent (and this did happen frequently) but in most cases, it does prove that, for the most part, crowdsourced translation works to the extent that the concept is sufficiently conveyed.

Some of the key challenges and limitations of crowdsourced translation tasks which our agents helped us identify were:

  • Lack of context. Just as computer translation algorithms struggle without context – so do people. We noticed that, on several occasions, what agents had responded with made sense if read in isolation, but not within the context of the broader scope. It has to be said that this problem is exacerbated by our approach of segmenting text for translation.
  • Language formality. The mobile communication culture is almost exclusively an informal one. Some agents seemed to struggle to snap out of this mode and became frustrated having to use formal language.
  • Input mode. Although an obvious observation, translation requires a lot more typing than other types of tasks. Somewhat foolishly, we didn’t enable predictive text on during the first day of our translation trial which didn’t help matters.
  • Multiple alternatives. Just as there are a number of ways to phrase a question in English, translation is not a one-to-one mapping. This is not a problem inherent to mobile crowdsourced translation however – two professional translators may also come up with different ways of phrasing something based on experience and personal preference.

An interesting observation is that the value in using crowdsourced translation is not only that one might not necessarily need to use traditional translation services but more that crowdsourced translation can give insight into how “normal” people understand a question in their mother tongue.

Another example:

Original English (not visible to Mobenzi agent): What is the household’s average monthly income?
Professionally Translated Zulu (shown to Mobenzi agent): Ungayilinganisela kumalini isiyonke imali engenayo ngenyanga?
Mobenzi Agent Translation (from Zulu to English): Estimate how much money do you earn a month?

In this case, the agent has incorrectly translated the question back into English by missing that the question wants to know the cumulative income of the household – not just that of the respondent. Now, this might be a mistake by the agent – but a mistake is not, in itself valueless. In this case, it can help a survey designer identify where confusion or areas of potential misunderstanding might occur in the real study. The response from the agent can guide the designer, in collaboration with their translator (professional or otherwise) in refining the question to ensure optimal wording which will make sense to the actual respondents.

We were rather pleased by the quality of translation provided by agents without any kind of moderation, statistical or other methods being applied but clearly there is still a lot of room for improvement in this area. We’ll continue working on some ideas before our main pilot takes place next year.

Using mobile phones to support people doing Human Character Recognition (HCR)

November 24, 2009  |  by Mark  |  Pilot Project, Task Types  |   |  No Comments
I thought it would be pretty interesting to handwrite a blog article and get the team of pilot participants to type it up on their phones.

Like many other tech enthusiasts, I am a big fan of Moleskine notebooks & diaries. I decided to write each sentence of this article on a new page of my pocket size, yellow note book. For the sake of saving some very small trees, I will try to keep this article short. I think it will be very interesting to see how long it takes to type up each page. We will calculate the average time taken, per word & per character, to type (capture) this content. Each participant will type up each handwritten page so that we have a bit more data to assess time and quality.

Each sentence was hand-written on a separate page.

Each sentence was hand-written on a separate page.

Results

The above text was typed up into a form on a mobile phone by three of the participants. There were a few minor errors (double spaces and some miss-typed characters) but the quality was decent. At least one of the three participants got each of the sentences correct without errors.

There were 8 sentences including the title with a total of 145 words or 777 characters (with spaces). It took participants just over 12 minutes on average to complete the 8 tasks. The average speed for the tasks was therefore between 12 and 13 words per minute (WPM).

One study of average computer users, the average rate for transcription was 33 words per minute, and only 19 words per minute for composition. In the same study, when the group was divided into “fast”, “moderate” and “slow” groups, the average speeds were 40 wpm, 35 wpm, and 23 wpm respectively. Wikipedia

This result (in terms of typing speed) is not very impressive (almost half the speed of a ’slow’ typist) but we have to consider a few points.

  • Participants had to capture META data about the task (the task number) and read an instruction about the task for each sentence. These steps could be avoided.
  • The form used to capture the text did not make use of predictive text. Predictive text could definitely improve typing speed.
  • The convenience of being able to type on your phone while you are travelling on public transport, walking, lying in bed etc. must definitely be taken into account in comparing typing on a personal computer to typing on a mobile phone.
  • The types of HCR tasks we have been discussing do not involve typing up long documents, but rather short strings of text like those used by Recaptcha.

In summary, the accuracy was pretty good but I had hoped that the speed would have been better. We will have to conduct some further testing in this regard if we seriously consider targeting Human Character Recognition (HCR) as a business service to offer through Mobenzi. This is just one of many applications.

Improving the usability of SMS messaging to computers

November 23, 2009  |  by Mark  |  Features, Task Types  |  , , ,  |  2 comments
Mobenzi aims to significantly increase the usability of SMS services by allowing people to use natural language in their messages without worrying about syntax, format or structure.

Many organisations receive thousands of inbound SMS messages

SMS text messaging is the most widely used data application on the planet, with 2.4 billion active users (Wikipedia). A growing number of organisations are using text messages to communicate with mobile phone users. Although most communications involve distributing information to end users, many organisations receive and process thousands of text messages from end users.

Once an SMS is received by an organisation, its content needs to be analysed and understood to enable reporting or features such as sending a relevant reply SMS. Dealing with a large volume of inbound SMS messages requires automated processing (efficient sorting of messages) to save time and money. Processing these SMS messages manually is often not feasible.

It is difficult for computers to understand messages written by people

Using computer programs to automatically sort sms messages involves either extremely advanced natural language processing (NLP) or end users adopting a specified syntax in their messages (e.g. Sms your NAME, followed by your AGE and then the KEYWORD…) so that the messages can be more easily understood by a computer.

Natural language processing is extremely complex

Natural language processing (NLP) is a field of computer science and linguistics concerned with the interactions between computers and human (natural) languages. Natural language understanding systems convert samples of human language into more formal representations such as parse trees or first-order logic structures that are easier for computer programs to manipulate. (Wikipedia )

Although there are many services like Google SMS and WolframAlpha that make use of NLP concepts, I don’t believe that we will see a generic natural language understanding solution that we can use for SMS messages in the near future, especially one that would cater for the many languages in developing countries. Such systems would still require extensive customisation in order for a computer to understand the meaning of an SMS within a particular context.

Structured syntax is not easy to use

People have invested significantly in making operating systems, computer programs, websites and hardware easy and intuitive to use. For many people however, plain text sms messages are the only interface they will have to online services such as banking, classifieds and social networks for the next few years.

The process of interfacing to a software system via sms is often difficult. The common approach of using structured syntax messages (requiring users to adopt a set of words and rules in their messages) is comparable to entering instructions at the DOS command prompt like many of us used to do 20 years ago. Although the command line as an interface is having somewhat of a comeback (”The Web Browser Address Bar is the New Command Line“),  it is usually only expert users who really make use of most commands.

Many people make use of structured syntax commands with applications like Twitter (”RT” or “@username” ect.), Google (”1USD in ZAR“)  and other services like IRC. But with all of these applications, understanding the structured syntax is not required for new users or the majority of interactions. With many sms systems however, users are required to understand the syntax right from their first interaction. I think it is quite unnatural, unintuitive and difficult for many people to use fixed syntax commands, especially via SMS which is predominantly used for communication between people.

Organisations also need to communicate the rules and language of the system to mobile phone users so that they understand what words they can use and how to structure their messages. It is very difficult to do this via SMS due to limitations in the number of characters in an SMS and the cost of each message, especially if a sequence of messages is required.

Where there are only a few commands or keywords that need to be learned, using structured syntax can work very well. But when SMS systems start offering more interactive services, they will become much more difficult to design and to use.

Perhaps the biggest challenge with any computer based processing of SMS messages is that users often expect that a person will read and understand their message and therefore use informal language (Textese), ask questions or otherwise make spelling and grammatical errors.

People can help computers understand SMS messages

Certain processing tasks, such as understanding an SMS as described above, are still performed better and faster by humans than by computers. But manually processing inconsistently large volumes of such tasks is not feasible for internal staff at many organisations.

This problem inspired us to create Mobenzi, a service that allows organisations to outsource these kinds of tasks to a distributed team of workers who could share the load of many organisations’ processing requirements.

Mobenzi is a software service that empowers people to be rewarded for completing simple tasks on their mobile phones.

We are currently piloting the system and are confident that we will be able to take some live projects on within the next few months. Although there are several business applications we are addressing with Mobenzi, sorting of SMS data is our initial focus.

The concept of human intelligence tasks (simple tasks that computers find difficult) was first popularised by Amazon with their Mechanical Turk web service. We also recently came across Textonic that is attempting to leverage Mechanical Turk for tagging SMS messages in a similar way to Mobenzi. We hope that Mobenzi will be very well suited to processing SMS data since the processing itself can be done on a mobile phone by a Mobenzi agent who speaks the same language as those people sending the SMS messages. We plan on making it very easy to set up new teams of Mobenzi agents in new locations so that the agents will understand the local languages and colloquial terms that are included in the data that needs to be processed.

Overview diagram of how Mobenzi works.

Mobenzi will allow computer programs that receive SMS messages to seamlessly interface to real people who can interpret free text messages and return information such as categories, tags, and other structured data as part of an automated process. Once an SMS is received by an organisation, the message can be submitted to Mobenzi for processing (via an API call for example). A Mobenzi agent would then be sent the original free text SMS with an associated form (see example below) to extract and structure the relevant information contained in the message – obvious to a human observer but inaccessible to computer systems.

This task illustrates how a simple natural language sms can be processed by a Mobenzi agent to extract structured data from the message.

This task illustrates how a simple natural language sms can be processed by a Mobenzi agent to extract structured data from the message.

Find out more about how Mobenzi works.

As part of the current pilot phase, we are assessing the cost and quality issues involved in the completion of tasks. We hope to make the processing service very affordable, especially considering that the requesting system can save costs in the long run through learning from the results generated by Mobenzi.

We hope that Mobenzi will help make many more online services available to people whose only interface to the internet is via SMS.

If you have any specific requirements you’d like to explore using Mobenzi for, please contact us.