1. A computer-implemented system for discovering heterogeneous communities with shared anomalous components, comprising: a processor configured to execute code, comprising: a graph module configured to obtain a graph comprising a plurality of vertices, each of the vertices representing an entity and being connected to at least one of the remaining vertices by an edge representing one or more events associated with the entities represented by the connected vertices, each of the vertices associated with a collection of words of one or more categories, each of the words describing an item associated with at least one of the events associated with that vertex, each of the vertices further associated with one or more one topics each of which describes a type of an activity of the entity represented by that vertex; a community module configured to identify one or more communities within the graph, each of the communities comprising at least two of the connected vertices; a category module configured to, for one or more of the communities, identify one or more of the categories of the words whose removal from the collections associated with the vertices in that community increases a likelihood of that community being associated with the collections of the words associated with the vertices in that community; and an anomaly module configured to set one or more of the identified word categories as anomalous for the communities for which the word categories were identified.