Background

The complexity and depth of our language is a unique and defining feature of humans. Language permeates our daily lives as we use it to convey information from simple messages to opinions and complex arguments. In addition, it has a number of functions that transcend the transmission of information, with a range of social implications. Sociolinguistic studies have shown how varieties of a language can be strongly associated with established social or cultural groups [15]. In general, these studies have tended to concentrate on small, distinct and relatively stable communities such as gangs [6, 7] or inner-city working communities [8].

In the study of complex networks, the term communities is used to denote parts of the network that are more strongly linked within themselves than to the rest of the network, a phenomenon that has been observed in many human social networks [9]. In this sense, communities are an emergent property of network structure. Much work has gone into developing methods to detect such groups from topological analysis [10], and the extent to which this is possible has been termed modularity [11]. The communities found in this way are usually associated with groups of friends or acquaintances, or similarity in traits [9, 12, 13]. If these communities overlap with social or cultural groups, the use of language should vary between different communities in a social network [3]. Taking word usage as a proxy for variation in language [14, 15], we hypothesise that this variation should closely match the community structure of the network.

To test this hypothesis, we studied word usage in a weighted network created from communication between about 250,000 users of the social networking and microblogging site Twitter, and analysed if groups identified within the interaction network indeed had unique language features. Twitter communication is unstructured in the sense that every user can send a message to any other user. In constructing our network, we formed a link only when users had mutually directed messages at each other, analogously to what has been done in the study of mobile phone networks [16]. We used methods from statistical physics and network theory to identify groups in the network structure that emerge from user interaction, and linked this to word frequencies in the messages generated by each user.

Results and discussion

The network analysed had 189,000 nodes (each corresponding to a single user) with 75 million mutual tweets between them (mean degree of 28) and a global clustering coefficient of 0.084.

Characterising communities through word usage

Partitioning the sampled network of twitter users into groups so that the proportion of messages between users of the same group was maximised [17] yielded pronounced community structure (Figure 1). The modularity found with this maximum modularity algorithm is Q=0.78, in the order of previously studied social networks [17] and far greater than the expected maximum modularity for a random network of the same degree distribution ( Q random =0.15) [18]. For the larger communities identified, the algorithm we used identified sub-communities forming a hierarchy of communities (modularity at the lowest level was Q=0.66). Testing the network for community structure using a second algorithm which uses the map equation to partition users into groups such that flow in the network stays within groups [1921] yielded modularity Q=0.67. We focus on the high-level partition generated by the modularity maximisation algorithm, but will return to the map equation algorithm to verify results.

Figure 1
figure 1

Partition of users sampled from Twitter into communities. The partition of users sampled from Twitter into communities, annotated with words selected to be typical of those used significantly commonly by each community (only English-speaking communities shown). The top word given for each community is the most significant one in that community. Users send a high proportion of their messages (0.91) to other users within the same community. Circles represent communities, with the area of the circle proportional to the number of users (>250 shown). The widths of the lines between circles represent the numbers of messages (>5000 shown) between or within community. The colours of the self-loops represent the proportion of messages that are within users from that group. A word has been starred to avoid offence.

We characterised each of the communities according to the words used in messages sent by the users of the community. To do this, we ranked words in each community by the Z-score of their usage to identify the words most representative of that community. Figure 1 gives illustrative examples of words that characterise each English-speaking community of more than 250 users (see Additional file 1 for the lists of top-ranked words). We surveyed the mean global frequencies for the 100 top-ranked words of each community, finding a broad range. Some communities used relatively common words (at 13% of global usage), while others used much rarer words (at 0.04% of global usage).

To determine the significance of word usage differences, we calculated the Euclidean distance of relative word usage frequencies for each pair of English-language communities using a bootstrap. For each such pair of communities, we sampled two new groups (with replacement) from their union until they had the same sizes as the communities being compared. Repeating this procedure 1,000 times for each pair of communities, we found that for 248 of the 253 pairs of communities the distance between the original pair was greater than all of the 1,000 resampled pairs. For the other five pairs of communities, the distance between them was greater than most (95%) of the resamples. Comparable results were found for the communities generated with the hierarchical map equation algorithm. In other words, the community membership can explain part of the variance of word usage.

