package org.ansj.recognition.impl; import java.util.List; import org.ansj.domain.Result; import org.ansj.domain.Term; import org.ansj.library.SynonymsLibrary; import org.ansj.recognition.Recognition; import org.nlpcn.commons.lang.tire.domain.SmartForest; /** * 同义词功能 * * @author Ansj * */ public class SynonymsRecgnition implements Recognition { private static final long serialVersionUID = 5961499108093950130L; private SmartForest<List<String>> synonyms = null; public SynonymsRecgnition() { this.synonyms = SynonymsLibrary.get(); } public SynonymsRecgnition(String key) { this.synonyms = SynonymsLibrary.get(key); } public SynonymsRecgnition(SmartForest<List<String>> synonyms){ this.synonyms = synonyms ; } @Override public void recognition(Result result) { for (Term term : result) { SmartForest<List<String>> branch = synonyms.getBranch(term.getName()); if (branch != null && branch.getStatus() > 1) { List<String> syns = branch.getParam(); if (syns != null) { term.setSynonyms(syns); } } } } }