AI-Enhanced Joke Bot v4.0 - Enhanced User Analytics Edition
Welcome to the AI-Enhanced Joke Bot! This application combines humor with artificial intelligence to deliver jokes and analyze user preferences with detailed analytics.
📋 Project Structure
v4.0/
├── jokes.py # Main application with enhanced user sentiment tracking and analytics
├── jokes.db # SQLite database containing jokes and detailed user sentiments
├── clean_sample_data.sql # Clean sample data with user identifiers
└── README.md # This file
🚀 Quick Start
1. Run the Application
Simply run the main application file:
python jokes.py
The application will:
- Automatically create the database if it doesn't exist
- Add sample data with user identifiers
- Prompt you for a username to track your preferences
🔧 Key Features
Enhanced User Sentiment Tracking
- User Identification: Each sentiment rating is linked to a specific user identifier
- Rating History: Track all jokes you've rated with timestamps
- Personal Favorites: See which jokes you've specifically liked
- Duplicate Prevention: Users can update their existing ratings
Advanced Analytics
- Community Insights: See overall sentiment trends and statistics
- User Preference Analysis: Identify which users have the most positive/negative ratings
- Detailed Breakdowns: View sentiment distribution for individual jokes
- Popularity Metrics: Understand which jokes are most liked by the community
🎯 Menu Options
- Get Random Joke: Receive a joke with community ratings and detailed sentiment breakdown
- Add New Joke: Submit your own jokes for community rating
- View Your Ratings: See your complete rating history
- See Your Favorites: View jokes you've specifically liked
- Community Analytics: Access detailed community statistics and user rankings
- Quit: Exit the application
📊 Database Schema Enhancements
The user_sentiments table now includes:
user_identifier: Links each rating to a specific useruser_sentiment: The rating (up/down/neutral)created_at: Timestamp of when the rating was made- Support for updating existing ratings
💡 Usage Examples
Getting Started
🤖 Welcome to Joke Bot! 🤖
Please enter your username (or press Enter for 'Guest'): JohnDoe
👤 Logged in as: JohnDoe
Viewing Detailed Analytics
When viewing a joke, you'll see:
🤣 Why don't scientists trust atoms? Because they make up everything!
👤 Contributor: ScienceFan
👥 Community Rating: 👍 Up (3 votes)
🔍 Detailed Breakdown:
👍 Up: 2 votes
😐 Neutral: 1 votes
Accessing Personal Analytics
Option 3 shows your rating history:
📊 Your Joke Ratings History (5 ratings):
--------------------------------------------------
👍 Why did the scarecrow win an award? He was outstanding in his field!
Rated: 2024-01-15 14:30:25
👎 What do you call a fish with no eyes? Fsh!
Rated: 2024-01-15 14:25:10
Community Insights
Option 5 provides comprehensive analytics:
📈 COMMUNITY ANALYTICS
==============================
🏆 Most Positive Users:
-------------------------
1. ComedyFan: 85.7% positive (6/7 ratings)
2. JokeLover: 75.0% positive (3/4 ratings)
3. FunnyPerson: 66.7% positive (4/6 ratings)
📊 Overall Statistics:
Total jokes rated: 8
Total ratings: 24
Community positivity: 62.5%
🛠️ Technical Improvements
- Enhanced Data Model: User identifiers enable sophisticated analytics
- Better UX: Session-based user identification for consistent tracking
- Rich Analytics: Multiple layers of statistical insights
- Data Integrity: Prevents duplicate ratings while allowing updates
🎉 Benefits of User Identification
- Personalized Experience: Track your own joke preferences over time
- Social Insights: Understand community rating patterns
- Quality Control: Identify consistently popular contributors
- Engagement Metrics: Measure user participation and preferences
- Recommendation Potential: Foundation for future personalized joke recommendations
Enjoy the enhanced AI-powered humor experience with detailed user analytics!
Joke Bot - Enhanced Setup Instructions
For Beginners
Running the Enhanced Version
- Simply run:
python jokes.py - Enter your username when prompted
- Enjoy personalized joke ratings and community analytics!
The enhanced version automatically handles all database setup and provides rich analytics features right out of the box.
## 代码修改建议
AI-Enhanced Joke Bot v4.0
Welcome to the AI-Enhanced Joke Bot! This application combines humor with artificial intelligence to deliver jokes and analyze their sentiment.
📋 Project Structure
v4.0/
├── database.py # Creates the SQLite database and jokes table with user sentiment tracking
├── jokes.py # Main application with AI sentiment analysis and user rating
├── jokes.db # SQLite database containing jokes and user sentiments
├── sample_data.sql # Sample jokes to populate the database
├── populate_db.py # Script to populate the database with sample data
├── check_db.py # Utility to check database content
├── upgrade_db.py # Utility to upgrade existing databases with new schema
└── README.md # This file
🚀 Quick Start
1. Install Dependencies
First, make sure you have Python installed and then install the required packages:
# Create and activate virtual environment (recommended)
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install required packages
pip install textblob
# Download required corpora for textblob
python -m textblob.download_corpora
2. Set Up the Database
Run the database creation script:
python database.py
This creates the jokes.db file with the proper table structure, including a table for user sentiments.
3. (Optional) Upgrade Existing Database
If you have an existing database from a previous version, run the upgrade script:
python upgrade_db.py
This adds the user_sentiments table to your existing database.
4. Populate the Database with Sample Jokes
To add sample jokes to your database:
python populate_db.py
Alternatively, you can use the SQL file directly:
sqlite3 jokes.db < sample_data.sql
5. Run the Application
Start the Joke Bot:
python jokes.py
🔧 Troubleshooting
No Jokes in Database
If you're getting "No jokes in the database" message:
- Make sure you've run
python database.pyto create the database - Run
python populate_db.pyto add sample jokes to the database - Verify the database content with
python check_db.py
Missing Dependencies
If you get an ImportError for textblob:
pip install textblob
python -m textblob.download_corpora
⚙️ Features
- Random Joke Generator: Get a random joke from the database
- AI Sentiment Analysis: Analyzes the sentiment of jokes using TextBlob
- User Sentiment Rating: After each joke, rate it with thumbs up/down/neutral
- Community Ratings: See how other users rated each joke
- Mood-Based Joke Selection: Filter jokes by sentiment (positive, negative, neutral)
- Add New Jokes: Contribute your own jokes to the database
- Joke Management: View all jokes in the database with community ratings
💡 Usage Tips
- Choose option 1 to get a random joke, then rate it with U(p)/D(own)/N(eutral)
- Choose option 2 to add a new joke with automatic sentiment analysis and rating
- Choose option 3 to analyze the sentiment of any text
- Choose option 4 to get jokes based on mood
- Choose option 5 to view all jokes in the database with community ratings
- Choose option 6 to exit the application
🗂️ Database Schema
The application uses two tables:
jokes: Contains the joke text, contributor, publication date, and AI-analyzed sentimentuser_sentiments: Tracks user ratings for each joke with timestamps
Enjoy the AI-enhanced humor experience with community feedback!
Joke Bot - Simple Setup Instructions
Welcome to the Joke Bot! This is a fun program that tells jokes and lets you rate them. Follow these simple steps to get it working!
Simplified Project Structure
The application now has a minimal structure:
v4.0/
├── jokes.py # Complete application with database creation and sample data
└── README.md # This file
Step-by-Step Instructions for Beginners
Step 1: Open Python IDLE
- Find Python IDLE on your computer (it looks like a blue and white icon)
- Click on it to open it
- When it opens, click on "File" then "New File" to create a new file
Step 2: Save Your New File
- In the new file window, click "File" then "Save As..."
- Save the file in your folder and name it
jokes.py - Remember where you saved it!
Step 3: Get the Code from the Website
- Go to this website: https://gitea.techshare.cc/technolyceum/ai6-m3/src/branch/main/jokes_bot/v4.0
- Look for the
jokes.pyfile in the list - Click on it to see the code
- Select all the code (Ctrl+A on Windows or Cmd+A on Mac)
- Copy it (Ctrl+C on Windows or Cmd+C on Mac)
Step 4: Paste the Code
- Go back to your Python IDLE window
- Paste the code you copied (Ctrl+V on Windows or Cmd+V on Mac)
- Click "File" then "Save" to save the code in your file
Step 5: Run the Program in PowerShell
- Open PowerShell (on Windows) or Terminal (on Mac)
- Navigate to the folder where you saved your jokes.py file
- Type:
cdfollowed by the path to your folder
- Type:
- Create a virtual environment (this keeps your programs organized):
- Type:
python -m venv venv
- Type:
- Activate the virtual environment:
- On Windows:
venv\Scripts\Activate.ps1 - On Mac:
source venv/bin/activate
- On Windows:
- Run the program:
- Type:
python jokes.py
- Type:
Step 6: Using the Joke Bot
- When the program runs, you'll see a menu with options
- Press "1" to get a random joke
- Press "2" to add your own joke
- Press "3" to quit the program
Simple Explanation for New Programmers
Think of programming like cooking:
- The code is like a recipe
- Python is like your kitchen tools
- The computer is like your kitchen where everything happens
When you run the Joke Bot:
- The program automatically creates a database (like a notebook) to store jokes
- If there are no jokes in the notebook, it adds some sample jokes for you
- Then it shows you the menu so you can interact with it
The program is smart enough to handle everything by itself - you don't need to worry about databases or SQL statements. Just run it and enjoy the jokes!
Have fun with your Joke Bot! 😄