This Food Recommendation Chatbot is designed to provide restaurant suggestions based on user preferences and location. It utilizes natural language processing and geocoding to offer a seamless and interactive experience to users.
- Conversational Interaction: Engage with users in a natural, conversational manner.
- Location-Based Recommendations: Provide restaurant suggestions near the user's current location.
- NLP for User Input Processing: Analyze and interpret user requests using advanced NLP techniques.
To run this chatbot, the following Python libraries are required:
- streamlit
- transformers
- sentence_transformers
- pandas
- numpy
- pickle
- nltk
- geopy
- Install Python 3.x from the official website.
- Install the necessary packages using pip:
pip install streamlit transformers sentence_transformers pandas numpy pickle nltk geopy
To use the chatbot, you need to download the necessary NLTK data. Run the following Python commands:
import nltk
nltk.download('punkt')
nltk.download('stopwords')To run the Streamlit app, execute the following command in your terminal:
streamlit run your_script_name.pybusiness_in_ca.csv: Contains business data for California.yelp_recommendation_model_8.pkl: A pickle file with user and business embeddings.
clean_text_data(texts): Cleans and processes text data.haversine(lon1, lat1, lon2, lat2): Calculates distances between two geographical points.get_recommendations(input_text, user_lat, user_lon): Provides restaurant recommendations.geocode_address(address): Converts an address into geographical coordinates.handle_conversation(user_input, user_lat, user_lon): Manages conversation logic and user interactions.
- Chat Input: Where users can type their queries or requests.
- Text Input: For users to enter their address for location-specific recommendations.
- Chat History: Displays the ongoing conversation.
- The chatbot's recommendations are currently limited to California.
- It relies on accurate geocoding for location-based suggestions.
- Expanding the geographical scope of the chatbot.
- Implementing more sophisticated NLP models for enhanced user query understanding.
- For further assistance or queries, feel free to reach out to the support team or refer to the project documentation.