class_docstr: Reader for the Customer Review Data dataset by Hu, Liu (2004).
  Note: we are not applying any sentence tokenization at the moment, just word
  tokenization.
  
      >>> from nltk.corpus import product_reviews_1
      >>> camera_reviews = product_reviews_1.reviews('Canon_G3.txt')
      >>> review = camera_reviews[0]
      >>> review.sents()[0] # doctest: +NORMALIZE_WHITESPACE
      ['i', 'recently', 'purchased', 'the', 'canon', 'powershot', 'g3', 'and', 'am',
      'extremely', 'satisfied', 'with', 'the', 'purchase', '.']
      >>> review.features() # doctest: +NORMALIZE_WHITESPACE
      [('canon powershot g3', '+3'), ('use', '+2'), ('picture', '+2'),
      ('picture quality', '+1'), ('picture quality', '+1'), ('camera', '+2'),
      ('use', '+2'), ('feature', '+1'), ('picture quality', '+3'), ('use', '+1'),
      ('option', '+1')]
  
  We can also reach the same information directly from the stream:
  
      >>> product_reviews_1.features('Canon_G3.txt')
      [('canon powershot g3', '+3'), ('use', '+2'), ...]
  
  We can compute stats for specific product features:
  
      >>> n_reviews = len([(feat,score) for (feat,score) in product_reviews_1.features('Canon_G3.txt') if feat=='picture'])
      >>> tot = sum([int(score) for (feat,score) in product_reviews_1.features('Canon_G3.txt') if feat=='picture'])
      >>> mean = tot / n_reviews
      >>> print(n_reviews, tot, mean)
      15 24 1.6
code: def _read_word_block(self, stream):
      words = []
      for i in range(20):  # Read 20 lines at a time.
          line = stream.readline()
          sent = re.findall(SENT, line)
          if sent:
              words.extend(self._word_tokenizer.tokenize(sent[0]))
      return words
  
imports: import re
  from nltk.corpus.reader.api import *
  from nltk.tokenize import *
label_desc: Use image node_id 9 for calling the ReviewsCorpusReader obj's underlying member method code with example usage: obj._read_word_block(stream) and returns: words