Refactor the PhraseExtractor::PhraseCandidate class