Repository: idaholab/SR2ML (language: python)

Issue:
NLP for Issue Report, License Event Report 
--------
Issue Description
--------

**Is your feature request related to a problem? Please describe.**
Develop NLP methods to identify SSC entities, health status and causal relations in Issue report, license event report or other reports.

**Describe the solution you'd like**


**Describe alternatives you've considered**


**Additional context**

----------------
For Change Control Board: Issue Review
----------------
This review should occur before any development is performed as a response to this issue.
- [x] 1. Is it tagged with a type: defect or task?
- [x] 2. Is it tagged with a priority: critical, normal or minor?
- [x] 3. If it will impact requirements or requirements tests, is it tagged with requirements?
- [x] 4. If it is a defect, can it cause wrong results for users? If so an email needs to be sent to the users.
- [x] 5. Is a rationale provided? (Such as explaining why the improvement is needed or why current code is wrong.)

-------
For Change Control Board: Issue Closure
-------
This review should occur when the issue is imminently going to be closed.
- [ ] 1. If the issue is a defect, is the defect fixed?
- [ ] 2. If the issue is a defect, is the defect tested for in the regression test system?  (If not explain why not.)
- [ ] 3. If the issue can impact users, has an email to the users group been written (the email should specify if the defect impacts stable or master)?
- [ ] 4. If the issue is a defect, does it impact the latest release branch? If yes, is there any issue tagged with release (create if needed)?
- [ ] 5. If the issue is being closed without a pull request, has an explanation of why it is being closed been provided?



Discussion / hints:

Fix patch:
diff --git a/src/nlp/RuleBasedMatcher.py b/src/nlp/RuleBasedMatcher.py
index b2c9d41..fd48145 100644
--- a/src/nlp/RuleBasedMatcher.py
+++ b/src/nlp/RuleBasedMatcher.py
@@ -255,18 +255,22 @@ def __call__(self, text):
     hsList = []
     kwList = []
     cjList = []
+    sentList = []
     for sent in self._matchedSents:
       ents = self.getCustomEnts(sent.ents, self._entityLabels[self._labelSSC])
       elist = [ent.text for ent in ents]
       hs = [ent._.health_status for ent in ents]
       kw = [ent._.hs_keyword for ent in ents]
       cj = [ent._.conjecture for ent in ents]
+      sl = [sent.text.strip('\n') for ent in ents]
       entList.extend(elist)
       hsList.extend(hs)
       kwList.extend(kw)
       cjList.extend(cj)
-    df = pd.DataFrame({'entities':entList, 'status keywords':kwList, 'health statuses':hsList, 'conjecture':cjList})
-    df.to_csv(nlpConfig['files']['output_health_status_file'], columns=['entities', 'status keywords', 'health statuses', 'conjecture'])
+      sentList.extend(sl)
+
+    df = pd.DataFrame({'entities':entList, 'status keywords':kwList, 'health statuses':hsList, 'conjecture':cjList, 'sentence':sentList})
+    df.to_csv(nlpConfig['files']['output_health_status_file'], columns=['entities', 'status keywords', 'health statuses', 'conjecture', 'sentence'])
     logger.info('End of health status extraction!')
     ## causal relation
     logger.info('Start to extract causal relation using OPM model information')
@@ -375,8 +379,178 @@ def getCustomEnts(self, ents, labels):
       @ Out, customEnts, list, the customEnts associates with the "labels"
     """
     customEnts = [ent for ent in ents if ent.label_ in labels]
+    if len(customEnts) == 0:
+      customEnts = None
     return customEnts
 
+  # def getHealthStatusForNounOrAdj(self,):
+  #   """
+  #   """
+  #
+  # def getHealthStatusForVerb(self,):
+  #   """
+  #   """
+  def getHealthStatusForPobj(self, ent, include=False):
+    """
+    """
+    healthStatus = None
+    if isinstance(ent, Token):
+      root = ent
+      start = root.i
+      end = start + 1
+    elif isinstance(ent, Span):
+      root = ent.root
+      start = ent.start
+      end = ent.end
+    if root.dep_ not in ['pobj']:
+      return healthStatus
+    grandparent = root.head.head
+    parent = root.head
+    causalStatus = [grandparent.lemma_.lower()] in self._causalKeywords['VERB'] and [grandparent.lemma_.lower()] not in self._statusKeywords['VERB']
+    if grandparent.dep_ in ['dobj', 'nsubj', 'nsubjpass', 'pobj']:
+      if not include:
+        rights = list(grandparent.rights)
+        if grandparent.n_rights > 1 and rights[-1] == parent:
+          healthStatus = grandparent.doc[grandparent.i-grandparent.n_lefts:rights[-1].i]
+        else:
+          healthStatus = grandparent.doc[grandparent.i-grandparent.n_lefts:grandparent.i+1]
+      else:
+        healthStatus = grandparent.doc[grandparent.i-grandparent.n_lefts:end]
+    elif grandparent.pos_ in ['VERB'] and causalStatus:
+      healthStatus = self.findRightObj(grandparent)
+      subtree = list(healthStatus.subtree)
+      if healthStatus is not None and healthStatus.nbor().dep_ in ['prep'] and subtree[-1].i < root.i:
+        healthStatus = grandparent.doc[healthStatus.i:subtree[-1].i+1]
+      elif healthStatus is not None and healthStatus.i >= root.i:
+        healthStatus = None
+    elif grandparent.pos_ in ['NOUN']:
+      grandEnt = grandparent.doc[grandparent.i:grandparent.i+1]
+      healthStatus = self.getAmod(grandEnt, grandparent.i, grandparent.i+1, include=True)
+    elif grandparent.pos_ in ['AUX']:
+      healthStatus = grandparent.doc[grandparent.i+1:parent.i]
+    else: # search lefts for amod
+      healthStatus = self.getAmod(ent, start, end, include)
+    return healthStatus
+
+  def getPhrase(self, ent, start, end, include=False):
+    """
+    """
+    if not include:
+      healthStatus = ent.doc[start-ent.n_lefts:start]
+    else:
+      healthStatus = ent.doc[start-ent.n_lefts:end]
+    return healthStatus
+
+  def getAmod(self, ent, start, end, include = False):
+    """
+    """
+    healthStatus = None
+    deps = [tk.dep_ in ['amod'] for tk in ent.lefts]
+    if any(deps):
+      healthStatus = self.getPhrase(ent, start, end, include)
+    elif include:
+      healthStatus = ent
+    return healthStatus
+
+  def getHealthStatusForSubj(self, ent, entHS, sent, causalStatus, predSynonyms, include=False):
+    """
+    """
+    healthStatus = None
+    neg = False
+    negText = ''
+    entRoot = ent.root
+    # root = sent.root
+    root = entRoot.head
+    causalStatus = [root.lemma_.lower()] in self._causalKeywords['VERB'] and [root.lemma_.lower()] not in self._statusKeywords['VERB']
+    if entRoot.dep_ not in ['nsubj', 'nsubjpass']:
+      return healthStatus, neg, negText
+    if root.pos_ != 'VERB':
+      neg, negText = self.isNegation(root)
+      if root.pos_ in ['NOUN', 'ADJ']:
+        # TODO: search entRoot.lefts for 'amod' and attach to healthStatus
+        healthStatus = root
+      elif root.pos_ in ['AUX']:
+        healthStatus = root.doc[root.i+1:root.i+root.n_rights+1]
+      else:
+        logger.waring(f'No status identified for "{ent}" in "{sent}"')
+    else:
+      rights = root.rights
+      valid = [tk.dep_ in ['advcl', 'relcl'] for tk in rights if tk.pos_ not in ['PUNCT', 'SPACE']]
+      if root.nbor().dep_ in ['cc'] or root.nbor().pos_ in ['PUNCT']:
+        healthStatus = root
+      elif all(valid):
+        healthStatus = root
+      elif not causalStatus:
+        if [root.lemma_.lower()] in predSynonyms:
+          entHS._.set('hs_keyword', root.lemma_)
+        neg, negText = self.isNegation(root)
+        passive = self.isPassive(root)
+        # # last is punct, the one before last is the root
+        # if root.nbor().pos_ in ['PUNCT']:
+        #   healthStatus = root
+        healthStatus = self.findRightObj(root)
+        if healthStatus and healthStatus.dep_ == 'pobj':
+          healthStatus = self.getHealthStatusForPobj(healthStatus, include=True)
+        elif healthStatus and healthStatus.dep_ == 'dobj':
+          subtree = list(healthStatus.subtree)
+          if healthStatus.nbor().dep_ in ['prep']:
+            healthStatus = healthStatus.doc[healthStatus.i:subtree[-1].i+1]
+        # no object is found
+        if not healthStatus:
+          healthStatus = self.findRightKeyword(root)
+        # last is punct, the one before last is the root
+        # if not healthStatus and root.nbor().pos_ in ['PUNCT']:
+        #   healthStatus = root
+        if healthStatus is None:
+          healthStatus = self.getAmod(ent, ent.start, ent.end, include=include)
+        if healthStatus is None:
+          healthStatus = root
+      else:
+        healthStatus = self.getAmod(ent, ent.start, ent.end, include=include)
+      if healthStatus is None:
+        healthStatus = root
+    return healthStatus, neg, negText
+
+  def getHealthStatusForObj(self, ent, entHS, sent, causalStatus, predSynonyms, include=False):
+    """
+    """
+    healthStatus = None
+    neg = False
+    negText = ''
+    entRoot = ent.root
+    head = entRoot.head
+    if head.pos_ in ['VERB']:
+      root = head
+    elif head.dep_ in ['prep']:
+      root = head.head.head
+    causalStatus = [root.lemma_.lower()] in self._causalKeywords['VERB'] and [root.lemma_.lower()] not in self._statusKeywords['VERB']
+    if entRoot.dep_ not in ['pobj', 'dobj']:
+      return healthStatus, neg, negText
+    if root.pos_ != 'VERB':
+      neg, negText = self.isNegation(root)
+      if root.pos_ in ['NOUN', 'ADJ']:
+        healthStatus = root
+      elif root.pos_ in ['AUX']:
+        healthStatus = root.doc[root.i-root.n_lefts:root.i]
+      else:
+        logger.warning(f'No status identified for "{ent}" in "{sent}"')
+    else:
+      if not causalStatus:
+        if [root.lemma_.lower()] in predSynonyms:
+          entHS._.set('hs_keyword', root.lemma_)
+        passive = self.isPassive(root)
+        neg, negText = self.isNegation(root)
+        healthStatus = self.findLeftSubj(root, passive)
+        if healthStatus is not None:
+          healthStatus = self.getAmod(healthStatus, healthStatus.i, healthStatus.i+1, include=True)
+      else:
+        if entRoot.dep_ in ['pobj']:
+          healthStatus = self.getHealthStatusForPobj(ent, include=include)
+        else:
+          healthStatus = self.getAmod(ent, ent.start, ent.end, include=include)
+    return healthStatus, neg, negText
+
+
   def extractHealthStatus(self, matchedSents, predSynonyms=[], exclPrepos=[]):
     """
       Extract health status and relation
@@ -384,123 +558,130 @@ def extractHealthStatus(self, matchedSents, predSynonyms=[], exclPrepos=[]):
       @ In, predSynonyms, list, predicate synonyms
       @ In, exclPrepos, list, exclude the prepositions
     """
+
+    #  first search degradation keywords,
+    #  if pobj, then if head.head
+
+    # Ex. 1: an acrid odor in the control room --> entRoot.dep_ in ['pobj'], HS: entRoot.head.head i.e.,
+    # let i = entRoot.head.head.i, start = sent.start, nlefts = entRoot.head.head.n_lefts
+    # healthStatus = sent[i-start-nlefts:i-start+1]
+    # or entRoot.head in 'amod', checking the n_lefts, as above
+
+    # Ex. 2: shaft degradation --> entRoot.dep_ in ['compound'], HS: entRoot.head and entRoot.head.pos_ in in ['NUM']
+
+    # Ex. 3: entRoot.dep_ in ['nsubj', 'nsubjpass']
+
+    # sent.root before ent, search left for nsubj or nsubjpass and any 'amod', 'compound', 'det'
+    # sent.root after ent, search right for pobj, and check head.head.dep_ in ['dobj', 'nsubjpass', 'nsubj'], amend it with any 'amod', 'compound', 'det' in its lefts
+    # should report both dobj and pobj for the health status
+
+    # if sent.root, check right for 'cc' and 'conj', if next is 'cc', return the root
+
+    #  if entRoot.dep_ in ['conj'], if entRoot.head.dep_ in ['nmod'], return entRoot.head.head
+    #  entRoot.dep_ in ['dobj'] and entRoot.head.pos_ in ['VERB'], return the entRoot.head
+
+    # dobj: left children (amod, compound, det) and right childrend, (have signs of overheating)
+    # nsubj -- VERB -- pobj :  if pobj is NUM, then everything between VERB and pobj
     predSynonyms = self._statusKeywords['VERB']
     statusNoun = self._statusKeywords['NOUN']
     statusAdj = self._statusKeywords['ADJ']
     causalStatus = False
+
     for sent in matchedSents:
-      conjecture = False
+      causalEnts = None
       if self._labelCausal in self._entityLabels:
         causalEnts = self.getCustomEnts(sent.ents, self._entityLabels[self._labelCausal])
