0% found this document useful (0 votes)
4 views4 pages

GenAI Lab2

The document outlines a program that uses dimensionality reduction techniques like PCA and t-SNE to visualize word embeddings for ten selected technology-related words. It includes functions to visualize these embeddings and generate five semantically similar words for given inputs. The program also demonstrates the loading of pre-trained word vectors and provides example outputs for the words 'computer' and 'learning'.

Uploaded by

vishwasqp2025
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views4 pages

GenAI Lab2

The document outlines a program that uses dimensionality reduction techniques like PCA and t-SNE to visualize word embeddings for ten selected technology-related words. It includes functions to visualize these embeddings and generate five semantically similar words for given inputs. The program also demonstrates the loading of pre-trained word vectors and provides example outputs for the words 'computer' and 'learning'.

Uploaded by

vishwasqp2025
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd

Program2:

Use dimensionality reduction (e.g., PCA or t-SNE) to visualize word embeddings for Q
1. Select 10 words from a specific domain (e.g., sports, technology) and visualize their
embeddings. Analyze clusters and relationships. Generate contextually rich outputs
using embeddings. Write a program to generate 5 semantically similar words for a
given input.

# Install required libraries (Run only once)


!pip install gensim scikit-learn matplotlib

# Import libraries
import [Link] as api
import numpy as np
import [Link] as plt
from [Link] import PCA
from [Link] import TSNE

# Load pre-trained word vectors


print("Loading pre-trained word vectors...")
word_vectors = [Link]("word2vec-google-news-300")

# Select 10 words from technology domain


domain_words = [
"computer", "software", "hardware", "algorithm",
"data", "network", "programming",
"machine", "learning", "artificial"
]

# Get vectors for selected words


domain_vectors = [Link]([word_vectors[word] for word in domain_words])

# Function to visualize word embeddings


def visualize_word_embeddings(words, vectors, method='pca', perplexity=5):

if method == 'pca':
reducer = PCA(n_components=2)
elif method == 'tsne':
reducer = TSNE(n_components=2, random_state=42, perplexity=perplexity)
else:
raise ValueError("Method must be 'pca' or 'tsne'.")

reduced_vectors = reducer.fit_transform(vectors)

[Link](figsize=(10, 8))
for i, word in enumerate(words):
[Link](reduced_vectors[i, 0], reduced_vectors[i, 1])
[Link](reduced_vectors[i, 0] + 0.02,
reduced_vectors[i, 1] + 0.02,
word)
[Link](f"Word Embeddings Visualization using {[Link]()}")
[Link]("Component 1")
[Link]("Component 2")
[Link](True)
[Link]()

# Visualize using PCA


visualize_word_embeddings(domain_words, domain_vectors, method='pca')

# Visualize using t-SNE


visualize_word_embeddings(domain_words, domain_vectors, method='tsne', perplexity=3)

# Function to generate 5 semantically similar words


def generate_similar_words(word):
try:
similar_words = word_vectors.most_similar(word, topn=5)

print(f"\nTop 5 semantically similar words to '{word}':")


for similar_word, similarity in similar_words:
print(f"{similar_word}: {similarity:.4f}")

except KeyError:
print(f"Error: '{word}' not found in the vocabulary.")

# Example usage
generate_similar_words("computer")
generate_similar_words("learning")
OUTPUT:

Loading pre-trained word vectors...


Top 5 semantically similar words to 'computer':
computers: 0.7979
laptop: 0.6640
laptop_computer: 0.6549
Computer: 0.6473
com_puter: 0.6082

Top 5 semantically similar words to 'learning':


teaching: 0.6602
learn: 0.6365
Learning: 0.6208
reteaching: 0.5810
learner_centered: 0.5739

You might also like