One could argue that the within-community similarities between word frequencies arise because users within a group communicate about one or a limited number of subjects. In contrast, there are revealing differences in word usage that go beyond subject area (see Table 1). To quantify differences beyond subjects of conversation, we tested other statistics using the same method we used for testing differences in word usage: frequency of letter usage, letter pair usage, word length and three-letter word ending. For all these statistics, the distances between almost all the community pairs (>98.8%) was greater than the distances between 95% of the 1,000 pairs of groups resampled from the unions of communities. The best-performing statistics were word ending and letter-pair frequency, and the worst was word-length frequency. Only a very small fraction of these matching word features (<10%) came from the same words. These results suggest that the communities used different language patterns, even when considering quite subtle differences that go beyond common subjects of conversation, such as word endings or word lengths.

Table 1 Language patterns of communities

Predicting community membership from word usage

We also tested whether individual word usage can predict the community membership of users by comparing their own word frequencies with community word usage (see Materials and Methods). The more words we sampled from a test user, the more likely we were to associate the same community with the user as that which was found from topological community detection (Figure 2).

Figure 2
figure 2

Proportion of users whose community is correctly predicted. The proportion of users whose topological community association is correctly predicted by analysing a random sample of words, as a function of the number of words sampled. Results are presented for both the modularity maximisation partition (users from only English-speaking communities are shown as red pluses, users from any community as blue circles), and the Map Equation partition (English-speaking communities are shown as black crosses, all communities are as blue squares). For each data point, 5,000 users were tested. Standard error of each point is <1%.

Comparing different partitions, the hierarchical map equation predicted the community of more users correctly than the high-level modularity maximisation partition. Analysing a random sample of 1,000 words of each user, we were able to predict the correct map equation community for approximately 72% of English-speaking users, compared to 48% with the modularity maximisation partition. Using the numbers of communities generated by each algorithm (N=322 for the map equation versus N=413 for modularity maximisation), we calculated the Z-score for these prediction scores. The Z-score for the map equation (Z=911) was greater than that for the modularity maximisation (Z=687). When, on the other hand, considering the lowest-level partition produced by the modularity maximisation algorithm, the fraction of users predicted correctly drops to 38%. When taking into account the number of communities (N=8,738), though, the Z-score is greater than for both of the other partitions (Z=2,511).

Given the community structure of the network, around half of messages will be directed to users in the high-level communities we predict. This means that, once a network is analysed, it is possible to assign the most likely community or communities for any user that was not part of the community detection. This can be done solely on the basis of the word frequencies in a relatively small sample of text written by that user. The proportion of topological groups predicted correctly from analysis of word usage increases roughly exponentially with the number of words sampled from each user (Figure 2).

Conclusions

We studied the relation between community structure in an online social network and language use in messages within that network, and found a striking overlap, whether we considered words, word fragments or word lengths. Moreover, we were able to predict the network community of a user, a purely structural feature, by studying his or her word usage, and we found that this was possible with rapidly growing accuracy for relatively few words sampled. This indicates how the language we use bears the signature of societal structure, and is suggestive of the enormous potential in using topological analysis to identify cultural groups.

A pair of users that engage in a online conversation would be expected to have some language in common. When groups of individuals share language, and also converse with each other, then it is possible to use our method to identify these groups and enrich them with the language they are using. A wide range of alternative algorithms may also be used [22]. A full exploration of these is beyond the scope of this paper, but may show improvements in identifying communities with more unique language patterns. Further improvements might be made by replacing Z-score metric we have used to identify words that stand out with a term frequency-inverse document frequency metric [23].

Our sample is only a small proportion of the much larger twitter network and one could ask whether the sampling process introduces a bias in the community structure we detect. Our sample network has small-world properties (average shortest path length L=4.4), indicating that the sampling process should very quickly reach every community in the network. Resampling the network confirms this intuition. For very small resamples (<1%), the shortest path length L r is greater than L, but on further sampling it converges towards L. Similarly, modularity decreases initially with the size of the resample before it converges, indicating that after enough sampling the process is no longer biased toward any particular community. This is consistent with previous analysis of this type of sampling process which showed that (given certain assumptions) it is a regular Markov process [24], and thus that the community being sampled is independent of the community at the origin of the sample [25]. Overall, this resampling analysis demonstrates that our sampling procedure quickly discovers the larger communities in the network if they are not completely isolated. With more sampling, smaller communities and sub-communities can also be discovered.

