import gensim
from gensim.models import Word2Vec
# Sample corpus
sentences = [
['king', 'queen', 'man', 'woman'],
['apple', 'orange', 'fruit', 'banana'],
['car', 'bus', 'train', 'vehicle'],
['dog', 'cat', 'animal', 'pet'],
['python', 'java', 'programming', 'language']
]
# Train CBOW model
cbow_model = Word2Vec(sentences, vector_size=50, window=2, min_count=1, sg=0, epochs=50, negative=5, alpha=0.025)
# Train Skip-gram model with improved hyperparameters
skipgram_model = Word2Vec(sentences, vector_size=50, window=3, min_count=1, sg=1, epochs=100, negative=10, alpha=0.03)
# Evaluate similarity
cbow_sim = cbow_model.wv.similarity('king', 'queen')
skipgram_sim = skipgram_model.wv.similarity('king', 'queen')
# Print similarity scores
print(f'CBOW similarity king-queen: {cbow_sim:.3f}')
print(f'Skip-gram similarity king-queen: {skipgram_sim:.3f}')