code: public final Span[] nercToSpans(final String[] tokens) {
      final List<Span> neSpans = new ArrayList<Span>();
      for (final Map<String, String> neDict : this.dictionaries
          .getIgnoreCaseDictionaries()) {
        for (final Map.Entry<String, String> neEntry : neDict.entrySet()) {
          final String neForm = neEntry.getKey();
          final String neType = neEntry.getValue();
          final List<Integer> neIds = StringUtils
              .exactTokenFinderIgnoreCase(neForm, tokens);
          if (!neIds.isEmpty()) {
            for (int i = 0; i < neIds.size(); i += 2) {
              final Span neSpan = new Span(neIds.get(i), neIds.get(i + 1),
                  neType);
              neSpans.add(neSpan);
              if (this.debug) {
                System.err.println(neSpans.toString());
              }
            }
          }
        }
      }
      return neSpans.toArray(new Span[neSpans.size()]);
    }
docs: Detects Named Entities in a {@link Dictionaries} by NE type ignoring case.
  
  @param tokens
  the tokenized sentence
  @return spans of the Named Entities