github.com/hscells/guru@v0.0.0-20200207042420-2dabeb950d69/metamap.go (about)

     1  package guru
     2  
     3  import "github.com/hscells/metawrap"
     4  
     5  func MetaMapConceptRatio(concepts1 []string, concepts2 []string) (float64, float64, int, int) {
     6  	n := 0.0
     7  	for _, c1 := range concepts1 {
     8  		for _, c2 := range concepts2 {
     9  			if c1 == c2 {
    10  				n++
    11  			}
    12  		}
    13  	}
    14  	return n, n / float64(len(concepts1)), len(concepts1), len(concepts2)
    15  }
    16  
    17  func MetaMapCUIs(text string, client metawrap.HTTPClient) (c []string, err error) {
    18  	candidates, err := client.Candidates(text)
    19  	if err != nil {
    20  		return
    21  	}
    22  	seen := make(map[string]bool)
    23  	for _, candidate := range candidates {
    24  		if _, ok := seen[candidate.CandidateCUI]; !ok {
    25  			c = append(c, candidate.CandidateCUI)
    26  			seen[candidate.CandidateCUI] = true
    27  		}
    28  	}
    29  	return
    30  }