def find_all_subj(sent):
  """
  Find all the subjects that we would like to probe, with corpus-specific heuristic.
  We cannot use a postagger because most of these sentences in synthetic datasets are garden-path sentences.
  It is very likely that a postagger will make mistakes.

  heuristics:
    (1) all the NPs should be preceded by "the"; everything following "the" are NPs;
    (2) in case where "the" is followed by "taxi driver(s)", will use driver;
    (3) will ignore "side".
  """

  idxes = []
  for idx, word in enumerate(sent):
    if word == "the" and sent[idx+1] == "taxi" and sent[idx+2].startswith("driver"):
      idxes.append(idx+2)
    elif word == "the" and sent[idx+1] == "side":
      continue
    elif word == "the":
      idxes.append(idx+1)
  return idxes