input: Write a function to extract the top 10 most frequent words from a given text using natural language processing in Python. The function should return a list of tuples where each tuple contains a word and its frequency in the text.
  
  assert top_10_frequent_words("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.")==[('dolor', 1), ('Lorem', 1), ('ipsum', 1), ('amet', 1), ('consectetur', 1), ('adipiscing', 1), ('elit,', 1), ('sed', 1), ('do', 1), ('eiusmod', 1)]
output: def top_10_frequent_words(text):
      from collections import Counter
      import re
      words = re.findall(r'\b\w+\b', text.lower())
      word_counts = Counter(words)
      return word_counts.most_common(10)