-      else:
-        continue
       ents = self.getCustomEnts(sent.ents, self._entityLabels[self._labelSSC])
-      # if len(ents) > 1 and [sent.root.lemma_] in self._causalKeywords['VERB']:
+      if ents is None:
+        continue
       causalStatus = [sent.root.lemma_.lower()] in self._causalKeywords['VERB'] and [sent.root.lemma_.lower()] not in self._statusKeywords['VERB']
-      causalStatus = causalStatus and len(ents) == 1
-      # if causalStatus and len(ents) > 1:
-      if (len(ents) > 1 and len(causalEnts) > 0) or causalStatus:
-        # conjecture = self.isConjecture(sent.root)
-        for ent in ents:
-          healthStatus = None
-          root = ent.root
-          neg = False
-          if root.dep_ in ['pobj']:
-            healthStatus = root.head.head
-          elif root.dep_ in ['compound']:
-            healthStatus = root.head
-          elif root.dep_ in ['nsubj']:
-            root = root.head
-            neg, negText = self.isNegation(root)
-            if [root.lemma_.lower()] not in predSynonyms and root.pos_ != 'VERB':
-              if root.pos_ in ['NOUN', 'ADJ']:
-                healthStatus = root
-                if self._updateStatusKeywords:
-                  self.addKeywords({root.pos_:[root]}, 'status')
-            elif root.pos_ != 'VERB':
-              print('--- root not verb', root.text, root.pos_)
-              continue
-            else:
-              ent._.set('hs_keyword', root.lemma_)
+      for ent in ents:
+        healthStatus = None
+        conjecture = False
+        passive = False
+        entRoot = ent.root
+        root = sent.root
+        neg = False
+        if entRoot.dep_ in ['nsubj', 'nsubjpass']:
+          healthStatus, neg, negText = self.getHealthStatusForSubj(ent, ent, sent, causalStatus, predSynonyms)
+        elif entRoot.dep_ in ['pobj', 'dobj']:
+          if len(ents) == 1:
+            healthStatus, neg, negText = self.getHealthStatusForObj(ent, ent, sent, causalStatus, predSynonyms)
+          else:
+            healthStatus = self.getHealthStatusForPobj(ent, include=False)
+          if healthStatus is None:
+            head = entRoot.head
+            if head.dep_ in ['xcomp', 'advcl', 'relcl']:
+              for child in head.rights:
+                if child.dep_ in ['ccomp']:
+                  healthStatus = child
+                  break
+
+        elif entRoot.dep_ in ['compound']:
+          if len(ents) == 1:
+            head = entRoot.head
+            if head.dep_ in ['compound']:
+              head = head.head
+            headEnt = head.doc[head.i:head.i+1]
+            if head.dep_ in ['nsubj', 'nsubjpass']:
+              healthStatus, neg, negText = self.getHealthStatusForSubj(headEnt, ent, sent, causalStatus, predSynonyms, include=True)
+            elif head.dep_ in ['dobj', 'pobj']:
+              healthStatus, neg, negText = self.getHealthStatusForObj(headEnt, ent, sent, causalStatus, predSynonyms, include=True)
+          if healthStatus is None:
+            healthStatus = entRoot.head
+        elif entRoot.dep_ in ['conj']:
+          # TODO: recursive function to retrieve non-conj
+          head = entRoot.head
+          if head.dep_ in ['conj']:
+            head = head.head
+          headEnt = head.doc[head.i:head.i+1]
+          if head.dep_ in ['nsubj', 'nsubjpass']:
+            healthStatus, neg, negText = self.getHealthStatusForSubj(headEnt, ent, sent, causalStatus, predSynonyms)
+          elif head.dep_ in ['pobj', 'dobj']:
+            healthStatus = self.getHealthStatusForPobj(headEnt, include=False)
+            if healthStatus is None:
+              healthStatus, neg, negText = self.getHealthStatusForObj(headEnt, ent, sent, causalStatus, predSynonyms)
+        else:
+          logger.warning(f'Entity "{ent}" dep_ is "{entRoot.dep_}" is not among valid list "[nsubj, nsubjpass, pobj, dobj, compound]"')
+          if entRoot.head == root:
+            headEnt = root.doc[root.i:root.i+1]
+            if ent.start < root.i:
+              if [root.lemma_.lower()] in predSynonyms:
+                ent._.set('hs_keyword', root.lemma_)
+              neg, negText = self.isNegation(root)
               passive = self.isPassive(root)
               # # last is punct, the one before last is the root
               # if root.nbor().pos_ in ['PUNCT']:
               #   healthStatus = root
               healthStatus = self.findRightObj(root)
               if healthStatus and healthStatus.dep_ == 'pobj':
-                # include 'dobj' 'prep' and 'pobj'
-                # examples
-                # Pump had noise of cavitation
-                # RCP pump 1A had signs of past leakage
-                if healthStatus.head.head.dep_ == 'dobj':
-                  healthStatus = healthStatus.doc[healthStatus.head.head.i:healthStatus.i+1]
+                healthStatus = self.getHealthStatusForPobj(healthStatus, include=True)
+              elif healthStatus and healthStatus.dep_ == 'dobj':
+                subtree = list(healthStatus.subtree)
+                if healthStatus.nbor().dep_ in ['prep']:
+                  healthStatus = healthStatus.doc[healthStatus.i:subtree[-1].i+1]
               # no object is found
               if not healthStatus:
                 healthStatus = self.findRightKeyword(root)
               # last is punct, the one before last is the root
               if not healthStatus and root.nbor().pos_ in ['PUNCT']:
                 healthStatus = root
+              if healthStatus is None:
+                healthStatus = self.getAmod(ent, ent.start, ent.end, include=False)
               if healthStatus is None:
                 healthStatus = root
-          else:
-            continue
-          if healthStatus is None:
-            continue
-          # determine the conjecture of health status
-          if isinstance(healthStatus, Span):
-            conjecture = self.isConjecture(healthStatus.root.head)
-          elif isinstance(healthStatus, Token):
-            conjecture = self.isConjecture(healthStatus.head)
-          if not neg:
-            if isinstance(healthStatus, Span):
-              neg, negText = self.isNegation(healthStatus.root)
             else:
-              neg, negText = self.isNegation(healthStatus)
-          # conjecture = self.isConjecture(healthStatus.head)
-          # neg, negText = self.isNegation(healthStatus)
-          if neg:
-            healthStatus = ' '.join([negText,healthStatus.text])
-          logger.debug(f'{ent} health status: {healthStatus}')
-          ent._.set('health_status', healthStatus)
-          ent._.set('conjecture',conjecture)
-      elif len(ents) == 1:
-        healthStatus = None
-        root = sent.root
-        neg, negText = self.isNegation(root)
-        if [root.lemma_.lower()] not in predSynonyms and root.pos_ != 'VERB':
-          if root.pos_ in ['NOUN', 'ADJ']:
-            healthStatus = root
-            if self._updateStatusKeywords:
-              self.addKeywords({root.pos_:[root]}, 'status')
-        elif root.pos_ != 'VERB':
-          print('--- root not verb', root.text, root.pos_)
-          continue
-        else:
-          passive = self.isPassive(root)
-          # conjecture = self.isConjecture(root)
-          # # last is punct, the one before last is the root
-          # if root.nbor().pos_ in ['PUNCT']:
-          #   healthStatus = root
-          if ents[0].start < root.i:
-            healthStatus = self.findRightObj(root)
-            if healthStatus and healthStatus.dep_ == 'pobj':
-              # include 'dobj' 'prep' and 'pobj'
-              # examples
-              # Pump had noise of cavitation
-              # RCP pump 1A had signs of past leakage
-              if healthStatus.head.head.dep_ == 'dobj':
-                healthStatus = healthStatus.doc[healthStatus.head.head.i:healthStatus.i+1]
-            # no object is found
-            if not healthStatus:
-              healthStatus = self.findRightKeyword(root)
-            # last is punct, the one before last is the root
-            if not healthStatus and root.nbor().pos_ in ['PUNCT']:
-              healthStatus = root
-          else:
-            healthStatus = self.findLeftSubj(root, passive)
+              if [root.lemma_.lower()] in predSynonyms:
+                ent._.set('hs_keyword', root.lemma_)
+              passive = self.isPassive(root)
+              neg, negText = self.isNegation(root)
+              healthStatus = self.findLeftSubj(root, passive)
+              if healthStatus is not None:
+                healthStatus = self.getAmod(healthStatus, healthStatus.i, healthStatus.i+1, include=True)
+
+
         if healthStatus is None:
           continue
-        # determine the conjecture of health status
         if isinstance(healthStatus, Span):
           conjecture = self.isConjecture(healthStatus.root.head)
         elif isinstance(healthStatus, Token):
@@ -510,15 +691,14 @@ def extractHealthStatus(self, matchedSents, predSynonyms=[], exclPrepos=[]):
             neg, negText = self.isNegation(healthStatus.root)
           else:
             neg, negText = self.isNegation(healthStatus)
-        # TODO: may be also report the verb, for example 'RCP pump 1A was cavitating and vibrating to some degree during test.'
-        # is not identified properly
+        # conjecture = self.isConjecture(healthStatus.head)
+        # neg, negText = self.isNegation(healthStatus)
         if neg:
           healthStatus = ' '.join([negText,healthStatus.text])
