def add_name(self, cui, source_val, text=None, is_pref_name=False, tkn_inds=None, text_inds=None, spacy_doc=None, lr=None, anneal=None, negative=False, only_new=False, desc=None, tui=None, manually_created=False): """ Adds a new concept or appends the name to an existing concept if the cui already exists in the DB. cui: Concept uniqe ID source_val: Source value in the text text: the text of a document where source_val was found """ # First add the name, get bac all cuis that link to this name all_cuis = self._add_name(cui, source_val, is_pref_name, only_new=only_new, desc=desc, tui=tui) # Now add context if text is present if (text is not None and (source_val in text or text_inds)) or \ (spacy_doc is not None and (text_inds or tkn_inds)): if spacy_doc is None: spacy_doc = self(text) if tkn_inds is None: tkn_inds = tkn_inds_from_doc(spacy_doc=spacy_doc, text_inds=text_inds, source_val=source_val) if tkn_inds is not None and len(tkn_inds) > 0: self.add_concept_cntx(cui, text, tkn_inds, spacy_doc=spacy_doc, lr=lr, anneal=anneal, negative=negative) if manually_created: all_cuis.remove(cui) for _cui in all_cuis: self.add_concept_cntx(_cui, text, tkn_inds, spacy_doc=spacy_doc, lr=lr, anneal=anneal, negative=True)
def add_name(self, cui, source_val, text=None, is_pref_name=False, tkn_inds=None, text_inds=None, spacy_doc=None, lr=None, anneal=None, negative=False, only_new=False): """ Adds a new concept or appends the name to an existing concept if the cui already exists in the DB. cui: Concept uniqe ID source_val: Source value in the text text: the text of a document where source_val was found """ # First add the name self._add_name(cui, source_val, is_pref_name, only_new=only_new) # Now add context if text is present if text is not None and (source_val in text or text_inds): if spacy_doc is None: spacy_doc = self(text) if tkn_inds is None: tkn_inds = tkn_inds_from_doc(spacy_doc=spacy_doc, text_inds=text_inds, source_val=source_val) if tkn_inds is not None and len(tkn_inds) > 0: self.add_concept_cntx(cui, text, tkn_inds, spacy_doc=spacy_doc, lr=lr, anneal=anneal, negative=negative)
def add_name(self, cui, source_val, text=None, is_pref_name=False, tkn_inds=None, text_inds=None, spacy_doc=None, lr=None, anneal=None, negative=False, only_new=False, desc=None, tui=None, manually_created=False): r''' This function will add a `name` (source_val) to a CUI (existing or new). It will teach medcat that this source_val is linked to this CUI. Args: cui (str): The CUI to which to add the name source_val (str): The `name` or span or source_value that will be linked to the cui text (str, optional): Text in which an example of this source_val can be found. Used for supervised/online training. This is basically one sample in a dataset for supervised training. is_pref_name (boolean): Is this source_val the prefered `name` for this CUI (concept) tkn_inds (list of ints, optional): Should be in the form: [3, 4, 5, ...]. This should be used only if you are providing a spacy_doc also. It gives the indicies of the tokens in a spacy document where the source_val can be found. text_inds (list, optional): A list that has only two values the start index for this `source_val` in the `text` and the end index. Used if you are not providing a spacy_doc. But are providing a `text` - it is optional and if not provided medcat will try to automatically find the start and end index. spacy_doc () TODO: lr (float): The learning rate that will be used if you are providing the `text` that will be used for supervised/active learning. only_new (bool): Only add the name if it does not exist in the current CDB and is not linked to any concept (CUI) in the current CDB. desc (str): Description for this concept tui (str): Semenantic Type identifer for this concept, should be a TUI that exisit in the current CDB. Have a look at cdb.tui2names - for a list of all existing TUIs in the current CDB. Examples: Do not use. ''' # First add the name, get bac all cuis that link to this name all_cuis = self._add_name(cui, source_val, is_pref_name, only_new=only_new, desc=desc, tui=tui) # Now add context if text is present if (text is not None and (source_val in text or text_inds)) or \ (spacy_doc is not None and (text_inds or tkn_inds)): if spacy_doc is None: spacy_doc = self(text) if tkn_inds is None: tkn_inds = tkn_inds_from_doc(spacy_doc=spacy_doc, text_inds=text_inds, source_val=source_val) if tkn_inds is not None and len(tkn_inds) > 0: self.add_concept_cntx(cui, text, tkn_inds, spacy_doc=spacy_doc, lr=lr, anneal=anneal, negative=negative) if manually_created: all_cuis.remove(cui) for _cui in all_cuis: self.add_concept_cntx(_cui, text, tkn_inds, spacy_doc=spacy_doc, lr=lr, anneal=anneal, negative=True)