class_docstr: Create a doc instance of text, obtain cleaned, readable text and
  metadata from this doc.
  
  Properties:
  raw: incoming, unedited text
  language: 2-letter code for the language of the text
  is_detected_language: is the language detected or specified beforehand
  is_reliable_language: is the language specified or was it reliably detected
  hint_language: language you expect your text to be
  _spacy_nlps: nested dictionary {lang: {model_id: model}} with loaded spacy language modules
docstr: Extract the text and character offset (begin) of words from text
  
  >>> from textpipe.doc import Doc
  >>> doc = Doc('Test sentence for testing text.')
  >>> doc.words
  [('Test', 0), ('sentence', 5), ('for', 14), ('testing', 18), ('text', 26), ('.', 30)]
docstr_tok: ["Extract","the","text","and","character","offset","(","begin",")","of","words","from","text",">",">",">","from","textpipe.doc","import","Doc",">",">",">","doc","=","Doc","(","'Test","sentence","for","testing","text",".","'",")",">",">",">","doc.words","[","(","'Test","'",",","0",")",",","(","'sentence","'",",","5",")",",","(","'for","'",",","14",")",",","(","'testing","'",",","18",")",",","(","'text","'",",","26",")",",","(","'",".","'",",","30",")","]"]
code: def words(self):
      """
      Extract the text and character offset (begin) of words from text
  
      >>> from textpipe.doc import Doc
      >>> doc = Doc('Test sentence for testing text.')
      >>> doc.words
      [('Test', 0), ('sentence', 5), ('for', 14), ('testing', 18), ('text', 26), ('.', 30)]
      """
  
      return [(token.text, token.idx) for token in self._spacy_doc]
  
imports: import functools
  import re
  import unicodedata
  from collections import Counter
  from urllib.parse import urlparse
  import cld2
  import numpy
  import spacy
  import spacy.matcher
  import textacy
  import textacy.ke
  import textacy.text_utils
  from bs4 import BeautifulSoup
  from datasketch import MinHash
  from gensim.models.keyedvectors import KeyedVectors
  from gensim.summarization.summarizer import summarize
  from textpipe.data.emoji import EMOJI_TO_UNICODE_NAME, EMOJI_TO_SENTIMENT
  from textpipe.wrappers import RedisKeyedVectors
  from textpipe.util import getattr_
label_desc: Use image node_id 17 for calling the Doc obj's underlying member method code with example usage: obj.words() and returns: unknown