×
Samples Blogs Make Payment About Us Reviews 4.9/5 Order Now

Python Program to Implement AI Essay Writer Assignment Solution

June 28, 2024
Dr. Nicholas Scott
Dr. Nicholas
🇯🇵 Japan
Python
Dr. Nicholas Scott, a distinguished Computer Science expert, holds a PhD from Tokyo University, Japan. With an impressive 8 years of experience, he has completed over 600 Python assignments, showcasing his unparalleled expertise and dedication to the field.
Key Topics
  • Instructions
    • Objective
  • Requirements and Specifications
Tip of the day
Familiarize yourself with OCaml's pattern matching; it simplifies handling recursive data structures like lists and trees, making your code concise and easier to debug.
News
In 2024, Girls Who Code introduced a Data Science + AI track in their free summer programs for high school students, fostering skills in cybersecurity and creative coding​

Instructions

Objective

Write a program to implement AI essay writer in python.

Requirements and Specifications

The assignment was " Create an AI research assistant to research and write an essay for you.

Class is : Artificial Intelligence CSC370

Book: Artificial Intelligence by Example: Develop machine intelligence from scratch using real artificial intelligence use cases 1st Edition, by Denis Rothman

Source Code

# Required Imports pip install wikipedia import tensorflow as tf from tensorflow import keras import numpy as np from tensorflow.keras.preprocessing.text import Tokenizer from tensorflow.keras.preprocessing.sequence import pad_sequences from keras.utils.data_utils import get_file import sys import io from urllib.request import urlopen from bs4 import BeautifulSoup import re import wikipedia # Search on Wikipedia for topic ### Inf the following cell, you'll see a list with different topics that are related between them. If you want to change the topic, try adding terms related to the same topic so the info researched is bigger topic = [ 'black hole', 'Stephen Hawkings', 'speed of light', 'general relativity', 'albert einstein', 'hawking radiation', 'gravitatonal waves', 'interstellar' ] topic_text = "" for term in topic: # Specify the title of the Wikipedia page wiki = wikipedia.page(term) # Extract the plain text content of the page, excluding images, tables, and other data. text = wiki.content # Replace '==' with '' (an empty string) text = text.replace('==', '') topic_text += text # Tokenize words tokenizer = Tokenizer() corpus = topic_text.lower().split("\n") tokenizer.fit_on_texts(corpus) total_words = len(tokenizer.word_index)+1 print(f"A total of {total_words} words were tokenized") print(tokenizer.word_index) # Vectorization: Convert each line of text into a text sequence input_sequences = [] for line in corpus: token_list = tokenizer.texts_to_sequences([line])[0] for i in range(1, len(token_list)): n_gram_sequence = token_list[:i+1] input_sequences.append(n_gram_sequence) max_sequence_len = max([len(x) for x in input_sequences]) padded = pad_sequences(input_sequences, padding='pre', maxlen=max_sequence_len) # Split the data into X and y X = padded[:,:-1] Y = padded[:,-1] # Categorize the labels (target variable) y = tf.keras.utils.to_categorical(Y, num_classes = total_words) # Model ### **NOTE:** If you want to create the model from zero, just run the following cell. If you want to load a pre-trained model, skip the following cell and execute the next one model = keras.Sequential([ tf.keras.layers.Embedding(total_words, 64, input_length = max_sequence_len-1), tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(64, return_sequences = True)), tf.keras.layers.Bidirectional(tf.keras.layers.LSTM(32)), tf.keras.layers.Dropout(0.2), tf.keras.layers.Dense(total_words, activation = 'softmax') ]) model.compile(loss='categorical_crossentropy', optimizer = 'adam', metrics=['accuracy']) ###Execute the next cell if you want to load a pre-trained model saved_model_name = 'essay_writer_black_hole.h5' model = keras.models.load_model(saved_model_name) # Show summary of Model model.summary() # Train Model history = model.fit(X, y, epochs=30) topic_str = topic[0].replace(' ', '_') model.save(f'essay_writer_{topic_str}.h5') # Finally, write an essay. In the parameter **next_words** you can declare the length of the Essay # Predict essay_text = "Black holes" next_words = 500 for i in range(next_words): token_list = tokenizer.texts_to_sequences([essay_text])[0] token_list = pad_sequences([token_list], maxlen = max_sequence_len-1, padding='pre') #predicted = model.predict_classes(token_list, verbose=0) y_pred = model.predict(token_list, verbose=0) predicted = np.argmax(y_pred) output_word = "" for word, index in tokenizer.word_index.items(): if index == predicted: output_word = word break essay_text += " " + output_word if i%16 == 0: essay_text += "\n" print(essay_text)

Similar Samples

Explore our comprehensive sample solutions at ProgrammingHomeworkHelp.com, where we specialize in delivering expert programming assistance. Whether it's Java, Python, C++, or any other language, our samples showcase our commitment to quality and precision. Trust our team of experienced programmers to guide you through complex assignments and ensure your academic success. Visit us today to view our exemplary samples and discover how we can help you excel in programming.