Exemplo n.º 1
0
 def buildConcepts(self):
     cc = ConcreteConcept('hareitosis', 'i', ['hareitosis'], ['B02.34'],
                          [''])
     cc2 = ConcreteConcept('inflammed hair cancer', 'a',
                           ['hairitis', 'hairiatic cancer'],
                           ['A12.23.45', 'B01.23'], [''])
     self.storage = {'c12345': cc, 'c98765': cc2}
     Concept.init_storage(self.storage)
     return (Concept('c12345'), Concept('c98765'))
Exemplo n.º 2
0
 def testWrongMappingType(self):
     c1, c2 = self.buildConcepts()
     cc3 = ConcreteConcept('hairosis', 'g/p', ['hairotic hairisis'],
                           ['C1.2.3'], [''])
     # Add it in a roundabout way to the original storage
     self.storage['c2468'] = cc3
     c3 = Concept('c2468')
     self.assertEqual([], self.ruleless_converter.convert(c3).utterance)
Exemplo n.º 3
0
 def convert(self, a_ranked_result_set):
     """Convert a ranked result set into a RankedConversionResult.
     In other words, convert a ranked term list to its MeSH equivalents."""
     result = RankedConversionResult()
     self._my_converter.start_conversion()
     for incoming_term, incoming_score in a_ranked_result_set:
         converted = self._my_converter.convert(
             Concept(incoming_term.node_id))
         if converted.utterance != []:
             result.add_term_score(converted, incoming_score)
         converted = self._my_converter.end_conversion()
         if converted.utterance != []:
             result.add_term_score(converted,
                                   incoming_score + self._checktag_boost)
     logging.log(ULTRADEBUG, "RankedConverter results: %r", result)
     return result
Exemplo n.º 4
0
 def testTermNotInTreeRaisesException(self):
     c1, c2 = self.buildConcepts()
     cc3 = ConcreteConcept(
         'hairosis',
         'i',
         [
             'hairotic hairisis',
             'hair-raising hair',  # <--This'll be a descriptor
             'hurry'
         ],
         ['Q12345678', 'D123456', 'Q987564'],
         [''])
     # Add it in a roundabout way to the original storage
     self.storage['c2468'] = cc3
     c3 = Concept('c2468')
     self.ruleless_converter._skip_unknown = False
     self.assertRaises(TermNotInTree, self.ruleless_converter.convert, c3)
Exemplo n.º 5
0
 def testDeepestOnePreferred(self):
     c1, c2 = self.buildConcepts()
     cc3 = ConcreteConcept(
         'hair-raising hair',
         'i',
         [
             'hairitis',  # <-- a descriptor
             'hairiatic cancer',  # <-- a descriptor
             'hareitosis'
         ],  # <-- a descriptor
         ['D12345678', 'D123456', 'D987564'],
         [''])
     # Add it in a roundabout way to the original storage
     self.storage['c2468'] = cc3
     c3 = Concept('c2468')
     # Should choose the deepest one (hairiatic cancer, according to
     # self.my_tree)
     self.assertEqual([Term('hairiatic cancer')],
                      self.ruleless_converter.convert(c3).utterance)
Exemplo n.º 6
0
 def testDescriptorNamedLikeConceptPreferred(self):
     c1, c2 = self.buildConcepts()
     cc3 = ConcreteConcept(
         'hair-raising hair',
         'i',
         [
             'hairotic hairisis',  # <-- a descriptor
             'hair-raising hair',  # <-- a descriptor
             'hurry'
         ],  # <-- not a descriptor
         ['D12345678', 'D123456', 'Q987564'],
         [''])
     # Add it in a roundabout way to the original storage
     self.storage['c2468'] = cc3
     c3 = Concept('c2468')
     # Make sure the tree knows about this concept
     self.my_tree._tree['hair-raising hair'] = TreeNode(
         'hair-raising hair', 'MH', 'Q', set(['B12.34']))
     self.assertEqual([Term('hair-raising hair')],
                      self.ruleless_converter.convert(c3).utterance)
Exemplo n.º 7
0
 def __init__(self, original_line, converter):
     RelationLine.__init__(self, original_line)
     self._mesh1 = converter.convert(Concept(self.CUI1))
     self._mesh2 = converter.convert(Concept(self.CUI2))
     dummy = converter.end_conversion()  # Discard extra terms generated by
Exemplo n.º 8
0
 def __init__(self, original_line, converter):
     EntityLine.__init__(self, original_line)
     self._mesh = converter.convert(Concept(self.CUI))
     dummy = converter.end_conversion()  # Discard extra terms generated by