Social science has traditionally measured opinions using surveys, recording responses on simplified bipolar scales. However, everyday opinions are expressed in more complex and nuanced language than is captured in survey items; they are formed in the context of debate as speakers take sides with and against other opinions. We propose a new approach to study opinion, based on the idea of ordering speakers in a spatial representation according to the linguistic similarity of their contributions to a debate. Such “speaker landscapes” can be constructed quantitatively from large text corpora by exploiting the ability of machine learning to find patterns in text. Using this tool, we investigate opinion in two South African case studies: the twitter debate around the arrest and imprisonment of former president Jacob Zuma, and opinion statements quoted in the news media about the controversial issue of land reform. We find that speaker landscapes expose both social and linguistic dimensions of opinion and identify the characteristic terms, feelings and topics associated with clusters of opinion.