-        logger.debug(f'{ents[0]} health status: {healthStatus}')
-        ents[0]._.set('health_status', healthStatus)
-        if root.pos_ == 'VERB':
-          ents[0]._.set('hs_keyword', root.lemma_)
-        ents[0]._.set('conjecture', conjecture)
+        logger.debug(f'{ent} health status: {healthStatus}')
+        ent._.set('health_status', healthStatus)
+        ent._.set('conjecture',conjecture)
+
 
   def findLeftSubj(self, pred, passive):
     """
@@ -591,8 +771,8 @@ def findHealthStatus(self, root, deps):
         nbor = child.nbor()
         # TODO, what else need to be added
         # can not use the first check only, since is nbor is 'during', it will also satisfy the check condition
-        if nbor.dep_ in ['prep'] and nbor.lemma_.lower() in ['of']:
-          return self.findRightObj(nbor, deps=['pobj'])
+        # if (nbor.dep_ in ['prep'] and nbor.lemma_.lower() in ['of', 'in']) or nbor.pos_ in ['VERB']:
+        #   return self.findRightObj(nbor, deps=['pobj'])
         return child
       elif child.dep_ == 'compound' and \
          child.head.dep_ in deps: # check if contained in compound
@@ -661,7 +841,7 @@ def extractRelDep(self, matchedSents):
       sscEnts = self.getCustomEnts(sent.ents, self._entityLabels[self._labelSSC])
       sscEnts = self.getConjuncts(sscEnts)
       logger.debug(f'Conjuncts pairs: {sscEnts}')
-      if len(causalEnts) == 0: #  no causal keyword is found, skipping
+      if causalEnts is None: #  no causal keyword is found, skipping
         continue
       if len(sscEnts) == 0:
         logger.debug(f'No entity is identified in "{sent.text}"')
diff --git a/src/nlp/config/__init__.py b/src/nlp/config/__init__.py
index 0aae7a1..b539ae3 100644
--- a/src/nlp/config/__init__.py
+++ b/src/nlp/config/__init__.py
@@ -4,8 +4,8 @@
 import tomli
 import os
 
-# configFileName = 'nlp_config.toml'
-configFileName = 'nlp_config_ler.toml'
+configFileName = 'nlp_config.toml'
+# configFileName = 'nlp_config_ler.toml'
 
 path = pathlib.Path(os.path.join(pathlib.Path(__file__).parent, configFileName))
 with path.open(mode="rb") as fp:
diff --git a/src/nlp/data/output_health_status_gold.csv b/src/nlp/data/output_health_status_gold.csv
index eb674cc..42987df 100644
--- a/src/nlp/data/output_health_status_gold.csv
+++ b/src/nlp/data/output_health_status_gold.csv
@@ -1,36 +1,36 @@
-,entities,status keywords,health statuses,conjecture
-0,pump,notice,A leak,False
-1,pump,find,not operating,False
-2,pump,find,inoperative,False
-3,pump,have,signs of past leakage,False
-4,Pump,experience,not enough flow,False
-5,pump shaft,notice,Slight Vibrations,True
-6,Pump,respond,not responding,False
-7,pump bearings,,Rupture,False
-8,pump shaft,,degradation,False
-9,pump bearings,,Rupture,False
-10,pump shaft,,degradation,False
-11,Power supply,find,burnout,False
-12,Pump,,test,False
-13,power supply,,failure,False
-14,Pump,,inspection,False
-15,impeller,,degradation,False
-16,Pump,,inspection,True
-17,impeller,,degradation,True
-18,pump,find,Oil puddle,False
-19,pump,observe,Anomalous vibrations,False
-20,pump shaft,,Several cracks,False
-21,pump,,failure,True
-22,pump,cavitate,some degree,False
-23,pump shaft,,vibration,False
-24,motor,vibrate,vibrate,False
-25,Pump,have,noise of cavitation,False
-26,pump shaft,,deflection,False
-27,Pump,experience,not enough flow,False
-28,pumps,,enough flow,False
-29,Pump shaft,make,noise,False
-30,pump shaft,seem,Vibration,True
-31,pump shaft,,deflection,False
-32,Pump bearings,appear,acceptable condition,False
-33,Pump,make,noises,False
-34,Pump shaft,have,a slight deflection,False
+,entities,status keywords,health statuses,conjecture,sentence
+0,pump,notice,A leak,False,A leak was noticed from the RCP pump 1A.
+1,pump,find,not operating,False,RCP pump 1A pressure gauge was found not operating.
+2,pump,find,inoperative,False,RCP pump 1A pressure gauge was found inoperative.
+3,pump,have,signs of past leakage,False,RCP pump 1A had signs of past leakage.
+4,Pump,experience,not enough flow during test,False,The Pump is not experiencing enough flow during test.
+5,pump shaft,notice,Slight Vibrations,True,Slight Vibrations is noticed - likely from pump shaft deflection.
+6,Pump,,not responding,False,Pump flow meter was not responding.
+7,pump bearings,,Rupture,False,Rupture of pump bearings caused pump shaft degradation.
+8,pump shaft,,degradation,False,Rupture of pump bearings caused pump shaft degradation.
+9,pump bearings,,Rupture,False,Rupture of pump bearings caused pump shaft degradation and consequent flow reduction.
+10,pump shaft,,degradation,False,Rupture of pump bearings caused pump shaft degradation and consequent flow reduction.
+11,Power supply,find,burnout,False,Power supply has been found burnout.
+12,Pump,,test,False,Pump test failed due to power supply failure.
+13,power supply,,failure,False,Pump test failed due to power supply failure.
+14,Pump,,inspection,False,Pump inspection revealed excessive impeller degradation.
+15,impeller,,degradation,False,Pump inspection revealed excessive impeller degradation.
+16,Pump,,inspection,True,Pump inspection revealed excessive impeller degradation likely due to cavitation.
+17,impeller,,degradation,True,Pump inspection revealed excessive impeller degradation likely due to cavitation.
+18,pump,find,Oil puddle,False,Oil puddle was found in proximity of RCP pump 1A.
+19,pump,observe,Anomalous vibrations,False,Anomalous vibrations were observed for RCP pump 1A.
+20,pump shaft,,Several cracks,False,Several cracks on pump shaft were observed; they could have caused pump failure within few days.
+21,pump,,failure,True,Several cracks on pump shaft were observed; they could have caused pump failure within few days.
+22,pump,,cavitating,False,RCP pump 1A was cavitating and vibrating to some degree during test.
+23,pump shaft,,vibration,False,The pump shaft vibration appears to be causing the motor to vibrate as well.
+24,motor,vibrate,vibrate,False,The pump shaft vibration appears to be causing the motor to vibrate as well.
+25,Pump,have,noise of cavitation which became faint after OPS bled off the air,False,Pump had noise of cavitation which became faint after OPS bled off the air.
+26,pump shaft,,deflection,False,The pump shaft deflection is causing the safety cage to rattle.
+27,Pump,experience,not enough flow for the pumps,False,The Pump is not experiencing enough flow for the pumps to keep the check valves open during test.
+28,pumps,,enough flow,False,The Pump is not experiencing enough flow for the pumps to keep the check valves open during test.
+29,Pump shaft,make,noise,False,Pump shaft made noise.
+30,pump shaft,,Vibration,True,Vibration seems like it is coming from the pump shaft.
+31,pump shaft,,deflection,False,Visible pump shaft deflection in operation.
+32,Pump bearings,appear,acceptable condition,False,Pump bearings appear in acceptable condition.
+33,Pump,make,noises,False,Pump made noises - not enough to affect performance.
+34,Pump shaft,have,a slight deflection,False,Pump shaft has a slight deflection.
diff --git a/src/nlp/jupyter/nlp.ipynb b/src/nlp/jupyter/nlp.ipynb
index 024384d..daa56cc 100644
--- a/src/nlp/jupyter/nlp.ipynb
+++ b/src/nlp/jupyter/nlp.ipynb
@@ -2,7 +2,7 @@
  "cells": [
   {
    "cell_type": "code",
-   "execution_count": 1,
+   "execution_count": 2,
    "id": "d9e78e05-eba4-4b5a-aa2f-440a3756a4c6",
    "metadata": {},
    "outputs": [
@@ -12,7 +12,7 @@
        "<function spacy.pipeline.functions.merge_entities(doc: spacy.tokens.doc.Doc)>"
       ]
      },
-     "execution_count": 1,
+     "execution_count": 2,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -25,14 +25,14 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": 60,
    "id": "18ada2fb-7a96-4ffa-a16f-8e0f7271496c",
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/html": [
-       "<span class=\"tex2jax_ignore\"><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xml:lang=\"en\" id=\"73a7600d827c4b47b38b49b1fbada73e-0\" class=\"displacy\" width=\"1625\" height=\"399.5\" direction=\"ltr\" style=\"max-width: none; height: 399.5px; color: #000000; background: #ffffff; font-family: Arial; direction: ltr\">\n",
+       "<span class=\"tex2jax_ignore\"><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xml:lang=\"en\" id=\"c0ecd51bbfdc4759b1857f5630a036dc-0\" class=\"displacy\" width=\"1625\" height=\"399.5\" direction=\"ltr\" style=\"max-width: none; height: 399.5px; color: #000000; background: #ffffff; font-family: Arial; direction: ltr\">\n",
        "<text class=\"displacy-token\" fill=\"currentColor\" text-anchor=\"middle\" y=\"309.5\">\n",
        "    <tspan class=\"displacy-word\" fill=\"currentColor\" x=\"50\">A</tspan>\n",
        "    <tspan class=\"displacy-tag\" dy=\"2em\" fill=\"currentColor\" x=\"50\">DET</tspan>\n",
@@ -79,65 +79,65 @@
        "</text>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-73a7600d827c4b47b38b49b1fbada73e-0-0\" stroke-width=\"2px\" d=\"M70,264.5 C70,177.0 215.0,177.0 215.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-c0ecd51bbfdc4759b1857f5630a036dc-0-0\" stroke-width=\"2px\" d=\"M70,264.5 C70,177.0 215.0,177.0 215.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-73a7600d827c4b47b38b49b1fbada73e-0-0\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">det</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-c0ecd51bbfdc4759b1857f5630a036dc-0-0\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">det</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M70,266.5 L62,254.5 78,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-73a7600d827c4b47b38b49b1fbada73e-0-1\" stroke-width=\"2px\" d=\"M245,264.5 C245,89.5 570.0,89.5 570.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-c0ecd51bbfdc4759b1857f5630a036dc-0-1\" stroke-width=\"2px\" d=\"M245,264.5 C245,89.5 570.0,89.5 570.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-73a7600d827c4b47b38b49b1fbada73e-0-1\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">nsubjpass</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-c0ecd51bbfdc4759b1857f5630a036dc-0-1\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">nsubjpass</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M245,266.5 L237,254.5 253,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-73a7600d827c4b47b38b49b1fbada73e-0-2\" stroke-width=\"2px\" d=\"M420,264.5 C420,177.0 565.0,177.0 565.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-c0ecd51bbfdc4759b1857f5630a036dc-0-2\" stroke-width=\"2px\" d=\"M420,264.5 C420,177.0 565.0,177.0 565.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-73a7600d827c4b47b38b49b1fbada73e-0-2\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">auxpass</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-c0ecd51bbfdc4759b1857f5630a036dc-0-2\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">auxpass</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M420,266.5 L412,254.5 428,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-73a7600d827c4b47b38b49b1fbada73e-0-3\" stroke-width=\"2px\" d=\"M595,264.5 C595,177.0 740.0,177.0 740.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-c0ecd51bbfdc4759b1857f5630a036dc-0-3\" stroke-width=\"2px\" d=\"M595,264.5 C595,177.0 740.0,177.0 740.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-73a7600d827c4b47b38b49b1fbada73e-0-3\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">prep</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-c0ecd51bbfdc4759b1857f5630a036dc-0-3\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">prep</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M740.0,266.5 L748.0,254.5 732.0,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-73a7600d827c4b47b38b49b1fbada73e-0-4\" stroke-width=\"2px\" d=\"M945,264.5 C945,177.0 1090.0,177.0 1090.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-c0ecd51bbfdc4759b1857f5630a036dc-0-4\" stroke-width=\"2px\" d=\"M945,264.5 C945,177.0 1090.0,177.0 1090.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-73a7600d827c4b47b38b49b1fbada73e-0-4\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">det</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-c0ecd51bbfdc4759b1857f5630a036dc-0-4\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">det</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M945,266.5 L937,254.5 953,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-73a7600d827c4b47b38b49b1fbada73e-0-5\" stroke-width=\"2px\" d=\"M770,264.5 C770,89.5 1095.0,89.5 1095.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-c0ecd51bbfdc4759b1857f5630a036dc-0-5\" stroke-width=\"2px\" d=\"M770,264.5 C770,89.5 1095.0,89.5 1095.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-73a7600d827c4b47b38b49b1fbada73e-0-5\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">pobj</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-c0ecd51bbfdc4759b1857f5630a036dc-0-5\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">pobj</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M1095.0,266.5 L1103.0,254.5 1087.0,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-73a7600d827c4b47b38b49b1fbada73e-0-6\" stroke-width=\"2px\" d=\"M595,264.5 C595,2.0 1275.0,2.0 1275.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-c0ecd51bbfdc4759b1857f5630a036dc-0-6\" stroke-width=\"2px\" d=\"M595,264.5 C595,2.0 1275.0,2.0 1275.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-73a7600d827c4b47b38b49b1fbada73e-0-6\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">advcl</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-c0ecd51bbfdc4759b1857f5630a036dc-0-6\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">advcl</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M1275.0,266.5 L1283.0,254.5 1267.0,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-73a7600d827c4b47b38b49b1fbada73e-0-7\" stroke-width=\"2px\" d=\"M1295,264.5 C1295,177.0 1440.0,177.0 1440.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-c0ecd51bbfdc4759b1857f5630a036dc-0-7\" stroke-width=\"2px\" d=\"M1295,264.5 C1295,177.0 1440.0,177.0 1440.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-73a7600d827c4b47b38b49b1fbada73e-0-7\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">dobj</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-c0ecd51bbfdc4759b1857f5630a036dc-0-7\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">dobj</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M1440.0,266.5 L1448.0,254.5 1432.0,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
@@ -158,14 +158,163 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 3,
+   "execution_count": 66,
+   "id": "e8c3f49e-2bab-489a-95cb-59d805093b13",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "A leak was noticed from the RCP pump 1A."
+      ]
+     },
+     "execution_count": 66,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "doc[1].doc"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 59,
+   "id": "b00111c1-3e45-450d-ae03-f8fb7994353f",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<span class=\"tex2jax_ignore\"><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xml:lang=\"en\" id=\"156b68f2d36244969139bc2c0882386b-0\" class=\"displacy\" width=\"1450\" height=\"399.5\" direction=\"ltr\" style=\"max-width: none; height: 399.5px; color: #000000; background: #ffffff; font-family: Arial; direction: ltr\">\n",
+       "<text class=\"displacy-token\" fill=\"currentColor\" text-anchor=\"middle\" y=\"309.5\">\n",
+       "    <tspan class=\"displacy-word\" fill=\"currentColor\" x=\"50\">RCP</tspan>\n",
+       "    <tspan class=\"displacy-tag\" dy=\"2em\" fill=\"currentColor\" x=\"50\">NOUN</tspan>\n",
+       "</text>\n",
+       "\n",
+       "<text class=\"displacy-token\" fill=\"currentColor\" text-anchor=\"middle\" y=\"309.5\">\n",
+       "    <tspan class=\"displacy-word\" fill=\"currentColor\" x=\"225\">pump</tspan>\n",
+       "    <tspan class=\"displacy-tag\" dy=\"2em\" fill=\"currentColor\" x=\"225\">NOUN</tspan>\n",
+       "</text>\n",
+       "\n",
+       "<text class=\"displacy-token\" fill=\"currentColor\" text-anchor=\"middle\" y=\"309.5\">\n",
+       "    <tspan class=\"displacy-word\" fill=\"currentColor\" x=\"400\">1A</tspan>\n",
+       "    <tspan class=\"displacy-tag\" dy=\"2em\" fill=\"currentColor\" x=\"400\">NOUN</tspan>\n",
+       "</text>\n",
+       "\n",
+       "<text class=\"displacy-token\" fill=\"currentColor\" text-anchor=\"middle\" y=\"309.5\">\n",
+       "    <tspan class=\"displacy-word\" fill=\"currentColor\" x=\"575\">pressure</tspan>\n",
+       "    <tspan class=\"displacy-tag\" dy=\"2em\" fill=\"currentColor\" x=\"575\">NOUN</tspan>\n",
+       "</text>\n",
+       "\n",
+       "<text class=\"displacy-token\" fill=\"currentColor\" text-anchor=\"middle\" y=\"309.5\">\n",
+       "    <tspan class=\"displacy-word\" fill=\"currentColor\" x=\"750\">gauge</tspan>\n",
+       "    <tspan class=\"displacy-tag\" dy=\"2em\" fill=\"currentColor\" x=\"750\">NOUN</tspan>\n",
+       "</text>\n",
+       "\n",
+       "<text class=\"displacy-token\" fill=\"currentColor\" text-anchor=\"middle\" y=\"309.5\">\n",
+       "    <tspan class=\"displacy-word\" fill=\"currentColor\" x=\"925\">was</tspan>\n",
+       "    <tspan class=\"displacy-tag\" dy=\"2em\" fill=\"currentColor\" x=\"925\">AUX</tspan>\n",
+       "</text>\n",
+       "\n",
+       "<text class=\"displacy-token\" fill=\"currentColor\" text-anchor=\"middle\" y=\"309.5\">\n",
+       "    <tspan class=\"displacy-word\" fill=\"currentColor\" x=\"1100\">not</tspan>\n",
+       "    <tspan class=\"displacy-tag\" dy=\"2em\" fill=\"currentColor\" x=\"1100\">PART</tspan>\n",
+       "</text>\n",
+       "\n",
+       "<text class=\"displacy-token\" fill=\"currentColor\" text-anchor=\"middle\" y=\"309.5\">\n",
+       "    <tspan class=\"displacy-word\" fill=\"currentColor\" x=\"1275\">responding ,</tspan>\n",
+       "    <tspan class=\"displacy-tag\" dy=\"2em\" fill=\"currentColor\" x=\"1275\">VERB</tspan>\n",
+       "</text>\n",
+       "\n",
+       "<g class=\"displacy-arrow\">\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-156b68f2d36244969139bc2c0882386b-0-0\" stroke-width=\"2px\" d=\"M70,264.5 C70,177.0 215.0,177.0 215.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
+       "        <textPath xlink:href=\"#arrow-156b68f2d36244969139bc2c0882386b-0-0\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
+       "    </text>\n",
+       "    <path class=\"displacy-arrowhead\" d=\"M70,266.5 L62,254.5 78,254.5\" fill=\"currentColor\"/>\n",
+       "</g>\n",
+       "\n",
+       "<g class=\"displacy-arrow\">\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-156b68f2d36244969139bc2c0882386b-0-1\" stroke-width=\"2px\" d=\"M245,264.5 C245,2.0 750.0,2.0 750.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
+       "        <textPath xlink:href=\"#arrow-156b68f2d36244969139bc2c0882386b-0-1\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
+       "    </text>\n",
+       "    <path class=\"displacy-arrowhead\" d=\"M245,266.5 L237,254.5 253,254.5\" fill=\"currentColor\"/>\n",
+       "</g>\n",
+       "\n",
+       "<g class=\"displacy-arrow\">\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-156b68f2d36244969139bc2c0882386b-0-2\" stroke-width=\"2px\" d=\"M420,264.5 C420,89.5 745.0,89.5 745.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
+       "        <textPath xlink:href=\"#arrow-156b68f2d36244969139bc2c0882386b-0-2\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
+       "    </text>\n",
+       "    <path class=\"displacy-arrowhead\" d=\"M420,266.5 L412,254.5 428,254.5\" fill=\"currentColor\"/>\n",
+       "</g>\n",
+       "\n",
+       "<g class=\"displacy-arrow\">\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-156b68f2d36244969139bc2c0882386b-0-3\" stroke-width=\"2px\" d=\"M595,264.5 C595,177.0 740.0,177.0 740.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
+       "        <textPath xlink:href=\"#arrow-156b68f2d36244969139bc2c0882386b-0-3\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
+       "    </text>\n",
+       "    <path class=\"displacy-arrowhead\" d=\"M595,266.5 L587,254.5 603,254.5\" fill=\"currentColor\"/>\n",
+       "</g>\n",
+       "\n",
+       "<g class=\"displacy-arrow\">\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-156b68f2d36244969139bc2c0882386b-0-4\" stroke-width=\"2px\" d=\"M770,264.5 C770,2.0 1275.0,2.0 1275.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
+       "        <textPath xlink:href=\"#arrow-156b68f2d36244969139bc2c0882386b-0-4\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">nsubj</textPath>\n",
+       "    </text>\n",
+       "    <path class=\"displacy-arrowhead\" d=\"M770,266.5 L762,254.5 778,254.5\" fill=\"currentColor\"/>\n",
+       "</g>\n",
+       "\n",
+       "<g class=\"displacy-arrow\">\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-156b68f2d36244969139bc2c0882386b-0-5\" stroke-width=\"2px\" d=\"M945,264.5 C945,89.5 1270.0,89.5 1270.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
+       "        <textPath xlink:href=\"#arrow-156b68f2d36244969139bc2c0882386b-0-5\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">aux</textPath>\n",
+       "    </text>\n",
+       "    <path class=\"displacy-arrowhead\" d=\"M945,266.5 L937,254.5 953,254.5\" fill=\"currentColor\"/>\n",
+       "</g>\n",
+       "\n",
+       "<g class=\"displacy-arrow\">\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-156b68f2d36244969139bc2c0882386b-0-6\" stroke-width=\"2px\" d=\"M1120,264.5 C1120,177.0 1265.0,177.0 1265.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
+       "        <textPath xlink:href=\"#arrow-156b68f2d36244969139bc2c0882386b-0-6\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">neg</textPath>\n",
+       "    </text>\n",
+       "    <path class=\"displacy-arrowhead\" d=\"M1120,266.5 L1112,254.5 1128,254.5\" fill=\"currentColor\"/>\n",
+       "</g>\n",
+       "</svg></span>"
+      ],
+      "text/plain": [
+       "<IPython.core.display.HTML object>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      ",\n"
+     ]
+    }
+   ],
+   "source": [
+    "doc = nlp(\"RCP pump 1A pressure gauge was not responding ,\")\n",
+    "spacy.displacy.render(doc, style=\"dep\")\n",
+    "print(doc[0:9].root.nbor())"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
    "id": "5618cd9b-4fc4-4d1d-a037-3b5969ed868a",
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/html": [
-       "<span class=\"tex2jax_ignore\"><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xml:lang=\"en\" id=\"c67abf82e24c4305a007a0334f7a4a82-0\" class=\"displacy\" width=\"1625\" height=\"487.0\" direction=\"ltr\" style=\"max-width: none; height: 487.0px; color: #000000; background: #ffffff; font-family: Arial; direction: ltr\">\n",
+       "<span class=\"tex2jax_ignore\"><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xml:lang=\"en\" id=\"ce9dfbc6d5384cbc9c51b69d267513a6-0\" class=\"displacy\" width=\"1625\" height=\"487.0\" direction=\"ltr\" style=\"max-width: none; height: 487.0px; color: #000000; background: #ffffff; font-family: Arial; direction: ltr\">\n",
        "<text class=\"displacy-token\" fill=\"currentColor\" text-anchor=\"middle\" y=\"397.0\">\n",
        "    <tspan class=\"displacy-word\" fill=\"currentColor\" x=\"50\">RCP</tspan>\n",
        "    <tspan class=\"displacy-tag\" dy=\"2em\" fill=\"currentColor\" x=\"50\">NOUN</tspan>\n",
@@ -212,65 +361,65 @@
        "</text>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-c67abf82e24c4305a007a0334f7a4a82-0-0\" stroke-width=\"2px\" d=\"M70,352.0 C70,2.0 750.0,2.0 750.0,352.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-ce9dfbc6d5384cbc9c51b69d267513a6-0-0\" stroke-width=\"2px\" d=\"M70,352.0 C70,2.0 750.0,2.0 750.0,352.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-c67abf82e24c4305a007a0334f7a4a82-0-0\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-ce9dfbc6d5384cbc9c51b69d267513a6-0-0\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M70,354.0 L62,342.0 78,342.0\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-c67abf82e24c4305a007a0334f7a4a82-0-1\" stroke-width=\"2px\" d=\"M245,352.0 C245,89.5 745.0,89.5 745.0,352.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-ce9dfbc6d5384cbc9c51b69d267513a6-0-1\" stroke-width=\"2px\" d=\"M245,352.0 C245,89.5 745.0,89.5 745.0,352.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-c67abf82e24c4305a007a0334f7a4a82-0-1\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-ce9dfbc6d5384cbc9c51b69d267513a6-0-1\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M245,354.0 L237,342.0 253,342.0\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-c67abf82e24c4305a007a0334f7a4a82-0-2\" stroke-width=\"2px\" d=\"M420,352.0 C420,177.0 740.0,177.0 740.0,352.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-ce9dfbc6d5384cbc9c51b69d267513a6-0-2\" stroke-width=\"2px\" d=\"M420,352.0 C420,177.0 740.0,177.0 740.0,352.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-c67abf82e24c4305a007a0334f7a4a82-0-2\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-ce9dfbc6d5384cbc9c51b69d267513a6-0-2\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M420,354.0 L412,342.0 428,342.0\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-c67abf82e24c4305a007a0334f7a4a82-0-3\" stroke-width=\"2px\" d=\"M595,352.0 C595,264.5 735.0,264.5 735.0,352.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-ce9dfbc6d5384cbc9c51b69d267513a6-0-3\" stroke-width=\"2px\" d=\"M595,352.0 C595,264.5 735.0,264.5 735.0,352.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-c67abf82e24c4305a007a0334f7a4a82-0-3\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-ce9dfbc6d5384cbc9c51b69d267513a6-0-3\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M595,354.0 L587,342.0 603,342.0\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-c67abf82e24c4305a007a0334f7a4a82-0-4\" stroke-width=\"2px\" d=\"M770,352.0 C770,177.0 1090.0,177.0 1090.0,352.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-ce9dfbc6d5384cbc9c51b69d267513a6-0-4\" stroke-width=\"2px\" d=\"M770,352.0 C770,177.0 1090.0,177.0 1090.0,352.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-c67abf82e24c4305a007a0334f7a4a82-0-4\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">nsubjpass</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-ce9dfbc6d5384cbc9c51b69d267513a6-0-4\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">nsubjpass</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M770,354.0 L762,342.0 778,342.0\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-c67abf82e24c4305a007a0334f7a4a82-0-5\" stroke-width=\"2px\" d=\"M945,352.0 C945,264.5 1085.0,264.5 1085.0,352.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-ce9dfbc6d5384cbc9c51b69d267513a6-0-5\" stroke-width=\"2px\" d=\"M945,352.0 C945,264.5 1085.0,264.5 1085.0,352.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-c67abf82e24c4305a007a0334f7a4a82-0-5\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">auxpass</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-ce9dfbc6d5384cbc9c51b69d267513a6-0-5\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">auxpass</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M945,354.0 L937,342.0 953,342.0\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-c67abf82e24c4305a007a0334f7a4a82-0-6\" stroke-width=\"2px\" d=\"M1295,352.0 C1295,264.5 1435.0,264.5 1435.0,352.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-ce9dfbc6d5384cbc9c51b69d267513a6-0-6\" stroke-width=\"2px\" d=\"M1295,352.0 C1295,264.5 1435.0,264.5 1435.0,352.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-c67abf82e24c4305a007a0334f7a4a82-0-6\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">neg</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-ce9dfbc6d5384cbc9c51b69d267513a6-0-6\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">neg</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M1295,354.0 L1287,342.0 1303,342.0\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-c67abf82e24c4305a007a0334f7a4a82-0-7\" stroke-width=\"2px\" d=\"M1120,352.0 C1120,177.0 1440.0,177.0 1440.0,352.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-ce9dfbc6d5384cbc9c51b69d267513a6-0-7\" stroke-width=\"2px\" d=\"M1120,352.0 C1120,177.0 1440.0,177.0 1440.0,352.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-c67abf82e24c4305a007a0334f7a4a82-0-7\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">xcomp</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-ce9dfbc6d5384cbc9c51b69d267513a6-0-7\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">xcomp</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M1440.0,354.0 L1448.0,342.0 1432.0,342.0\" fill=\"currentColor\"/>\n",
        "</g>\n",
@@ -309,14 +458,14 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 4,
+   "execution_count": 67,
    "id": "c5291b44-7837-4020-afe3-ad77ecd686ec",
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/html": [
-       "<span class=\"tex2jax_ignore\"><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xml:lang=\"en\" id=\"4168faadda2349269575019d6c7ff7ad-0\" class=\"displacy\" width=\"1450\" height=\"487.0\" direction=\"ltr\" style=\"max-width: none; height: 487.0px; color: #000000; background: #ffffff; font-family: Arial; direction: ltr\">\n",
+       "<span class=\"tex2jax_ignore\"><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xml:lang=\"en\" id=\"156159d7e6074a84a3efbc120ab0ab5d-0\" class=\"displacy\" width=\"1450\" height=\"487.0\" direction=\"ltr\" style=\"max-width: none; height: 487.0px; color: #000000; background: #ffffff; font-family: Arial; direction: ltr\">\n",
        "<text class=\"displacy-token\" fill=\"currentColor\" text-anchor=\"middle\" y=\"397.0\">\n",
        "    <tspan class=\"displacy-word\" fill=\"currentColor\" x=\"50\">RCP</tspan>\n",
        "    <tspan class=\"displacy-tag\" dy=\"2em\" fill=\"currentColor\" x=\"50\">NOUN</tspan>\n",
@@ -358,57 +507,57 @@
        "</text>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-4168faadda2349269575019d6c7ff7ad-0-0\" stroke-width=\"2px\" d=\"M70,352.0 C70,2.0 750.0,2.0 750.0,352.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-156159d7e6074a84a3efbc120ab0ab5d-0-0\" stroke-width=\"2px\" d=\"M70,352.0 C70,2.0 750.0,2.0 750.0,352.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-4168faadda2349269575019d6c7ff7ad-0-0\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-156159d7e6074a84a3efbc120ab0ab5d-0-0\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M70,354.0 L62,342.0 78,342.0\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-4168faadda2349269575019d6c7ff7ad-0-1\" stroke-width=\"2px\" d=\"M245,352.0 C245,89.5 745.0,89.5 745.0,352.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-156159d7e6074a84a3efbc120ab0ab5d-0-1\" stroke-width=\"2px\" d=\"M245,352.0 C245,89.5 745.0,89.5 745.0,352.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-4168faadda2349269575019d6c7ff7ad-0-1\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-156159d7e6074a84a3efbc120ab0ab5d-0-1\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M245,354.0 L237,342.0 253,342.0\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-4168faadda2349269575019d6c7ff7ad-0-2\" stroke-width=\"2px\" d=\"M420,352.0 C420,177.0 740.0,177.0 740.0,352.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-156159d7e6074a84a3efbc120ab0ab5d-0-2\" stroke-width=\"2px\" d=\"M420,352.0 C420,177.0 740.0,177.0 740.0,352.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-4168faadda2349269575019d6c7ff7ad-0-2\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-156159d7e6074a84a3efbc120ab0ab5d-0-2\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M420,354.0 L412,342.0 428,342.0\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-4168faadda2349269575019d6c7ff7ad-0-3\" stroke-width=\"2px\" d=\"M595,352.0 C595,264.5 735.0,264.5 735.0,352.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-156159d7e6074a84a3efbc120ab0ab5d-0-3\" stroke-width=\"2px\" d=\"M595,352.0 C595,264.5 735.0,264.5 735.0,352.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-4168faadda2349269575019d6c7ff7ad-0-3\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-156159d7e6074a84a3efbc120ab0ab5d-0-3\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M595,354.0 L587,342.0 603,342.0\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-4168faadda2349269575019d6c7ff7ad-0-4\" stroke-width=\"2px\" d=\"M770,352.0 C770,177.0 1090.0,177.0 1090.0,352.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-156159d7e6074a84a3efbc120ab0ab5d-0-4\" stroke-width=\"2px\" d=\"M770,352.0 C770,177.0 1090.0,177.0 1090.0,352.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-4168faadda2349269575019d6c7ff7ad-0-4\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">nsubjpass</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-156159d7e6074a84a3efbc120ab0ab5d-0-4\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">nsubjpass</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M770,354.0 L762,342.0 778,342.0\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-4168faadda2349269575019d6c7ff7ad-0-5\" stroke-width=\"2px\" d=\"M945,352.0 C945,264.5 1085.0,264.5 1085.0,352.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-156159d7e6074a84a3efbc120ab0ab5d-0-5\" stroke-width=\"2px\" d=\"M945,352.0 C945,264.5 1085.0,264.5 1085.0,352.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-4168faadda2349269575019d6c7ff7ad-0-5\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">auxpass</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-156159d7e6074a84a3efbc120ab0ab5d-0-5\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">auxpass</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M945,354.0 L937,342.0 953,342.0\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-4168faadda2349269575019d6c7ff7ad-0-6\" stroke-width=\"2px\" d=\"M1120,352.0 C1120,264.5 1260.0,264.5 1260.0,352.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-156159d7e6074a84a3efbc120ab0ab5d-0-6\" stroke-width=\"2px\" d=\"M1120,352.0 C1120,264.5 1260.0,264.5 1260.0,352.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-4168faadda2349269575019d6c7ff7ad-0-6\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">oprd</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-156159d7e6074a84a3efbc120ab0ab5d-0-6\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">oprd</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M1260.0,354.0 L1268.0,342.0 1252.0,342.0\" fill=\"currentColor\"/>\n",
        "</g>\n",
@@ -429,14 +578,35 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 5,
+   "execution_count": 44,
+   "id": "2545f012-dbcd-472b-bb47-c6b55d7ba9a0",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "Pump power supply has been found burnout."
+      ]
+     },
+     "execution_count": 44,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "doc[1:3].doc"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
    "id": "8088fdb8-cf00-4a70-a6c0-265823674aad",
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/html": [
-       "<span class=\"tex2jax_ignore\"><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xml:lang=\"en\" id=\"a4dd27b6772149b1822c8a5d9e28255f-0\" class=\"displacy\" width=\"1275\" height=\"399.5\" direction=\"ltr\" style=\"max-width: none; height: 399.5px; color: #000000; background: #ffffff; font-family: Arial; direction: ltr\">\n",
+       "<span class=\"tex2jax_ignore\"><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xml:lang=\"en\" id=\"762b586fdd004835a505fad7add489ae-0\" class=\"displacy\" width=\"1275\" height=\"399.5\" direction=\"ltr\" style=\"max-width: none; height: 399.5px; color: #000000; background: #ffffff; font-family: Arial; direction: ltr\">\n",
        "<text class=\"displacy-token\" fill=\"currentColor\" text-anchor=\"middle\" y=\"309.5\">\n",
        "    <tspan class=\"displacy-word\" fill=\"currentColor\" x=\"50\">Rupture</tspan>\n",
        "    <tspan class=\"displacy-tag\" dy=\"2em\" fill=\"currentColor\" x=\"50\">NOUN</tspan>\n",
@@ -473,49 +643,49 @@
        "</text>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-a4dd27b6772149b1822c8a5d9e28255f-0-0\" stroke-width=\"2px\" d=\"M70,264.5 C70,2.0 750.0,2.0 750.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-762b586fdd004835a505fad7add489ae-0-0\" stroke-width=\"2px\" d=\"M70,264.5 C70,2.0 750.0,2.0 750.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-a4dd27b6772149b1822c8a5d9e28255f-0-0\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">nsubj</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-762b586fdd004835a505fad7add489ae-0-0\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">nsubj</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M70,266.5 L62,254.5 78,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-a4dd27b6772149b1822c8a5d9e28255f-0-1\" stroke-width=\"2px\" d=\"M70,264.5 C70,177.0 215.0,177.0 215.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-762b586fdd004835a505fad7add489ae-0-1\" stroke-width=\"2px\" d=\"M70,264.5 C70,177.0 215.0,177.0 215.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-a4dd27b6772149b1822c8a5d9e28255f-0-1\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">prep</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-762b586fdd004835a505fad7add489ae-0-1\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">prep</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M215.0,266.5 L223.0,254.5 207.0,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-a4dd27b6772149b1822c8a5d9e28255f-0-2\" stroke-width=\"2px\" d=\"M420,264.5 C420,177.0 565.0,177.0 565.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-762b586fdd004835a505fad7add489ae-0-2\" stroke-width=\"2px\" d=\"M420,264.5 C420,177.0 565.0,177.0 565.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-a4dd27b6772149b1822c8a5d9e28255f-0-2\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-762b586fdd004835a505fad7add489ae-0-2\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M420,266.5 L412,254.5 428,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-a4dd27b6772149b1822c8a5d9e28255f-0-3\" stroke-width=\"2px\" d=\"M245,264.5 C245,89.5 570.0,89.5 570.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-762b586fdd004835a505fad7add489ae-0-3\" stroke-width=\"2px\" d=\"M245,264.5 C245,89.5 570.0,89.5 570.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-a4dd27b6772149b1822c8a5d9e28255f-0-3\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">pobj</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-762b586fdd004835a505fad7add489ae-0-3\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">pobj</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M570.0,266.5 L578.0,254.5 562.0,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-a4dd27b6772149b1822c8a5d9e28255f-0-4\" stroke-width=\"2px\" d=\"M945,264.5 C945,177.0 1090.0,177.0 1090.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-762b586fdd004835a505fad7add489ae-0-4\" stroke-width=\"2px\" d=\"M945,264.5 C945,177.0 1090.0,177.0 1090.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-a4dd27b6772149b1822c8a5d9e28255f-0-4\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-762b586fdd004835a505fad7add489ae-0-4\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M945,266.5 L937,254.5 953,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-a4dd27b6772149b1822c8a5d9e28255f-0-5\" stroke-width=\"2px\" d=\"M770,264.5 C770,89.5 1095.0,89.5 1095.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-762b586fdd004835a505fad7add489ae-0-5\" stroke-width=\"2px\" d=\"M770,264.5 C770,89.5 1095.0,89.5 1095.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-a4dd27b6772149b1822c8a5d9e28255f-0-5\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">dobj</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-762b586fdd004835a505fad7add489ae-0-5\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">dobj</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M1095.0,266.5 L1103.0,254.5 1087.0,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
@@ -552,14 +722,14 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 6,
+   "execution_count": 7,
    "id": "a1c0fbce-e83d-409b-a773-7b004b864ee0",
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/html": [
-       "<span class=\"tex2jax_ignore\"><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xml:lang=\"en\" id=\"8774b3db8d0746c1a39ab0ee089c6294-0\" class=\"displacy\" width=\"1975\" height=\"399.5\" direction=\"ltr\" style=\"max-width: none; height: 399.5px; color: #000000; background: #ffffff; font-family: Arial; direction: ltr\">\n",
+       "<span class=\"tex2jax_ignore\"><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xml:lang=\"en\" id=\"055d262765ba4a16bf1195d509a338eb-0\" class=\"displacy\" width=\"1975\" height=\"399.5\" direction=\"ltr\" style=\"max-width: none; height: 399.5px; color: #000000; background: #ffffff; font-family: Arial; direction: ltr\">\n",
        "<text class=\"displacy-token\" fill=\"currentColor\" text-anchor=\"middle\" y=\"309.5\">\n",
        "    <tspan class=\"displacy-word\" fill=\"currentColor\" x=\"50\">Rupture</tspan>\n",
        "    <tspan class=\"displacy-tag\" dy=\"2em\" fill=\"currentColor\" x=\"50\">NOUN</tspan>\n",
@@ -616,81 +786,81 @@
        "</text>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-8774b3db8d0746c1a39ab0ee089c6294-0-0\" stroke-width=\"2px\" d=\"M70,264.5 C70,2.0 750.0,2.0 750.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-055d262765ba4a16bf1195d509a338eb-0-0\" stroke-width=\"2px\" d=\"M70,264.5 C70,2.0 750.0,2.0 750.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-8774b3db8d0746c1a39ab0ee089c6294-0-0\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">nsubj</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-055d262765ba4a16bf1195d509a338eb-0-0\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">nsubj</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M70,266.5 L62,254.5 78,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-8774b3db8d0746c1a39ab0ee089c6294-0-1\" stroke-width=\"2px\" d=\"M70,264.5 C70,177.0 215.0,177.0 215.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-055d262765ba4a16bf1195d509a338eb-0-1\" stroke-width=\"2px\" d=\"M70,264.5 C70,177.0 215.0,177.0 215.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-8774b3db8d0746c1a39ab0ee089c6294-0-1\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">prep</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-055d262765ba4a16bf1195d509a338eb-0-1\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">prep</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M215.0,266.5 L223.0,254.5 207.0,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-8774b3db8d0746c1a39ab0ee089c6294-0-2\" stroke-width=\"2px\" d=\"M420,264.5 C420,177.0 565.0,177.0 565.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-055d262765ba4a16bf1195d509a338eb-0-2\" stroke-width=\"2px\" d=\"M420,264.5 C420,177.0 565.0,177.0 565.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-8774b3db8d0746c1a39ab0ee089c6294-0-2\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-055d262765ba4a16bf1195d509a338eb-0-2\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M420,266.5 L412,254.5 428,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-8774b3db8d0746c1a39ab0ee089c6294-0-3\" stroke-width=\"2px\" d=\"M245,264.5 C245,89.5 570.0,89.5 570.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-055d262765ba4a16bf1195d509a338eb-0-3\" stroke-width=\"2px\" d=\"M245,264.5 C245,89.5 570.0,89.5 570.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-8774b3db8d0746c1a39ab0ee089c6294-0-3\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">pobj</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-055d262765ba4a16bf1195d509a338eb-0-3\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">pobj</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M570.0,266.5 L578.0,254.5 562.0,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-8774b3db8d0746c1a39ab0ee089c6294-0-4\" stroke-width=\"2px\" d=\"M945,264.5 C945,177.0 1090.0,177.0 1090.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-055d262765ba4a16bf1195d509a338eb-0-4\" stroke-width=\"2px\" d=\"M945,264.5 C945,177.0 1090.0,177.0 1090.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-8774b3db8d0746c1a39ab0ee089c6294-0-4\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-055d262765ba4a16bf1195d509a338eb-0-4\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M945,266.5 L937,254.5 953,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-8774b3db8d0746c1a39ab0ee089c6294-0-5\" stroke-width=\"2px\" d=\"M770,264.5 C770,89.5 1095.0,89.5 1095.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-055d262765ba4a16bf1195d509a338eb-0-5\" stroke-width=\"2px\" d=\"M770,264.5 C770,89.5 1095.0,89.5 1095.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-8774b3db8d0746c1a39ab0ee089c6294-0-5\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">dobj</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-055d262765ba4a16bf1195d509a338eb-0-5\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">dobj</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M1095.0,266.5 L1103.0,254.5 1087.0,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-8774b3db8d0746c1a39ab0ee089c6294-0-6\" stroke-width=\"2px\" d=\"M1120,264.5 C1120,177.0 1265.0,177.0 1265.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-055d262765ba4a16bf1195d509a338eb-0-6\" stroke-width=\"2px\" d=\"M1120,264.5 C1120,177.0 1265.0,177.0 1265.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-8774b3db8d0746c1a39ab0ee089c6294-0-6\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">cc</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-055d262765ba4a16bf1195d509a338eb-0-6\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">cc</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M1265.0,266.5 L1273.0,254.5 1257.0,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-8774b3db8d0746c1a39ab0ee089c6294-0-7\" stroke-width=\"2px\" d=\"M1470,264.5 C1470,89.5 1795.0,89.5 1795.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-055d262765ba4a16bf1195d509a338eb-0-7\" stroke-width=\"2px\" d=\"M1470,264.5 C1470,89.5 1795.0,89.5 1795.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-8774b3db8d0746c1a39ab0ee089c6294-0-7\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">amod</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-055d262765ba4a16bf1195d509a338eb-0-7\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">amod</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M1470,266.5 L1462,254.5 1478,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-8774b3db8d0746c1a39ab0ee089c6294-0-8\" stroke-width=\"2px\" d=\"M1645,264.5 C1645,177.0 1790.0,177.0 1790.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-055d262765ba4a16bf1195d509a338eb-0-8\" stroke-width=\"2px\" d=\"M1645,264.5 C1645,177.0 1790.0,177.0 1790.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-8774b3db8d0746c1a39ab0ee089c6294-0-8\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-055d262765ba4a16bf1195d509a338eb-0-8\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M1645,266.5 L1637,254.5 1653,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-8774b3db8d0746c1a39ab0ee089c6294-0-9\" stroke-width=\"2px\" d=\"M1120,264.5 C1120,2.0 1800.0,2.0 1800.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-055d262765ba4a16bf1195d509a338eb-0-9\" stroke-width=\"2px\" d=\"M1120,264.5 C1120,2.0 1800.0,2.0 1800.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-8774b3db8d0746c1a39ab0ee089c6294-0-9\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">conj</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-055d262765ba4a16bf1195d509a338eb-0-9\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">conj</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M1800.0,266.5 L1808.0,254.5 1792.0,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
@@ -711,14 +881,14 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 7,
+   "execution_count": 24,
    "id": "6b88be2e-4bc0-4666-a9a3-152036b4dc9a",
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/html": [
-       "<span class=\"tex2jax_ignore\"><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xml:lang=\"en\" id=\"d7b6c16229b0405a88df9827a246f8c7-0\" class=\"displacy\" width=\"1275\" height=\"399.5\" direction=\"ltr\" style=\"max-width: none; height: 399.5px; color: #000000; background: #ffffff; font-family: Arial; direction: ltr\">\n",
+       "<span class=\"tex2jax_ignore\"><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xml:lang=\"en\" id=\"a2c238817ac04c8f9566657d91e6352f-0\" class=\"displacy\" width=\"1275\" height=\"399.5\" direction=\"ltr\" style=\"max-width: none; height: 399.5px; color: #000000; background: #ffffff; font-family: Arial; direction: ltr\">\n",
        "<text class=\"displacy-token\" fill=\"currentColor\" text-anchor=\"middle\" y=\"309.5\">\n",
        "    <tspan class=\"displacy-word\" fill=\"currentColor\" x=\"50\">Pump</tspan>\n",
        "    <tspan class=\"displacy-tag\" dy=\"2em\" fill=\"currentColor\" x=\"50\">NOUN</tspan>\n",
@@ -755,49 +925,49 @@
        "</text>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-d7b6c16229b0405a88df9827a246f8c7-0-0\" stroke-width=\"2px\" d=\"M70,264.5 C70,89.5 395.0,89.5 395.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-a2c238817ac04c8f9566657d91e6352f-0-0\" stroke-width=\"2px\" d=\"M70,264.5 C70,89.5 395.0,89.5 395.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-d7b6c16229b0405a88df9827a246f8c7-0-0\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-a2c238817ac04c8f9566657d91e6352f-0-0\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M70,266.5 L62,254.5 78,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-d7b6c16229b0405a88df9827a246f8c7-0-1\" stroke-width=\"2px\" d=\"M245,264.5 C245,177.0 390.0,177.0 390.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-a2c238817ac04c8f9566657d91e6352f-0-1\" stroke-width=\"2px\" d=\"M245,264.5 C245,177.0 390.0,177.0 390.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-d7b6c16229b0405a88df9827a246f8c7-0-1\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-a2c238817ac04c8f9566657d91e6352f-0-1\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M245,266.5 L237,254.5 253,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-d7b6c16229b0405a88df9827a246f8c7-0-2\" stroke-width=\"2px\" d=\"M420,264.5 C420,2.0 925.0,2.0 925.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-a2c238817ac04c8f9566657d91e6352f-0-2\" stroke-width=\"2px\" d=\"M420,264.5 C420,2.0 925.0,2.0 925.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-d7b6c16229b0405a88df9827a246f8c7-0-2\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">nsubjpass</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-a2c238817ac04c8f9566657d91e6352f-0-2\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">nsubjpass</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M420,266.5 L412,254.5 428,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-d7b6c16229b0405a88df9827a246f8c7-0-3\" stroke-width=\"2px\" d=\"M595,264.5 C595,89.5 920.0,89.5 920.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-a2c238817ac04c8f9566657d91e6352f-0-3\" stroke-width=\"2px\" d=\"M595,264.5 C595,89.5 920.0,89.5 920.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-d7b6c16229b0405a88df9827a246f8c7-0-3\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">aux</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-a2c238817ac04c8f9566657d91e6352f-0-3\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">aux</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M595,266.5 L587,254.5 603,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-d7b6c16229b0405a88df9827a246f8c7-0-4\" stroke-width=\"2px\" d=\"M770,264.5 C770,177.0 915.0,177.0 915.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-a2c238817ac04c8f9566657d91e6352f-0-4\" stroke-width=\"2px\" d=\"M770,264.5 C770,177.0 915.0,177.0 915.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-d7b6c16229b0405a88df9827a246f8c7-0-4\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">auxpass</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-a2c238817ac04c8f9566657d91e6352f-0-4\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">auxpass</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M770,266.5 L762,254.5 778,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-d7b6c16229b0405a88df9827a246f8c7-0-5\" stroke-width=\"2px\" d=\"M945,264.5 C945,177.0 1090.0,177.0 1090.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-a2c238817ac04c8f9566657d91e6352f-0-5\" stroke-width=\"2px\" d=\"M945,264.5 C945,177.0 1090.0,177.0 1090.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-d7b6c16229b0405a88df9827a246f8c7-0-5\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">dobj</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-a2c238817ac04c8f9566657d91e6352f-0-5\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">dobj</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M1090.0,266.5 L1098.0,254.5 1082.0,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
@@ -818,14 +988,36 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 8,
+   "execution_count": 28,
+   "id": "2d5c35f2-2644-441c-b835-995c9743e69e",
+   "metadata": {},
+   "outputs": [
+    {
+     "ename": "AttributeError",
+     "evalue": "'spacy.tokens.span.Span' object has no attribute 'head'",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[0;31mAttributeError\u001b[0m                            Traceback (most recent call last)",
+      "Input \u001b[0;32mIn [28]\u001b[0m, in \u001b[0;36m<cell line: 1>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mdoc\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m1\u001b[39;49m\u001b[43m:\u001b[49m\u001b[38;5;241;43m3\u001b[39;49m\u001b[43m]\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mhead\u001b[49m\n",
+      "\u001b[0;31mAttributeError\u001b[0m: 'spacy.tokens.span.Span' object has no attribute 'head'"
+     ]
+    }
+   ],
+   "source": [
+    "doc[1:3].head"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 19,
    "id": "eb83e155-b8ab-4765-8d55-079ed9563a4c",
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/html": [
-       "<span class=\"tex2jax_ignore\"><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xml:lang=\"en\" id=\"fa618a03b02e49508b6077c8820f0142-0\" class=\"displacy\" width=\"1450\" height=\"312.0\" direction=\"ltr\" style=\"max-width: none; height: 312.0px; color: #000000; background: #ffffff; font-family: Arial; direction: ltr\">\n",
+       "<span class=\"tex2jax_ignore\"><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xml:lang=\"en\" id=\"7778f5ac72c448b5861e7e92b7be5876-0\" class=\"displacy\" width=\"1450\" height=\"312.0\" direction=\"ltr\" style=\"max-width: none; height: 312.0px; color: #000000; background: #ffffff; font-family: Arial; direction: ltr\">\n",
        "<text class=\"displacy-token\" fill=\"currentColor\" text-anchor=\"middle\" y=\"222.0\">\n",
        "    <tspan class=\"displacy-word\" fill=\"currentColor\" x=\"50\">Pump</tspan>\n",
        "    <tspan class=\"displacy-tag\" dy=\"2em\" fill=\"currentColor\" x=\"50\">NOUN</tspan>\n",
@@ -867,57 +1059,57 @@
        "</text>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-fa618a03b02e49508b6077c8820f0142-0-0\" stroke-width=\"2px\" d=\"M70,177.0 C70,89.5 220.0,89.5 220.0,177.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-7778f5ac72c448b5861e7e92b7be5876-0-0\" stroke-width=\"2px\" d=\"M70,177.0 C70,89.5 220.0,89.5 220.0,177.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-fa618a03b02e49508b6077c8820f0142-0-0\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-7778f5ac72c448b5861e7e92b7be5876-0-0\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M70,179.0 L62,167.0 78,167.0\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-fa618a03b02e49508b6077c8820f0142-0-1\" stroke-width=\"2px\" d=\"M245,177.0 C245,89.5 395.0,89.5 395.0,177.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-7778f5ac72c448b5861e7e92b7be5876-0-1\" stroke-width=\"2px\" d=\"M245,177.0 C245,89.5 395.0,89.5 395.0,177.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-fa618a03b02e49508b6077c8820f0142-0-1\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">nsubj</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-7778f5ac72c448b5861e7e92b7be5876-0-1\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">nsubj</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M245,179.0 L237,167.0 253,167.0\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-fa618a03b02e49508b6077c8820f0142-0-2\" stroke-width=\"2px\" d=\"M420,177.0 C420,89.5 570.0,89.5 570.0,177.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-7778f5ac72c448b5861e7e92b7be5876-0-2\" stroke-width=\"2px\" d=\"M420,177.0 C420,89.5 570.0,89.5 570.0,177.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-fa618a03b02e49508b6077c8820f0142-0-2\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">prep</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-7778f5ac72c448b5861e7e92b7be5876-0-2\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">prep</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M570.0,179.0 L578.0,167.0 562.0,167.0\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-fa618a03b02e49508b6077c8820f0142-0-3\" stroke-width=\"2px\" d=\"M595,177.0 C595,89.5 745.0,89.5 745.0,177.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-7778f5ac72c448b5861e7e92b7be5876-0-3\" stroke-width=\"2px\" d=\"M595,177.0 C595,89.5 745.0,89.5 745.0,177.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-fa618a03b02e49508b6077c8820f0142-0-3\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">pcomp</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-7778f5ac72c448b5861e7e92b7be5876-0-3\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">pcomp</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M745.0,179.0 L753.0,167.0 737.0,167.0\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-fa618a03b02e49508b6077c8820f0142-0-4\" stroke-width=\"2px\" d=\"M945,177.0 C945,89.5 1095.0,89.5 1095.0,177.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-7778f5ac72c448b5861e7e92b7be5876-0-4\" stroke-width=\"2px\" d=\"M945,177.0 C945,89.5 1095.0,89.5 1095.0,177.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-fa618a03b02e49508b6077c8820f0142-0-4\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-7778f5ac72c448b5861e7e92b7be5876-0-4\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M945,179.0 L937,167.0 953,167.0\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-fa618a03b02e49508b6077c8820f0142-0-5\" stroke-width=\"2px\" d=\"M1120,177.0 C1120,89.5 1270.0,89.5 1270.0,177.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-7778f5ac72c448b5861e7e92b7be5876-0-5\" stroke-width=\"2px\" d=\"M1120,177.0 C1120,89.5 1270.0,89.5 1270.0,177.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-fa618a03b02e49508b6077c8820f0142-0-5\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-7778f5ac72c448b5861e7e92b7be5876-0-5\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M1120,179.0 L1112,167.0 1128,167.0\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-fa618a03b02e49508b6077c8820f0142-0-6\" stroke-width=\"2px\" d=\"M595,177.0 C595,2.0 1275.0,2.0 1275.0,177.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-7778f5ac72c448b5861e7e92b7be5876-0-6\" stroke-width=\"2px\" d=\"M595,177.0 C595,2.0 1275.0,2.0 1275.0,177.0\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-fa618a03b02e49508b6077c8820f0142-0-6\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">pobj</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-7778f5ac72c448b5861e7e92b7be5876-0-6\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">pobj</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M1275.0,179.0 L1283.0,167.0 1267.0,167.0\" fill=\"currentColor\"/>\n",
        "</g>\n",
@@ -938,14 +1130,35 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 9,
+   "execution_count": 23,
+   "id": "b7bd37b5-1772-45f3-bcad-51d5feccb539",
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "[supply]"
+      ]
+     },
+     "execution_count": 23,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "list(doc[-2].lefts)\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
    "id": "97b25af6-9205-4fd1-9671-015813878c16",
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/html": [
-       "<span class=\"tex2jax_ignore\"><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xml:lang=\"en\" id=\"17d57425781a4c0d866ceb75dd745205-0\" class=\"displacy\" width=\"1100\" height=\"399.5\" direction=\"ltr\" style=\"max-width: none; height: 399.5px; color: #000000; background: #ffffff; font-family: Arial; direction: ltr\">\n",
+       "<span class=\"tex2jax_ignore\"><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xml:lang=\"en\" id=\"bb62103e216c4453ba3b6611b19529f6-0\" class=\"displacy\" width=\"1100\" height=\"399.5\" direction=\"ltr\" style=\"max-width: none; height: 399.5px; color: #000000; background: #ffffff; font-family: Arial; direction: ltr\">\n",
        "<text class=\"displacy-token\" fill=\"currentColor\" text-anchor=\"middle\" y=\"309.5\">\n",
        "    <tspan class=\"displacy-word\" fill=\"currentColor\" x=\"50\">Pump</tspan>\n",
        "    <tspan class=\"displacy-tag\" dy=\"2em\" fill=\"currentColor\" x=\"50\">NOUN</tspan>\n",
@@ -977,41 +1190,41 @@
        "</text>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-17d57425781a4c0d866ceb75dd745205-0-0\" stroke-width=\"2px\" d=\"M70,264.5 C70,177.0 215.0,177.0 215.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-bb62103e216c4453ba3b6611b19529f6-0-0\" stroke-width=\"2px\" d=\"M70,264.5 C70,177.0 215.0,177.0 215.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-17d57425781a4c0d866ceb75dd745205-0-0\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-bb62103e216c4453ba3b6611b19529f6-0-0\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M70,266.5 L62,254.5 78,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-17d57425781a4c0d866ceb75dd745205-0-1\" stroke-width=\"2px\" d=\"M245,264.5 C245,177.0 390.0,177.0 390.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-bb62103e216c4453ba3b6611b19529f6-0-1\" stroke-width=\"2px\" d=\"M245,264.5 C245,177.0 390.0,177.0 390.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-17d57425781a4c0d866ceb75dd745205-0-1\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">nsubj</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-bb62103e216c4453ba3b6611b19529f6-0-1\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">nsubj</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M245,266.5 L237,254.5 253,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-17d57425781a4c0d866ceb75dd745205-0-2\" stroke-width=\"2px\" d=\"M595,264.5 C595,89.5 920.0,89.5 920.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-bb62103e216c4453ba3b6611b19529f6-0-2\" stroke-width=\"2px\" d=\"M595,264.5 C595,89.5 920.0,89.5 920.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-17d57425781a4c0d866ceb75dd745205-0-2\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">amod</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-bb62103e216c4453ba3b6611b19529f6-0-2\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">amod</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M595,266.5 L587,254.5 603,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-17d57425781a4c0d866ceb75dd745205-0-3\" stroke-width=\"2px\" d=\"M770,264.5 C770,177.0 915.0,177.0 915.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-bb62103e216c4453ba3b6611b19529f6-0-3\" stroke-width=\"2px\" d=\"M770,264.5 C770,177.0 915.0,177.0 915.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-17d57425781a4c0d866ceb75dd745205-0-3\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-bb62103e216c4453ba3b6611b19529f6-0-3\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M770,266.5 L762,254.5 778,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-17d57425781a4c0d866ceb75dd745205-0-4\" stroke-width=\"2px\" d=\"M420,264.5 C420,2.0 925.0,2.0 925.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-bb62103e216c4453ba3b6611b19529f6-0-4\" stroke-width=\"2px\" d=\"M420,264.5 C420,2.0 925.0,2.0 925.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-17d57425781a4c0d866ceb75dd745205-0-4\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">dobj</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-bb62103e216c4453ba3b6611b19529f6-0-4\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">dobj</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M925.0,266.5 L933.0,254.5 917.0,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
@@ -1032,14 +1245,14 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 10,
+   "execution_count": 11,
    "id": "ef6548b1-6f29-4ecf-9d02-6cd37eaf9cdc",
    "metadata": {},
    "outputs": [
     {
      "data": {
       "text/html": [
-       "<span class=\"tex2jax_ignore\"><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xml:lang=\"en\" id=\"d89dee0654f14849909af4b60e74de0f-0\" class=\"displacy\" width=\"1800\" height=\"399.5\" direction=\"ltr\" style=\"max-width: none; height: 399.5px; color: #000000; background: #ffffff; font-family: Arial; direction: ltr\">\n",
+       "<span class=\"tex2jax_ignore\"><svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" xml:lang=\"en\" id=\"47629e8a78cb4e67873d742d62550572-0\" class=\"displacy\" width=\"1800\" height=\"399.5\" direction=\"ltr\" style=\"max-width: none; height: 399.5px; color: #000000; background: #ffffff; font-family: Arial; direction: ltr\">\n",
        "<text class=\"displacy-token\" fill=\"currentColor\" text-anchor=\"middle\" y=\"309.5\">\n",
        "    <tspan class=\"displacy-word\" fill=\"currentColor\" x=\"50\">Pump</tspan>\n",
        "    <tspan class=\"displacy-tag\" dy=\"2em\" fill=\"currentColor\" x=\"50\">NOUN</tspan>\n",
@@ -1091,73 +1304,73 @@
        "</text>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-d89dee0654f14849909af4b60e74de0f-0-0\" stroke-width=\"2px\" d=\"M70,264.5 C70,177.0 215.0,177.0 215.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-47629e8a78cb4e67873d742d62550572-0-0\" stroke-width=\"2px\" d=\"M70,264.5 C70,177.0 215.0,177.0 215.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-d89dee0654f14849909af4b60e74de0f-0-0\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-47629e8a78cb4e67873d742d62550572-0-0\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M70,266.5 L62,254.5 78,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-d89dee0654f14849909af4b60e74de0f-0-1\" stroke-width=\"2px\" d=\"M245,264.5 C245,177.0 390.0,177.0 390.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-47629e8a78cb4e67873d742d62550572-0-1\" stroke-width=\"2px\" d=\"M245,264.5 C245,177.0 390.0,177.0 390.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-d89dee0654f14849909af4b60e74de0f-0-1\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">nsubj</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-47629e8a78cb4e67873d742d62550572-0-1\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">nsubj</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M245,266.5 L237,254.5 253,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-d89dee0654f14849909af4b60e74de0f-0-2\" stroke-width=\"2px\" d=\"M595,264.5 C595,89.5 920.0,89.5 920.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-47629e8a78cb4e67873d742d62550572-0-2\" stroke-width=\"2px\" d=\"M595,264.5 C595,89.5 920.0,89.5 920.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-d89dee0654f14849909af4b60e74de0f-0-2\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">amod</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-47629e8a78cb4e67873d742d62550572-0-2\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">amod</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M595,266.5 L587,254.5 603,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-d89dee0654f14849909af4b60e74de0f-0-3\" stroke-width=\"2px\" d=\"M770,264.5 C770,177.0 915.0,177.0 915.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-47629e8a78cb4e67873d742d62550572-0-3\" stroke-width=\"2px\" d=\"M770,264.5 C770,177.0 915.0,177.0 915.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-d89dee0654f14849909af4b60e74de0f-0-3\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-47629e8a78cb4e67873d742d62550572-0-3\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">compound</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M770,266.5 L762,254.5 778,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-d89dee0654f14849909af4b60e74de0f-0-4\" stroke-width=\"2px\" d=\"M945,264.5 C945,177.0 1090.0,177.0 1090.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-47629e8a78cb4e67873d742d62550572-0-4\" stroke-width=\"2px\" d=\"M945,264.5 C945,177.0 1090.0,177.0 1090.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-d89dee0654f14849909af4b60e74de0f-0-4\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">nsubj</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-47629e8a78cb4e67873d742d62550572-0-4\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">nsubj</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M945,266.5 L937,254.5 953,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-d89dee0654f14849909af4b60e74de0f-0-5\" stroke-width=\"2px\" d=\"M420,264.5 C420,2.0 1100.0,2.0 1100.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-47629e8a78cb4e67873d742d62550572-0-5\" stroke-width=\"2px\" d=\"M420,264.5 C420,2.0 1100.0,2.0 1100.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-d89dee0654f14849909af4b60e74de0f-0-5\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">ccomp</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-47629e8a78cb4e67873d742d62550572-0-5\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">ccomp</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M1100.0,266.5 L1108.0,254.5 1092.0,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-d89dee0654f14849909af4b60e74de0f-0-6\" stroke-width=\"2px\" d=\"M1120,264.5 C1120,177.0 1265.0,177.0 1265.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-47629e8a78cb4e67873d742d62550572-0-6\" stroke-width=\"2px\" d=\"M1120,264.5 C1120,177.0 1265.0,177.0 1265.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-d89dee0654f14849909af4b60e74de0f-0-6\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">prep</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-47629e8a78cb4e67873d742d62550572-0-6\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">prep</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M1265.0,266.5 L1273.0,254.5 1257.0,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-d89dee0654f14849909af4b60e74de0f-0-7\" stroke-width=\"2px\" d=\"M1295,264.5 C1295,177.0 1440.0,177.0 1440.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-47629e8a78cb4e67873d742d62550572-0-7\" stroke-width=\"2px\" d=\"M1295,264.5 C1295,177.0 1440.0,177.0 1440.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-d89dee0654f14849909af4b60e74de0f-0-7\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">pcomp</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-47629e8a78cb4e67873d742d62550572-0-7\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">pcomp</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M1440.0,266.5 L1448.0,254.5 1432.0,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
        "\n",
        "<g class=\"displacy-arrow\">\n",
-       "    <path class=\"displacy-arc\" id=\"arrow-d89dee0654f14849909af4b60e74de0f-0-8\" stroke-width=\"2px\" d=\"M1295,264.5 C1295,89.5 1620.0,89.5 1620.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
+       "    <path class=\"displacy-arc\" id=\"arrow-47629e8a78cb4e67873d742d62550572-0-8\" stroke-width=\"2px\" d=\"M1295,264.5 C1295,89.5 1620.0,89.5 1620.0,264.5\" fill=\"none\" stroke=\"currentColor\"/>\n",
        "    <text dy=\"1.25em\" style=\"font-size: 0.8em; letter-spacing: 1px\">\n",
-       "        <textPath xlink:href=\"#arrow-d89dee0654f14849909af4b60e74de0f-0-8\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">pobj</textPath>\n",
+       "        <textPath xlink:href=\"#arrow-47629e8a78cb4e67873d742d62550572-0-8\" class=\"displacy-label\" startOffset=\"50%\" side=\"left\" fill=\"currentColor\" text-anchor=\"middle\">pobj</textPath>\n",
        "    </text>\n",
        "    <path class=\"displacy-arrowhead\" d=\"M1620.0,266.5 L1628.0,254.5 1612.0,254.5\" fill=\"currentColor\"/>\n",
        "</g>\n",
@@ -1178,7 +1391,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 11,
+   "execution_count": 15,
    "id": "0230e7cf-edf9-4d9a-966f-4bf0c3b6bc3f",
    "metadata": {},
    "outputs": [
@@ -1210,7 +1423,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 12,
+   "execution_count": 13,
    "id": "e3286b6e-7d3c-43e1-8ced-9b4f9e112d92",
    "metadata": {},
    "outputs": [
@@ -1262,7 +1475,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 13,
+   "execution_count": 14,
    "id": "97a722e9-403c-40c0-a3b0-8aa151b55462",
    "metadata": {},
    "outputs": [


Test patch:
diff --git a/src/nlp/tests/LER/entity.csv b/src/nlp/tests/LER/entity.csv
index 24ed8a3..5e8c17b 100644
--- a/src/nlp/tests/LER/entity.csv
+++ b/src/nlp/tests/LER/entity.csv
@@ -26,6 +26,7 @@ FU
 FNM-5
 steam dump control relay
 SDCR
+SDCR relay
 coil
 CL
 fuse
@@ -37,3 +38,8 @@ steam dump control relay coil
 relay coil
 IM13-1
 electrical coil
+turbine bypass valve
+bypass system
+Bussmann fuse Fuz/IM13-1
+fuse FUZ/IM13-1
+main condenser
diff --git a/src/nlp/tests/LER/output_health_status_gold.csv b/src/nlp/tests/LER/output_health_status_gold.csv
index e1ac177..aa955b4 100644
--- a/src/nlp/tests/LER/output_health_status_gold.csv
+++ b/src/nlp/tests/LER/output_health_status_gold.csv
@@ -1,76 +1,71 @@
-,entities,status keywords,health statuses,conjecture
-0,Atmospheric Steam Dump Valves,,Inoperable,False
-1,Relay,,Failure,False
-2,control room,identify,operations,False
-3,steam dump control relay,fail,failed,False
-4,atmospheric steam dump valves,,inoperable,False
-5,relay,,,False
-6,ASDVs,,,False
-7,control room,identify,operators,False
-8,steam dump control relay,fail,valves,False
-9,atmospheric steam dump valves,,,False
-10,steam dump and bypass system,consist,ASDVs,False
-11,ASDVs,,consists,False
-12,turbine,,bypass,False
-13,valve,,,False
-14,condenser,,exhausts,False
-15,ASDVs,,,False
-16,turbine,,,False
-17,valves,,,False
-18,steam flow with reactor,,,False
-19,ASDVs,,The capacity,False
-20,steam safety valves,,lifting,True
-21,turbine,,,False
-22,turbine,,,False
-23,condenser,,,False
-24,steam dump system,,,False
-25,ASDVs,,,False
-26,control room,,controlled,True
-27,control panels,,,False
-28,ASDVs,have,a back-up nitrogen supply,False
-29,steam generator,,control,True
-30,circuit,,,False
-31,fuse,,1,False
-32,IM13-1,,,False
-33,FNM-5,,,False
-34,steam dump control relay coil,,failure,False
-35,fuse,,The opening,False
-36,IM13 scheme,,resulted,False
-37,ASDVs,,the manual operation,False
-38,SDCR,find,have,False
-39,SDCR coil,,failure,False
-40,relay coil,,the age,False
-41,relay,,recommended,False
-42,relay,classify,not 2005,False
-43,relay,,The duty cycle,False
-44,relay,,the normally energized state,False
-45,relay,manufacture,General Electric,False
-46,fuse,,,False
-47,relay,,,False
-48,ASDVs,,,False
-49,ASDVs,,,False
-50,Fuse,,1,False
-51,IM13-1,open,the automatic fast-open function,False
-52,ASDVs,,the manual operation,False
-53,fuse,open,coil,False
-54,SDCR,,relay,False
-55,relay,fail,coil,False
-56,electrical coil,,an internal failure,False
-57,relay coil,,failure,False
-58,relay coil,,the age,False
-59,relay coil,,,False
-60,relay,,the duty cycle,False
-61,relay,,the normally energized state,False
-62,SDCR,,the failure,False
-63,circuit,,,False
-64,relay coil,,circuit,False
-65,IM13 circuit,,was,False
-66,fuse,,FUZ,False
-67,IM13-1,,opening,False
-68,IM13 scheme,,loss,False
-69,ASDVs,,the automatic fast-open function,False
-70,ASDVs,,manual operation,False
-71,fuse,,,False
-72,relay,,,False
-73,relay,revise,The preventive maintenance optimization code,False
-74,relay,prioritize,This action,True
+,entities,status keywords,health statuses,conjecture,sentence
+0,control room,identify,operations,False,"At the Palisades Nuclear Plant, on June 16, 2021, at 1550 EDT, with the plant in Mode 1, at 100% power, operations identified an acrid odor in the control room."
+1,steam dump control relay,,failed,False,"Investigation revealed that the steam dump control relay had failed, rendering all four atmospheric steam dump valves inoperable."
+2,atmospheric steam dump valves,,inoperable,False,"Investigation revealed that the steam dump control relay had failed, rendering all four atmospheric steam dump valves inoperable."
+3,relay,,replaced,False,The relay was replaced and the ASDVs were returned to service.
+4,ASDVs,,service,False,The relay was replaced and the ASDVs were returned to service.
+5,control room,identify,operators,False,"At the Palisades Nuclear Plant, on June 16, 2021, at 1550 EDT, with the plant in Mode 1, at 100% power, operators identified an acrid odor in the control room, suggesting that an electrical component may have failed."
+6,steam dump control relay,,failed,False,"Investigation revealed that the steam dump control relay had failed, rendering all four atmospheric steam dump valves inoperable, and causing an entry into a 24-hour shutdown action statement limiting condition for operation 3.7.4."
+7,atmospheric steam dump valves,,inoperable,False,"Investigation revealed that the steam dump control relay had failed, rendering all four atmospheric steam dump valves inoperable, and causing an entry into a 24-hour shutdown action statement limiting condition for operation 3.7.4."
+8,steam dump and bypass system,,automatically actuated ASDVs,False,"The main steam dump and bypass system consists of four automatically actuated ASDVs which exhaust to atmosphere, and a turbine bypass valve which exhausts to the main condenser."
+9,ASDVs,,automatically actuated,False,"The main steam dump and bypass system consists of four automatically actuated ASDVs which exhaust to atmosphere, and a turbine bypass valve which exhausts to the main condenser."
+10,turbine bypass valve,,automatically actuated,False,"The main steam dump and bypass system consists of four automatically actuated ASDVs which exhaust to atmosphere, and a turbine bypass valve which exhausts to the main condenser."
+11,main condenser,,,False,"The main steam dump and bypass system consists of four automatically actuated ASDVs which exhaust to atmosphere, and a turbine bypass valve which exhausts to the main condenser."
+12,ASDVs,,The total capacities,False,"The total capacities of the ASDVs and turbine bypass valves are 30% and 4.5%, respectively, of steam flow with reactor at full power."
+13,turbine bypass valves,,The total capacities,False,"The total capacities of the ASDVs and turbine bypass valves are 30% and 4.5%, respectively, of steam flow with reactor at full power."
+14,steam flow with reactor,,"30% and 4.5%, respectively,",False,"The total capacities of the ASDVs and turbine bypass valves are 30% and 4.5%, respectively, of steam flow with reactor at full power."
+15,ASDVs,,The capacity,False,The capacity of the ASDVs is adequate to prevent lifting of the main steam safety valves following a turbine and reactor trip.
+16,steam safety valves,,lifting,True,The capacity of the ASDVs is adequate to prevent lifting of the main steam safety valves following a turbine and reactor trip.
+17,turbine,,,False,The capacity of the ASDVs is adequate to prevent lifting of the main steam safety valves following a turbine and reactor trip.
+18,turbine,,bypass,False,The turbine bypass to the main condenser provides for removal of reactor decay heat following reactor shutdown.
+19,main condenser,,The turbine bypass,False,The turbine bypass to the main condenser provides for removal of reactor decay heat following reactor shutdown.
+20,steam dump system,arrange,automatic operation,False,"Although the steam dump system is arranged for automatic operation, the ASDVs may be manually controlled from either control room or engineered safeguards control panels."
+21,ASDVs,,controlled,True,"Although the steam dump system is arranged for automatic operation, the ASDVs may be manually controlled from either control room or engineered safeguards control panels."
+22,control room,,,False,"Although the steam dump system is arranged for automatic operation, the ASDVs may be manually controlled from either control room or engineered safeguards control panels."
+23,control panels,,,False,"Although the steam dump system is arranged for automatic operation, the ASDVs may be manually controlled from either control room or engineered safeguards control panels."
+24,ASDVs,have,a back-up nitrogen supply,False,The ASDVs have a back-up nitrogen supply to allow steam generator pressure control during station blackout.
+25,steam generator,,control,True,The ASDVs have a back-up nitrogen supply to allow steam generator pressure control during station blackout.
+26,circuit,,,False,"Troubleshooting the circuit identified that the Bussmann fuse FUZ/IM13-1, model number FNM-5, was found opened due to the steam dump control relay coil failure."
+27,fuse FUZ/IM13-1,find,opened,False,"Troubleshooting the circuit identified that the Bussmann fuse FUZ/IM13-1, model number FNM-5, was found opened due to the steam dump control relay coil failure."
+28,FNM-5,,,False,"Troubleshooting the circuit identified that the Bussmann fuse FUZ/IM13-1, model number FNM-5, was found opened due to the steam dump control relay coil failure."
+29,steam dump control relay coil,,failure,False,"Troubleshooting the circuit identified that the Bussmann fuse FUZ/IM13-1, model number FNM-5, was found opened due to the steam dump control relay coil failure."
+30,fuse,,The opening,False,"The opening of the fuse resulted in loss of power to the IM13 scheme, which disabled the automatic fast-open function, as well as the manual operation, of the ASDVs."
+31,IM13 scheme,,loss of power,False,"The opening of the fuse resulted in loss of power to the IM13 scheme, which disabled the automatic fast-open function, as well as the manual operation, of the ASDVs."
+32,ASDVs,,the manual operation,False,"The opening of the fuse resulted in loss of power to the IM13 scheme, which disabled the automatic fast-open function, as well as the manual operation, of the ASDVs."
+33,SDCR,find,signs of overheating,True,"Upon further examination, the SDCR was found to have signs of overheating."
+34,SDCR coil,,failure,False,The cause of the SDCR coil failure is overheating due to the age of the relay coil being beyond the vendor recommended life for a normally energized relay.
+35,relay coil,,the age,False,The cause of the SDCR coil failure is overheating due to the age of the relay coil being beyond the vendor recommended life for a normally energized relay.
+36,relay,,normally energized,False,The cause of the SDCR coil failure is overheating due to the age of the relay coil being beyond the vendor recommended life for a normally energized relay.
+37,relay,classify,not 2005,False,The subject relay was not classified properly in 2005 when all safety systems and component classifications were validated.
+38,relay,,The duty cycle,False,"The duty cycle of the relay was set at ""low duty cycle"" when it should have been ""high duty cycle"" due to the normally energized state of the relay."
+39,relay,,the normally energized state,False,"The duty cycle of the relay was set at ""low duty cycle"" when it should have been ""high duty cycle"" due to the normally energized state of the relay."
+40,relay,,General Electric,False,The relay is manufactured by General Electric and is model HFA 12HFA51A49H.
+41,fuse,,replaced,False,The fuse and relay were replaced and the ASDVs were returned to service.
+42,relay,,replaced,False,The fuse and relay were replaced and the ASDVs were returned to service.
+43,ASDVs,,service,False,The fuse and relay were replaced and the ASDVs were returned to service.
+44,ASDVs,,service,False,The elapsed time from the discovery of the failure until the ASDVs were returned to service was approximately 12 hours.
+45,Fuse,,1,False,"Fuse IM13-1 opened, which disabled the automatic fast-open function, as well as the manual operation, of the ASDVs."
+46,IM13-1,,opened,False,"Fuse IM13-1 opened, which disabled the automatic fast-open function, as well as the manual operation, of the ASDVs."
+47,ASDVs,,the manual operation,False,"Fuse IM13-1 opened, which disabled the automatic fast-open function, as well as the manual operation, of the ASDVs."
+48,fuse,,opened,False,The fuse opened because the SDCR relay failed due to an internal failure of the electrical coil.
+49,SDCR relay,fail,an internal failure,False,The fuse opened because the SDCR relay failed due to an internal failure of the electrical coil.
+50,electrical coil,,an internal failure,False,The fuse opened because the SDCR relay failed due to an internal failure of the electrical coil.
+51,relay coil,,failure,False,The cause of the relay coil failure is overheating due to the age of the relay coil being beyond the vendor recommended life.
+52,relay coil,,the age,False,The cause of the relay coil failure is overheating due to the age of the relay coil being beyond the vendor recommended life.
+53,relay coil,,beyond the vendor recommended life,False,"The relay coil was beyond the vendor recommended life because the duty cycle of the relay was set at ""low duty cycle"" when it should have been ""high duty cycle"" due to the normally energized state of the relay."
+54,relay,,the duty cycle,False,"The relay coil was beyond the vendor recommended life because the duty cycle of the relay was set at ""low duty cycle"" when it should have been ""high duty cycle"" due to the normally energized state of the relay."
+55,relay,,the normally energized state,False,"The relay coil was beyond the vendor recommended life because the duty cycle of the relay was set at ""low duty cycle"" when it should have been ""high duty cycle"" due to the normally energized state of the relay."
+56,SDCR,,the failure,False,"The actual consequence of the failure of the SDCR, which was a short-circuit in the relay coil, was overcurrent in the IM13 circuit and opening of fuse FUZ/IM13-1."
+57,circuit,,,False,"The actual consequence of the failure of the SDCR, which was a short-circuit in the relay coil, was overcurrent in the IM13 circuit and opening of fuse FUZ/IM13-1."
+58,relay coil,,a short-circuit,False,"The actual consequence of the failure of the SDCR, which was a short-circuit in the relay coil, was overcurrent in the IM13 circuit and opening of fuse FUZ/IM13-1."
+59,IM13 circuit,,overcurrent,False,"The actual consequence of the failure of the SDCR, which was a short-circuit in the relay coil, was overcurrent in the IM13 circuit and opening of fuse FUZ/IM13-1."
+60,fuse FUZ/IM13-1,,opening,False,"The actual consequence of the failure of the SDCR, which was a short-circuit in the relay coil, was overcurrent in the IM13 circuit and opening of fuse FUZ/IM13-1."
+61,IM13 scheme,,loss of power,False,"This resulted in loss of power to the IM13 scheme, which disables the automatic fast-open function of the ASDVs and disables manual operation of the ASDVs."
+62,ASDVs,,the automatic fast-open function,False,"This resulted in loss of power to the IM13 scheme, which disables the automatic fast-open function of the ASDVs and disables manual operation of the ASDVs."
+63,ASDVs,,manual operation,False,"This resulted in loss of power to the IM13 scheme, which disables the automatic fast-open function of the ASDVs and disables manual operation of the ASDVs."
+64,fuse,,replaced,False,The fuse and relay were replaced.
+65,relay,,replaced,False,The fuse and relay were replaced.
+66,relay,show,,False,The preventive maintenance optimization code is being revised to show the relay as high duty cycle as it is continuously energized.
+67,relay,,This action,True,This action will appropriately prioritize maintenance for the relay and prevent recurrence of this failure.
+68,Atmospheric Steam Dump Valves,,Inoperable,False,Atmospheric Steam Dump Valves Inoperable Due to Relay Failure.
+69,Relay,,Failure,False,Atmospheric Steam Dump Valves Inoperable Due to Relay Failure.
diff --git a/src/nlp/tests/LER/output_health_status_rev5.xlsx b/src/nlp/tests/LER/output_health_status_rev5.xlsx
new file mode 100644
index 0000000..28ec4b1
Binary files /dev/null and b/src/nlp/tests/LER/output_health_status_rev5.xlsx differ