Children learn word meanings by making use of commonalities across the usages of a word in different situations. However, early word learning experiences have a high level of uncertainty. For a word in an utterance, there are many possible meanings in the environment (referential uncertainty). Similarly, for a meaning, there are multiple possible words in the utterance (linguistic uncertainty). Through a set of computational studies, we show that to successfully learn word meanings in the face of uncertainty, a model needs to implement two types of competitions: words competing for association to a meaning helps with linguistic uncertainty, and meanings competing for a word limits referential uncertainty.