The finding that people can be placed in a community by analysing their language usage is consistent with evidence that humans make long-term decisions about relationships very quickly [26]. Our results give an indication that words could be markers of desirable underlying traits or social norms [27], allowing people to make quick decisions about the type of relationship they want from a new acquaintance. The community structure we observe in the network could be explained through homophily [13, 28], that is, through people biasing their interactions to others that are similar in some way, or through dyadic interactions [16]. More generally, any process that structures people into groups could play a strong role in cultural evolution [2932], as well as in the spread of information or pathogens [33, 34]. If people with a negative attitude towards vaccination are preferentially in contact with those of the same opinion, this could lead to clusters of susceptibles and increased risk of outbreaks [35]. There is clearly scope for further study of the role such structuring plays in the evolution of cooperation in humans [36].

Online social networks offer us an unprecedented opportunity to systematically study the large-scale structure of human interactions [37]. Our approach suggests that groups with distinctive cultural characteristics or common interests can be discovered by identifying communities in interaction networks purely on the basis of topological structure. This approach has several benefits when compared to surveying groups identified on a smaller scale: it is systematic, and groups are identified and classified in an unbiased way; when applied to online social networks it is non-intrusive; and it easily makes use a large volume of rich data. In this study we characterise groups by their word frequencies, but this could be extended to quantify other cultural characteristics. Moreover, methods to detect overlapping communities could be used to test in how much these overlap [38], and whether individuals belong to multiple communities and use different word sets in each of them [39]. There are numerous applications of our method, including social group identification, customising online experience, targeted marketing, and crowd-sourced characterisation.

Methods

Network sampling

Our sample network was formed using a process called snowball-sampling [40]: For each user sampled, all their conversational tweets (i.e., tweets that are directed at another user) were recorded and any new users referenced added to a list of users from which the next user to be sampled is picked. Starting from a random user, conversational tweets, time-stamped between January 2007 to November 2009 were sampled from the Twitter web site during December 2009, yielding over 200 million messages. We ignored messages that were copies of other messages (so called retweets, which are identified by the text ‘RT’). The links in the network were bidirectional and weighted by the number of tweets sent between the two users linked.

Ranking words within a community

In order to establish which words characterise each community, we compared the fraction of users that use each word within a community with the fraction of users that used the word globally. We then assessed how unlikely it was that the difference between these two fractions could have happened by random chance. This is given by the standardised Z-score which, for each word used in community c, is

Z= μ c μ g σ g / N c ,

where μ c is the fraction of users in community c which have used the word, μ g is the fraction of all users that have used it, N c is the number of users in community c, and σ g is the standard deviation of usage of the word amongst all users

σ g 2 = 1 N ( μ g N ( 1 μ g ) 2 + ( 1 μ g ) N μ g 2 ) = μ g ( 1 μ g ) ,

where N is the global number of users.

Comparing communities using a bootstrap

For each word i used by each community j we calculated its relative word usage frequency f j (i), i.e., the proportion of the total word instances that were word i. Using this, we were able to measure the difference between two communities j and k by the Euclidean distance as follows,

d(j,k)= i [ f j ( i ) f k ( i ) ] 2 .

To assess the likelihood that a distance calculated could have happened by chance we performed a bootstrap. For each pair of communities we took the union of users and resampled a new pair of communities ( j and k ) of the same sizes as the original pair. For each resampled pair we calculated whether the Euclidean distance of the resampled pair was greater than that of the original pair, i.e., if

d ( j , k ) >d(j,k).

We confirmed that the distribution of resampled distances was close to a normal distribution. Over many resampled pairs, the frequency of instances when this inequality was true gave us the probability that the difference in word usage between the two communities could have happened by chance if words were randomly distributed amongst communities.

Predicting communities of individual users

To predict the communities of individual users we compared individual word usage with community word usage to select the best matching community (see Figure 3). To do this we divided the users into two equal halves: a randomly selected set of test users and a base set of the remaining users. We then randomly sampled words from test users and compared the probability that the frequency with which that user uses the sampled word would have been obtained by randomly sampling words from all users (the p-value of its relative frequency) with the same p-values in the communities of base users (i.e., considering the frequency with which that word is used in the community). We then associated the community with the smallest mean difference in p-values to the test user for the sampled words with that test user. For English-speaking users, we only tested users from communities larger than 250 users.

Figure 3
figure 3

Method for predicting the community of a user. An illustration of the method for predicting which community a user is embedded in. Words are assigned scores (shown as bars above the words in the figure) based on how significantly different their usage is when compared with the global usage (see main text for more details). These scores are generated for the amalgamated text of the users of each community (top left panel), and for the text of the user being tested (top right panel). The scores are compared between a user and all communities and the best match is chosen as the predicted community (bottom panel).

Additional material