Beispiel #1
0
def pipeline(collection, metamap, splitter, parser, ptb2dep, neg_detector, cuis, extra_args):
    """

    Args:
        collection(BioCCollection):
        metamap(MetaMap): MetaMap instance
        splitter (NegBioSSplitter):
        parser (NegBioParser)
        ptb2dep (NegBioPtb2DepConverter)
        neg_detector (Detector):

    Returns:
        BioCCollection
    """
    for document in collection.documents:
        splitter.split_doc(document)

    dner_mm.run_metamap_col(collection, metamap, cuis, extra_args)

    for document in collection.documents:
        document = parser.parse_doc(document)
        document = ptb2dep.convert_doc(document)
        document = negdetect.detect(document, neg_detector)
        # remove sentence
        for passage in document.passages:
            del passage.sentences[:]

    return collection
 def classify(self, collection):
     """Classify each mention into one of
     negative, uncertain, or positive."""
     documents = collection.documents
     if self.verbose:
         print("Classifying mentions...")
         documents = tqdm(documents)
     for document in documents:
         # Parse the impression text in place.
         parse.parse(document, self.parser)
         # Add the universal dependency graph in place.
         ptb2ud.convert(document, self.ptb2dep, self.lemmatizer)
         # Detect the negation and uncertainty rules in place.
         negdetect.detect(document, self.detector)
         # To reduce memory consumption, remove sentences text.
         del document.passages[0].sentences[:]
Beispiel #3
0
def pipeline(document, splitter, parser, ptb2dep, lemmatizer, neg_detector):
    document = ssplit.ssplit(document, splitter)
    document = parse.parse(document, parser)
    document = ptb2ud.convert(document, ptb2dep, lemmatizer)
    document = negdetect.detect(document, neg_detector)

    # remove sentence
    for passage in document.passages:
        del passage.sentences[:]

    return document
Beispiel #4
0
def pipeline(collection, metamap, splitter, parser, ptb2dep, lemmatizer, neg_detector, cuis):
    for document in collection.documents:
        ssplit.ssplit(document, splitter)

    dner_mm.run_metamap_col(collection, metamap, cuis)

    for document in collection.documents:
        document = parse.parse(document, parser)
        document = ptb2ud.convert(document, ptb2dep, lemmatizer)
        document = negdetect.detect(document, neg_detector)
        # remove sentence
        for passage in document.passages:
            del passage.sentences[:]

    return collection
Beispiel #5
0
def process_collection(collection, metamap, splitter, parser, ptb2dep, lemmatizer, neg_detector, cuis, sec_title_patterns):
    for document in collection.documents:
        normalize_mimiccxr.normalize(document)
        section_split.split_document(document, sec_title_patterns)
        ssplit.ssplit(document, splitter)

    dner_mm.run_metamap_col(collection, metamap, cuis)

    for document in collection.documents:
        document = parse.parse(document, parser)
        document = ptb2ud.convert(document, ptb2dep, lemmatizer)
        document = negdetect.detect(document, neg_detector)
        cleanup.clean_sentences(document)

    return collection
Beispiel #6
0
def pipeline(collection,
             loader,
             ssplitter,
             extractor,
             parser,
             ptb2dep,
             neg_detector,
             aggregator,
             verbose=False):
    """
    Args:
        loader (NegBioLoader)
        ssplitter (NegBioSSplitter)
        parser (NegBioParser)
        extractor (NegBioExtractor)
        ptb2dep (NegBioPtb2DepConverter)
        neg_detector (ModifiedDetector)
        aggregator (NegBioAggregator)
    """
    # for document in collection.documents:
    #
    #     for passage in document.passages:
    #         passage.text = clean(passage.text)
    #     ssplitter.split_doc(document)
    for document in tqdm.tqdm(collection.documents, disable=not verbose):
        document = loader.clean_doc(document)
        document = ssplitter.split_doc(document)
        document = extractor.extract_doc(document)
        document = parser.parse_doc(document)
        document = ptb2dep.convert_doc(document)
        document = negdetect.detect(document, neg_detector)
        document = aggregator.aggregate_doc(document)
        # remove sentence
        for passage in document.passages:
            del passage.sentences[:]

    return collection