only analyze text once