input: Write a python function to build and train a neural network for language classification using Keras.
  ```python
  def build_and_train_language_classifier(train_data, train_labels, val_data, val_labels, test_data):
      import numpy as np
      import keras
      from keras.models import Sequential
      from keras.layers import Input, Dense, Dropout
      from keras.utils import to_categorical
  
      num_classes = 3  # number of languages to classify
  
      # Define the model architecture
      model = Sequential()
      model.add(Input(shape=(1000,)))
      model.add(Dense(2000, activation='relu'))
      model.add(Dense(1000, activation='relu'))
      model.add(Dense(500, activation='relu'))
      model.add(Dense(num_classes, activation='softmax'))
  
      # Compile the model
      model.compile(optimizer='adam',
                    loss='categorical_crossentropy',
                    metrics=['accuracy'])
  
      # Train the model
      model.fit(train_data, train_labels, epochs=10, batch_size=32)
  
      # Evaluate the model
      val_loss, val_acc = model.evaluate(val_data, val_labels)
  
      # Make predictions on test data
      predictions = model.predict([test_data])
      
      return model, val_loss, val_acc, predictions
  
  # Example usage and assertions
  train_data = np.random.random((100, 1000))
  train_labels = to_categorical(np.random.randint(3, size=(100, 1)), num_classes=3)
  val_data = np.random.random((20, 1000))
  val_labels = to_categorical(np.random.randint(3, size=(20, 1)), num_classes=3)
  test_data = np.random.random((10, 1000))
  
  model, val_loss, val_acc, predictions = build_and_train_language_classifier(train_data, train_labels, val_data, val_labels, test_data)
  
  assert model is not None
  assert val_loss >= 0
  assert 0 <= val_acc <= 1
  assert predictions.shape == (10, 3)
output: def build_and_train_language_classifier(train_data, train_labels, val_data, val_labels, test_data):
      import numpy as np
      import keras
      from keras.models import Sequential
      from keras.layers import Input, Dense, Dropout
      from keras.utils import to_categorical
  
      num_classes = 3  # number of languages to classify
  
      # Define the model architecture
      model = Sequential()
      model.add(Input(shape=(1000,)))
      model.add(Dense(2000, activation='relu'))
      model.add(Dense(1000, activation='relu'))
      model.add(Dense(500, activation='relu'))
      model.add(Dense(num_classes, activation='softmax'))
  
      # Compile the model
      model.compile(optimizer='adam',
                    loss='categorical_crossentropy',
                    metrics=['accuracy'])
  
      # Train the model
      model.fit(train_data, train_labels, epochs=10, batch_size=32, validation_data=(val_data, val_labels))
  
      # Evaluate the model
      val_loss, val_acc = model.evaluate(val_data, val_labels)
  
      # Make predictions on test data
      predictions = model.predict(test_data)
      
      return model, val_loss, val_acc, predictions
  
  # Example usage and assertions
  train_data = np.random.random((100, 1000))
  train_labels = to_categorical(np.random.randint(3, size=(100, 1)), num_classes=3)
  val_data = np.random.random((20, 1000))
  val_labels = to_categorical(np.random.randint(3, size=(20, 1)), num_classes=3)
  test_data = np.random.random((10, 1000))
  
  model, val_loss, val_acc, predictions = build_and_train_language_classifier(train_data, train_labels, val_data, val_labels, test_data)
  
  assert model is not None
  assert val_loss >= 0
  assert 0 <= val_acc <= 1
  assert predictions.shape == (10, 3)