from pymongo import MongoClient, errors from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer # MongoDB connection settings mongo_uri = "mongodb://localhost:27017/" database_name = "twitter_database" source_collection_name = "tweets" def get_text_from_doc(doc): """ Extracts the text from the document. Returns the text if available, otherwise returns None. """ text = doc.get("json_data", {}).get("text") if text: return text extended_text = doc.get("json_data", {}).get("extended_tweet", {}).get("full_text") return extended_text def analyze_sentiment(text): """ Analyzes the sentiment of the given text using VADER. Returns the compound sentiment score. """ analyzer = SentimentIntensityAnalyzer() sentiment = analyzer.polarity_scores(text) return sentiment['compound'] try: client = MongoClient(mongo_uri, serverSelectionTimeoutMS=5000) db = client[database_name] source_collection = db[source_collection_name] cursor = source_collection.find().limit(20) # Limit to only 20 tweets for doc in cursor: text = get_text_from_doc(doc) if text: print("Text:", text) print() except errors.ServerSelectionTimeoutError as err: print("Failed to connect to MongoDB server:", err) except errors.PyMongoError as err: print("An error occurred while working with MongoDB:", err) finally: client.close()