public class ConceptSimilarityServiceImpl extends java.lang.Object implements ConceptSimilarityService
ConceptSimilarityService.SimilarityMetricEnum
Modifier and Type | Field and Description |
---|---|
private CacheManager |
cacheManager |
private ConceptGraph |
cg |
private ClassifierEvaluationDao |
classifierEvaluationDao |
private ConceptDao |
conceptDao |
private java.lang.String |
conceptGraphName |
private java.lang.String |
conceptSetName |
private java.util.Map<java.lang.String,java.lang.Double> |
corpusICMap |
private java.lang.String |
corpusName |
private java.util.Map<java.lang.String,java.util.BitSet> |
cuiTuiMap |
private Cache |
lcsCache
cache to hold lcs's
|
private java.lang.String |
lcsImputedType |
private static Log |
log |
private PageRankService |
pageRankService |
private boolean |
preload |
private java.util.Map<ConceptSimilarityService.SimilarityMetricEnum,SimilarityMetric> |
similarityMetricMap |
private PlatformTransactionManager |
transactionManager |
private java.util.List<java.lang.String> |
tuiList |
Constructor and Description |
---|
ConceptSimilarityServiceImpl() |
Modifier and Type | Method and Description |
---|---|
private void |
addCuiTuiToMap(java.util.Map<java.lang.String,java.util.Set<java.lang.String>> cuiTuiMap,
java.util.Map<java.lang.String,java.lang.String> tuiMap,
java.lang.String cui,
java.lang.String tui) |
private static java.lang.String |
formatPaths(java.util.List<LCSPath> lcsPaths) |
java.lang.Object[] |
getBestLCS(java.util.Set<java.lang.String> lcses,
boolean intrinsicIC,
java.util.Map<java.lang.String,java.lang.Double> conceptFilter)
get the best lcs
|
java.lang.Object[] |
getBestLCS(java.util.Set<java.lang.String> lcses,
java.util.Map<java.lang.String,java.lang.Double> icMap) |
CacheManager |
getCacheManager() |
ClassifierEvaluationDao |
getClassifierEvaluationDao() |
ConceptDao |
getConceptDao() |
ConceptGraph |
getConceptGraph() |
java.lang.String |
getConceptGraphName() |
java.lang.String |
getConceptSetName() |
java.lang.String |
getCorpusName() |
java.util.Map<java.lang.String,java.util.BitSet> |
getCuiTuiMap()
cui - tui map.
|
int |
getDepth(java.lang.String concept) |
double |
getIC(java.lang.String concept,
boolean intrinsicICMap) |
private java.util.Map<java.lang.String,FeatureRank> |
getICOnDemand(java.util.Set<java.lang.String> lcses,
boolean intrinsicIC) |
int |
getLCS(java.lang.String concept1,
java.lang.String concept2,
java.util.Set<java.lang.String> lcses,
java.util.List<LCSPath> lcsPaths)
get the lcs(s) for the specified concepts
|
Cache |
getLcsCache() |
private int |
getLCSFromCache(ConcRel cr1,
ConcRel cr2,
java.util.Set<java.lang.String> lcses) |
java.lang.String |
getLcsImputedType() |
PageRankService |
getPageRankService() |
java.util.Map<ConceptSimilarityService.SimilarityMetricEnum,SimilarityMetric> |
getSimilarityMetricMap() |
PlatformTransactionManager |
getTransactionManager() |
java.util.List<java.lang.String> |
getTuiList()
list of tuis that corresponds to bitset indices
|
void |
init() |
void |
initCuiTuiMapFromCorpus()
load cui-tui for the specified corpus from the MRSTY table
|
private void |
initInfoContent()
initialize information content caches TODO replace strings with concept
ids from conceptGraph to save memory
|
private void |
initSimilarityMetricMap()
initialize the metrics
|
boolean |
isPreload() |
int |
lcs(java.lang.String concept1,
java.lang.String concept2,
java.util.List<LCSPath> lcsPaths) |
double |
loadConceptFilter(java.lang.String label,
int rankCutoff,
java.util.Map<java.lang.String,java.lang.Double> conceptFilter)
For the given label and cutoff, get the corresponding concepts whose
propagated ig meets the threshold.
|
static void |
main(java.lang.String[] args) |
private static java.util.List<ConceptPair> |
parseConcepts(java.lang.String concepts) |
private static java.util.List<ConceptSimilarityService.SimilarityMetricEnum> |
parseMetrics(java.lang.String metrics) |
private static void |
printSimilarities(java.util.List<ConceptPair> conceptPairs,
java.util.List<ConceptPairSimilarity> conceptSimList,
java.util.List<ConceptSimilarityService.SimilarityMetricEnum> metricList,
java.util.List<SimilarityInfo> simInfos,
boolean lcs,
java.io.PrintStream os) |
void |
setCacheManager(CacheManager cacheManager) |
void |
setClassifierEvaluationDao(ClassifierEvaluationDao classifierEvaluationDao) |
void |
setConceptDao(ConceptDao conceptDao) |
void |
setConceptGraphName(java.lang.String conceptGraphName) |
void |
setConceptSetName(java.lang.String conceptSetName) |
void |
setCorpusName(java.lang.String corpusName) |
void |
setLcsCache(Cache lcsCache) |
void |
setLcsImputedType(java.lang.String lcsImputedType) |
void |
setPageRankService(PageRankService pageRankService) |
void |
setPreload(boolean preload) |
void |
setSimilarityMetricMap(java.util.Map<ConceptSimilarityService.SimilarityMetricEnum,SimilarityMetric> similarityMetricMap) |
void |
setTransactionManager(PlatformTransactionManager transactionManager) |
java.util.List<ConceptPairSimilarity> |
similarity(java.util.List<ConceptPair> conceptPairs,
java.util.List<ConceptSimilarityService.SimilarityMetricEnum> metrics,
java.util.Map<java.lang.String,java.lang.Double> conceptFilter,
boolean lcs)
compute similarity for a list of concept pairs
|
ConceptPairSimilarity |
similarity(java.util.List<ConceptSimilarityService.SimilarityMetricEnum> metrics,
java.lang.String concept1,
java.lang.String concept2,
java.util.Map<java.lang.String,java.lang.Double> conceptFilter,
boolean lcs)
compute similarity for a pair of concepts
|
private java.util.BitSet |
tuiListToBitset(java.util.Set<java.lang.String> tuis,
java.util.SortedMap<java.lang.String,java.lang.Integer> mapTuiIndex)
convert the list of tuis into a bitset
|
private static final Log log
private CacheManager cacheManager
private ConceptGraph cg
private ClassifierEvaluationDao classifierEvaluationDao
private ConceptDao conceptDao
private java.lang.String conceptGraphName
private java.lang.String conceptSetName
private java.lang.String corpusName
private java.util.Map<java.lang.String,java.util.BitSet> cuiTuiMap
private Cache lcsCache
private java.lang.String lcsImputedType
private PageRankService pageRankService
private boolean preload
private java.util.Map<java.lang.String,java.lang.Double> corpusICMap
private java.util.Map<ConceptSimilarityService.SimilarityMetricEnum,SimilarityMetric> similarityMetricMap
private PlatformTransactionManager transactionManager
private java.util.List<java.lang.String> tuiList
private static java.lang.String formatPaths(java.util.List<LCSPath> lcsPaths)
public static void main(java.lang.String[] args) throws java.io.IOException
java.io.IOException
private static java.util.List<ConceptPair> parseConcepts(java.lang.String concepts) throws java.io.IOException
java.io.IOException
private static java.util.List<ConceptSimilarityService.SimilarityMetricEnum> parseMetrics(java.lang.String metrics)
private static void printSimilarities(java.util.List<ConceptPair> conceptPairs, java.util.List<ConceptPairSimilarity> conceptSimList, java.util.List<ConceptSimilarityService.SimilarityMetricEnum> metricList, java.util.List<SimilarityInfo> simInfos, boolean lcs, java.io.PrintStream os)
private void addCuiTuiToMap(java.util.Map<java.lang.String,java.util.Set<java.lang.String>> cuiTuiMap, java.util.Map<java.lang.String,java.lang.String> tuiMap, java.lang.String cui, java.lang.String tui)
public java.lang.Object[] getBestLCS(java.util.Set<java.lang.String> lcses, boolean intrinsicIC, java.util.Map<java.lang.String,java.lang.Double> conceptFilter)
ConceptSimilarityService
getBestLCS
in interface ConceptSimilarityService
lcses
- set of lcsesintrinsicIC
- should the intrinsic ic be used? false - use corpus-based ic.
For multiple lcses not using concept filter, use the lcs with
the lowest infocontentconceptFilter
- limit to lcses in the concept filter. The lcs with the highest
value will be used.public java.lang.Object[] getBestLCS(java.util.Set<java.lang.String> lcses, java.util.Map<java.lang.String,java.lang.Double> icMap)
public CacheManager getCacheManager()
public ClassifierEvaluationDao getClassifierEvaluationDao()
public ConceptDao getConceptDao()
public ConceptGraph getConceptGraph()
getConceptGraph
in interface ConceptSimilarityService
public java.lang.String getConceptGraphName()
getConceptGraphName
in interface ConceptSimilarityService
public java.lang.String getConceptSetName()
public java.lang.String getCorpusName()
public java.util.Map<java.lang.String,java.util.BitSet> getCuiTuiMap()
ConceptSimilarityService
ConceptSimilarityService.getTuiList()
getCuiTuiMap
in interface ConceptSimilarityService
public int getDepth(java.lang.String concept)
getDepth
in interface ConceptSimilarityService
public double getIC(java.lang.String concept, boolean intrinsicICMap)
getIC
in interface ConceptSimilarityService
private java.util.Map<java.lang.String,FeatureRank> getICOnDemand(java.util.Set<java.lang.String> lcses, boolean intrinsicIC)
public int getLCS(java.lang.String concept1, java.lang.String concept2, java.util.Set<java.lang.String> lcses, java.util.List<LCSPath> lcsPaths)
ConceptSimilarityService
getLCS
in interface ConceptSimilarityService
concept1
- requiredconcept2
- requiredlcses
- required - will be filled with the lcs(s).public Cache getLcsCache()
private int getLCSFromCache(ConcRel cr1, ConcRel cr2, java.util.Set<java.lang.String> lcses)
public java.lang.String getLcsImputedType()
public PageRankService getPageRankService()
public java.util.Map<ConceptSimilarityService.SimilarityMetricEnum,SimilarityMetric> getSimilarityMetricMap()
public PlatformTransactionManager getTransactionManager()
public java.util.List<java.lang.String> getTuiList()
ConceptSimilarityService
getTuiList
in interface ConceptSimilarityService
public void init()
public void initCuiTuiMapFromCorpus()
private void initInfoContent()
private void initSimilarityMetricMap()
public boolean isPreload()
public int lcs(java.lang.String concept1, java.lang.String concept2, java.util.List<LCSPath> lcsPaths)
lcs
in interface ConceptSimilarityService
public double loadConceptFilter(java.lang.String label, int rankCutoff, java.util.Map<java.lang.String,java.lang.Double> conceptFilter)
loadConceptFilter
in interface ConceptSimilarityService
label
- labelrankCutoff
- cutoffconceptFilter
- set to fill with conceptspublic void setCacheManager(CacheManager cacheManager)
public void setClassifierEvaluationDao(ClassifierEvaluationDao classifierEvaluationDao)
public void setConceptDao(ConceptDao conceptDao)
public void setConceptGraphName(java.lang.String conceptGraphName)
public void setConceptSetName(java.lang.String conceptSetName)
public void setCorpusName(java.lang.String corpusName)
public void setLcsCache(Cache lcsCache)
public void setLcsImputedType(java.lang.String lcsImputedType)
public void setPageRankService(PageRankService pageRankService)
public void setPreload(boolean preload)
public void setSimilarityMetricMap(java.util.Map<ConceptSimilarityService.SimilarityMetricEnum,SimilarityMetric> similarityMetricMap)
public void setTransactionManager(PlatformTransactionManager transactionManager)
public java.util.List<ConceptPairSimilarity> similarity(java.util.List<ConceptPair> conceptPairs, java.util.List<ConceptSimilarityService.SimilarityMetricEnum> metrics, java.util.Map<java.lang.String,java.lang.Double> conceptFilter, boolean lcs)
ConceptSimilarityService
similarity
in interface ConceptSimilarityService
conceptPairs
- required, concept pairs for which similarity should be
computedmetrics
- required, similarity metrics to computeconceptFilter
- optional - only lcs's in this set will be used.public ConceptPairSimilarity similarity(java.util.List<ConceptSimilarityService.SimilarityMetricEnum> metrics, java.lang.String concept1, java.lang.String concept2, java.util.Map<java.lang.String,java.lang.Double> conceptFilter, boolean lcs)
ConceptSimilarityService
similarity
in interface ConceptSimilarityService
metrics
- required, similarity metrics to computeconcept1
- requiredconcept2
- requiredconceptFilter
- optional - only lcs's in this set will be used.private java.util.BitSet tuiListToBitset(java.util.Set<java.lang.String> tuis, java.util.SortedMap<java.lang.String,java.lang.Integer> mapTuiIndex)
tuis
- mapTuiIndex
-