input: Write a function to generate n-grams of the given text with a specified window size. If the window size is greater than the length of the text, return an empty dictionary. If the given text is empty, also return an empty dictionary.
  
  from collections import Counter
  
  def generate_ngrams(text, window_size):
      if not text or window_size > len(text.split()):
          return Counter()
      text = text.lower().split(' ')
      ngrams = []
      for n in range(window_size, len(text)+1):
          for i in range(len(text)-n+1):
              ngrams.append(' '.join(text[i:i+n]))
      return Counter(ngrams)
  
  assert generate_ngrams("The quick brown fox jumps over the lazy dog", 3) == Counter({'the quick brown': 1, 'quick brown fox': 1, 'brown fox jumps': 1, 'fox jumps over': 1, 'jumps over the': 1, 'over the lazy': 1, 'the lazy dog': 1})
  assert generate_ngrams("The quick brown fox", 5) == Counter()
  assert generate_ngrams("", 3) == Counter()
output: from collections import Counter
  
  def generate_ngrams(text, window_size):
      if not text or window_size > len(text.split()):
          return Counter()
      text = text.lower().split(' ')
      ngrams = []
      for n in range(window_size, len(text)+1):
          for i in range(len(text)-n+1):
              ngrams.append(' '.join(text[i:i+n]))
      return Counter(ngrams)