ಈ ವಿಭಾಗದಲ್ಲಿ ನೀವು ಹಿಂದಿನ ಪಾಠಗಳಲ್ಲಿ ಕಲಿತ ತಂತ್ರಗಳನ್ನು ಬಳಸಿಕೊಂಡು ದೊಡ್ಡ ಡೇಟಾಸೆಟ್ನ ಅನ್ವೇಷಣಾತ್ಮಕ ಡೇಟಾ ವಿಶ್ಲೇಷಣೆಯನ್ನು ಮಾಡುತ್ತೀರಿ. ವಿವಿಧ ಕಾಲಮ್ಗಳ ಉಪಯುಕ್ತತೆಯನ್ನು ಚೆನ್ನಾಗಿ ಅರ್ಥಮಾಡಿಕೊಂಡ ನಂತರ, ನೀವು ತಿಳಿಯಲಿದ್ದೀರಿ:
- ಅನಗತ್ಯ ಕಾಲಮ್ಗಳನ್ನು ಹೇಗೆ ತೆಗೆದುಹಾಕುವುದು
- ಇತ್ತೀಚಿನ ಕಾಲಮ್ಗಳ ಆಧಾರದ ಮೇಲೆ ಹೊಸ ಡೇಟಾವನ್ನು ಹೇಗೆ ಲೆಕ್ಕಹಾಕುವುದು
- ಅಂತಿಮ ಸವಾಲಿಗಾಗಿ ಫಲಿತಾಂಶ ಡೇಟಾಸೆಟ್ ಅನ್ನು ಹೇಗೆ ಉಳಿಸುವುದು
ಇದುವರೆಗೆ ನೀವು ತಿಳಿದುಕೊಂಡಿರುವುದು, ಪಠ್ಯ ಡೇಟಾ ಸಂಖ್ಯಾತ್ಮಕ ಡೇಟಾ ಪ್ರಕಾರಗಳಿಗಿಂತ ಬಹಳ ವಿಭಿನ್ನವಾಗಿದೆ. ಅದು ಮಾನವನು ಬರೆದ ಅಥವಾ ಮಾತನಾಡಿದ ಪಠ್ಯವಾಗಿದ್ದರೆ, ಅದನ್ನು ಮಾದರಿಗಳು ಮತ್ತು ಆವರ್ತನೆಗಳು, ಭಾವನೆ ಮತ್ತು ಅರ್ಥವನ್ನು ಕಂಡುಹಿಡಿಯಲು ವಿಶ್ಲೇಷಿಸಬಹುದು. ಈ ಪಾಠವು ನಿಮಗೆ ನಿಜವಾದ ಡೇಟಾ ಸೆಟ್ ಮತ್ತು ನಿಜವಾದ ಸವಾಲಿನೊಳಗೆ ಕರೆದೊಯ್ಯುತ್ತದೆ: ಯುರೋಪಿನ 515K ಹೋಟೆಲ್ ವಿಮರ್ಶೆಗಳ ಡೇಟಾ ಮತ್ತು ಇದಕ್ಕೆ CC0: ಸಾರ್ವಜನಿಕ ಡೊಮೇನ್ ಪರವಾನಗಿ ಇದೆ. ಇದು Booking.com ನ ಸಾರ್ವಜನಿಕ ಮೂಲಗಳಿಂದ ಸ್ಕ್ರೇಪ್ ಮಾಡಲಾಗಿದೆ. ಡೇಟಾಸೆಟ್ ರಚನೆದವರು ಜಿಯಾಶೆನ್ ಲಿಯು.
ನೀವು ಬೇಕಾಗಿರುವುದು:
- Python 3 ಬಳಸಿ .ipynb ನೋಟ್ಬುಕ್ಗಳನ್ನು ಚಾಲನೆ ಮಾಡುವ ಸಾಮರ್ಥ್ಯ
- pandas
- NLTK, ನೀವು ಸ್ಥಳೀಯವಾಗಿ ಸ್ಥಾಪಿಸಬೇಕು
- Kaggle ನಲ್ಲಿ ಲಭ್ಯವಿರುವ ಡೇಟಾಸೆಟ್ 515K ಹೋಟೆಲ್ ವಿಮರ್ಶೆಗಳ ಡೇಟಾ ಯುರೋಪಿನಲ್ಲಿ. ಇದು ಅನ್ಜಿಪ್ ಮಾಡಿದಾಗ ಸುಮಾರು 230 MB ಆಗಿದೆ. ಈ NLP ಪಾಠಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ರೂಟ್
/dataಫೋಲ್ಡರ್ಗೆ ಡೌನ್ಲೋಡ್ ಮಾಡಿ.
ಈ ಸವಾಲು ನೀವು ಭಾವನೆ ವಿಶ್ಲೇಷಣೆ ಮತ್ತು ಅತಿಥಿ ವಿಮರ್ಶಾ ಅಂಕಗಳನ್ನು ಬಳಸಿ ಹೋಟೆಲ್ ಶಿಫಾರಸು ಬಾಟ್ ನಿರ್ಮಿಸುತ್ತಿದ್ದೀರಿ ಎಂದು ಊಹಿಸುತ್ತದೆ. ನೀವು ಬಳಸಲಿರುವ ಡೇಟಾಸೆಟ್ 6 ನಗರಗಳಲ್ಲಿ 1493 ವಿಭಿನ್ನ ಹೋಟೆಲ್ಗಳ ವಿಮರ್ಶೆಗಳನ್ನು ಒಳಗೊಂಡಿದೆ.
Python, ಹೋಟೆಲ್ ವಿಮರ್ಶೆಗಳ ಡೇಟಾಸೆಟ್ ಮತ್ತು NLTK ಭಾವನೆ ವಿಶ್ಲೇಷಣೆಯನ್ನು ಬಳಸಿ ನೀವು ಕಂಡುಹಿಡಿಯಬಹುದು:
- ವಿಮರ್ಶೆಗಳಲ್ಲಿ ಅತ್ಯಂತ ಹೆಚ್ಚು ಬಳಕೆಯಾದ ಪದಗಳು ಮತ್ತು ವಾಕ್ಯಗಳು ಯಾವುವು?
- ಹೋಟೆಲ್ ಅನ್ನು ವರ್ಣಿಸುವ ಅಧಿಕೃತ ಟ್ಯಾಗ್ಗಳು ವಿಮರ್ಶಾ ಅಂಕಗಳೊಂದಿಗೆ ಹೊಂದಾಣಿಕೆ ಹೊಂದಿದೆಯೇ (ಉದಾ: ಯುವ ಮಕ್ಕಳೊಂದಿಗೆ ಕುಟುಂಬಗಾಗಿ ಹೆಚ್ಚು ನಕಾರಾತ್ಮಕ ವಿಮರ್ಶೆಗಳು ಇದ್ದರೆ, ಒಂಟಿ ಪ್ರಯಾಣಿಕಗಿಂತ ಹೆಚ್ಚು, ಇದು ಒಂಟಿ ಪ್ರಯಾಣಿಕರಿಗೆ ಉತ್ತಮವಾಗಿದೆ ಎಂದು ಸೂಚಿಸುತ್ತದೆಯೇ?)
- NLTK ಭಾವನೆ ಅಂಕಗಳು ಹೋಟೆಲ್ ವಿಮರ್ಶಕರ ಸಂಖ್ಯಾತ್ಮಕ ಅಂಕಗಳೊಂದಿಗೆ 'ಒಪ್ಪಿಗೆಯಲ್ಲವೇ'?
ನೀವು ಡೌನ್ಲೋಡ್ ಮಾಡಿ ಸ್ಥಳೀಯವಾಗಿ ಉಳಿಸಿಕೊಂಡಿರುವ ಡೇಟಾಸೆಟ್ ಅನ್ನು ಅನ್ವೇಷಿಸೋಣ. ಫೈಲ್ ಅನ್ನು VS Code ಅಥವಾ Excel ಮುಂತಾದ ಸಂಪಾದಕದಲ್ಲಿ ತೆರೆಯಿರಿ.
ಡೇಟಾಸೆಟ್ನ ಹೆಡರ್ಗಳು ಹೀಗಿವೆ:
Hotel_Address, Additional_Number_of_Scoring, Review_Date, Average_Score, Hotel_Name, Reviewer_Nationality, Negative_Review, Review_Total_Negative_Word_Counts, Total_Number_of_Reviews, Positive_Review, Review_Total_Positive_Word_Counts, Total_Number_of_Reviews_Reviewer_Has_Given, Reviewer_Score, Tags, days_since_review, lat, lng
ಇವುಗಳನ್ನು ಪರಿಶೀಲಿಸಲು ಸುಲಭವಾಗುವಂತೆ ಗುಂಪು ಮಾಡಲಾಗಿದೆ:
Hotel_Name,Hotel_Address,lat(ಅಕ್ಷಾಂಶ),lng(ರೇಖಾಂಶ)- lat ಮತ್ತು lng ಬಳಸಿ Python ನಲ್ಲಿ ಹೋಟೆಲ್ ಸ್ಥಳಗಳನ್ನು ತೋರಿಸುವ ನಕ್ಷೆಯನ್ನು ರಚಿಸಬಹುದು (ನಕಾರಾತ್ಮಕ ಮತ್ತು ಧನಾತ್ಮಕ ವಿಮರ್ಶೆಗಳಿಗೆ ಬಣ್ಣ ಕೋಡ್ ಮಾಡಬಹುದು)
- Hotel_Address ನಮಗೆ ಸ್ಪಷ್ಟವಾಗಿ ಉಪಯುಕ್ತವಲ್ಲ, ಮತ್ತು ನಾವು ಅದನ್ನು ಸುಲಭವಾಗಿ ಶ್ರೇಣೀಕರಿಸಲು ಮತ್ತು ಹುಡುಕಲು ದೇಶದೊಂದಿಗೆ ಬದಲಾಯಿಸಬಹುದು
ಹೋಟೆಲ್ ಮೆಟಾ-ವಿಮರ್ಶೆ ಕಾಲಮ್ಗಳು
-
Average_Score- ಡೇಟಾಸೆಟ್ ರಚನೆದವರ ಪ್ರಕಾರ, ಈ ಕಾಲಮ್ ಹೋಟೆಲ್ನ ಸರಾಸರಿ ಅಂಕ, ಕಳೆದ ವರ್ಷದ ಇತ್ತೀಚಿನ ಕಾಮೆಂಟ್ ಆಧಾರಿತವಾಗಿ ಲೆಕ್ಕಹಾಕಲಾಗಿದೆ. ಇದು ಅಸಾಮಾನ್ಯ ವಿಧಾನವಾಗಿದ್ದರೂ, ಡೇಟಾ ಸ್ಕ್ರೇಪ್ ಆಗಿರುವುದರಿಂದ ನಾವು ಇದನ್ನು ಪ್ರಸ್ತುತ ಮೌಲ್ಯವಾಗಿ ತೆಗೆದುಕೊಳ್ಳಬಹುದು.
✅ ಈ ಡೇಟಾದ ಇತರ ಕಾಲಮ್ಗಳ ಆಧಾರದ ಮೇಲೆ, ಸರಾಸರಿ ಅಂಕವನ್ನು ಲೆಕ್ಕಹಾಕಲು ಬೇರೆ ಯಾವ ವಿಧಾನವನ್ನು ನೀವು ಯೋಚಿಸಬಹುದು?
-
Total_Number_of_Reviews- ಈ ಹೋಟೆಲ್ ಪಡೆದ ವಿಮರ್ಶೆಗಳ ಒಟ್ಟು ಸಂಖ್ಯೆ - ಇದು ಡೇಟಾಸೆಟ್ನ ವಿಮರ್ಶೆಗಳಿಗೆ ಸಂಬಂಧಿಸಿದದೆಯೇ ಎಂಬುದು ಸ್ಪಷ್ಟವಿಲ್ಲ (ಕೆಲವು ಕೋಡ್ ಬರೆಯದೆ)
-
Additional_Number_of_Scoring- ಇದರಿಂದ ಅರ್ಥ, ವಿಮರ್ಶೆ ಅಂಕ ನೀಡಲಾಗಿದೆ ಆದರೆ ವಿಮರ್ಶಕನು ಧನಾತ್ಮಕ ಅಥವಾ ನಕಾರಾತ್ಮಕ ವಿಮರ್ಶೆ ಬರೆಯಲಿಲ್ಲ
ವಿಮರ್ಶೆ ಕಾಲಮ್ಗಳು
Reviewer_Score- ಕನಿಷ್ಠ 1 ದಶಮಾಂಶ ಸ್ಥಾನವಿರುವ ಸಂಖ್ಯಾತ್ಮಕ ಮೌಲ್ಯ, ಕನಿಷ್ಠ ಮತ್ತು ಗರಿಷ್ಠ ಮೌಲ್ಯಗಳು 2.5 ಮತ್ತು 10
- 2.5 ಅತಿ ಕಡಿಮೆ ಅಂಕವಾಗಿರುವುದಕ್ಕೆ ಕಾರಣ ವಿವರಿಸಲಾಗಿಲ್ಲ
Negative_Review- ವಿಮರ್ಶಕನು ಏನೂ ಬರೆಯದಿದ್ದರೆ, ಈ ಕ್ಷೇತ್ರದಲ್ಲಿ "No Negative" ಇರುತ್ತದೆ
- ಗಮನಿಸಿ, ವಿಮರ್ಶಕನು ಧನಾತ್ಮಕ ವಿಮರ್ಶೆಯನ್ನು ನಕಾರಾತ್ಮಕ ವಿಮರ್ಶೆ ಕಾಲಮ್ನಲ್ಲಿ ಬರೆಯಬಹುದು (ಉದಾ: "ಈ ಹೋಟೆಲ್ ಬಗ್ಗೆ ಏನೂ ಕೆಟ್ಟದ್ದು ಇಲ್ಲ")
Review_Total_Negative_Word_Counts- ಹೆಚ್ಚು ನಕಾರಾತ್ಮಕ ಪದಗಳ ಸಂಖ್ಯೆ ಕಡಿಮೆ ಅಂಕವನ್ನು ಸೂಚಿಸುತ್ತದೆ (ಭಾವನಾತ್ಮಕತೆಯನ್ನು ಪರಿಶೀಲಿಸದೆ)
Positive_Review- ವಿಮರ್ಶಕನು ಏನೂ ಬರೆಯದಿದ್ದರೆ, ಈ ಕ್ಷೇತ್ರದಲ್ಲಿ "No Positive" ಇರುತ್ತದೆ
- ಗಮನಿಸಿ, ವಿಮರ್ಶಕನು ನಕಾರಾತ್ಮಕ ವಿಮರ್ಶೆಯನ್ನು ಧನಾತ್ಮಕ ವಿಮರ್ಶೆ ಕಾಲಮ್ನಲ್ಲಿ ಬರೆಯಬಹುದು (ಉದಾ: "ಈ ಹೋಟೆಲ್ ಬಗ್ಗೆ ಏನೂ ಒಳ್ಳೆಯದು ಇಲ್ಲ")
Review_Total_Positive_Word_Counts- ಹೆಚ್ಚು ಧನಾತ್ಮಕ ಪದಗಳ ಸಂಖ್ಯೆ ಹೆಚ್ಚು ಅಂಕವನ್ನು ಸೂಚಿಸುತ್ತದೆ (ಭಾವನಾತ್ಮಕತೆಯನ್ನು ಪರಿಶೀಲಿಸದೆ)
Review_Dateಮತ್ತುdays_since_review- ವಿಮರ್ಶೆಗೆ تازگي ಅಥವಾ ಹಳೆಯತನದ ಅಳತೆ ಅನ್ವಯಿಸಬಹುದು (ಹಳೆಯ ವಿಮರ್ಶೆಗಳು ನವೀನ ವಿಮರ್ಶೆಗಳಂತೆ ನಿಖರವಾಗಿರದಿರಬಹುದು, ಹೋಟೆಲ್ ನಿರ್ವಹಣೆ ಬದಲಾಗಿದೆ, ಪುನರ್ ನಿರ್ಮಾಣ ಮಾಡಲಾಗಿದೆ, ಅಥವಾ ಈಜುಕೊಳ ಸೇರಿಸಲಾಗಿದೆ ಮುಂತಾದ ಕಾರಣಗಳಿಂದ)
Tags- ವಿಮರ್ಶಕನು ತಮ್ಮ ಅತಿಥಿ ಪ್ರಕಾರ (ಉದಾ: ಒಂಟಿ ಅಥವಾ ಕುಟುಂಬ), ಕೊಠಡಿ ಪ್ರಕಾರ, ಉಳಿದಿರುವ ಅವಧಿ ಮತ್ತು ವಿಮರ್ಶೆ ಸಲ್ಲಿಸಿದ ಸಾಧನವನ್ನು ವರ್ಣಿಸಲು ಆಯ್ಕೆಮಾಡಬಹುದಾದ ಚಿಕ್ಕ ವರ್ಣನಾತ್ಮಕ ಪದಗಳು
- ದುರದೃಷ್ಟವಶಾತ್, ಈ ಟ್ಯಾಗ್ಗಳನ್ನು ಬಳಸುವುದು ಸಮಸ್ಯೆಯಾಗಿದೆ, ಕೆಳಗಿನ ವಿಭಾಗದಲ್ಲಿ ಅವುಗಳ ಉಪಯುಕ್ತತೆಯನ್ನು ಚರ್ಚಿಸಲಾಗಿದೆ
ವಿಮರ್ಶಕ ಕಾಲಮ್ಗಳು
Total_Number_of_Reviews_Reviewer_Has_Given- ಶಿಫಾರಸು ಮಾದರಿಯಲ್ಲಿ ಇದು ಒಂದು ಅಂಶವಾಗಬಹುದು, ಉದಾಹರಣೆಗೆ, ನೂರಾರು ವಿಮರ್ಶೆಗಳಿರುವ ಹೆಚ್ಚು ಸಕ್ರಿಯ ವಿಮರ್ಶಕರು ಹೆಚ್ಚು ನಕಾರಾತ್ಮಕವಾಗಿರಬಹುದು ಎಂದು ನೀವು ನಿರ್ಧರಿಸಬಹುದು. ಆದರೆ ಯಾವುದೇ ವಿಮರ್ಶೆಯ ವಿಮರ್ಶಕನು ವಿಶಿಷ್ಟ ಕೋಡ್ನೊಂದಿಗೆ ಗುರುತಿಸಲ್ಪಟ್ಟಿಲ್ಲ, ಆದ್ದರಿಂದ ವಿಮರ್ಶೆಗಳ ಗುಂಪಿಗೆ ಲಿಂಕ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ. 100 ಅಥವಾ ಹೆಚ್ಚು ವಿಮರ್ಶೆಗಳಿರುವ 30 ವಿಮರ್ಶಕರು ಇದ್ದಾರೆ, ಆದರೆ ಇದು ಶಿಫಾರಸು ಮಾದರಿಗೆ ಹೇಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ ಎಂಬುದು ಸ್ಪಷ್ಟವಿಲ್ಲ.
Reviewer_Nationality- ಕೆಲವು ಜನರು ಕೆಲವು ರಾಷ್ಟ್ರಗಳವರು ಧನಾತ್ಮಕ ಅಥವಾ ನಕಾರಾತ್ಮಕ ವಿಮರ್ಶೆ ನೀಡುವ ಸಾಧ್ಯತೆ ಹೆಚ್ಚು ಎಂದು ಭಾವಿಸಬಹುದು. ಇಂತಹ ಅನೇಕ ಕಥನಗಳನ್ನು ನಿಮ್ಮ ಮಾದರಿಗಳಲ್ಲಿ ಸೇರಿಸುವಾಗ ಜಾಗರೂಕವಾಗಿರಿ. ಇವು ರಾಷ್ಟ್ರೀಯ (ಮತ್ತು ಕೆಲವೊಮ್ಮೆ ಜಾತಿ) стереотип್ಗಳು, ಮತ್ತು ಪ್ರತಿಯೊಬ್ಬ ವಿಮರ್ಶಕನು ತಮ್ಮ ಅನುಭವ ಆಧಾರಿತ ವಿಮರ್ಶೆ ಬರೆದ ವ್ಯಕ್ತಿ. ಇದು ಅವರ ಹಿಂದಿನ ಹೋಟೆಲ್ ಉಳಿವಿನ ಅನುಭವ, ಪ್ರಯಾಣದ ದೂರ, ಮತ್ತು ವೈಯಕ್ತಿಕ ಸ್ವಭಾವ ಮುಂತಾದ ಅನೇಕ ದೃಷ್ಟಿಕೋನಗಳಿಂದ ಪ್ರಭಾವಿತವಾಗಿರಬಹುದು. ಅವರ ರಾಷ್ಟ್ರೀಯತೆ ವಿಮರ್ಶಾ ಅಂಕಕ್ಕೆ ಕಾರಣ ಎಂದು ಭಾವಿಸುವುದು ಕಷ್ಟ.
| ಸರಾಸರಿ ಅಂಕ | ಒಟ್ಟು ವಿಮರ್ಶೆಗಳ ಸಂಖ್ಯೆ | ವಿಮರ್ಶಕ ಅಂಕ | ನಕಾರಾತ್ಮಕ ವಿಮರ್ಶೆ |
ಧನಾತ್ಮಕ ವಿಮರ್ಶೆ | ಟ್ಯಾಗ್ಗಳು |
|---|---|---|---|---|---|
| 7.8 | 1945 | 2.5 | ಇದು ಪ್ರಸ್ತುತ ಹೋಟೆಲ್ ಅಲ್ಲ, ಆದರೆ ನಿರ್ಮಾಣ ಸ್ಥಳವಾಗಿದೆ. ನಾನು ಬೆಳಗಿನ ಜಾವದಿಂದ ಮತ್ತು ದಿನಪೂರ್ತಿ ಅಸಹ್ಯವಾದ ಕಟ್ಟಡ ಶಬ್ದದಿಂದ ಭಯಭೀತನಾಗಿದ್ದೆ, ದೀರ್ಘ ಪ್ರಯಾಣದ ನಂತರ ವಿಶ್ರಾಂತಿ ಪಡೆಯುತ್ತಿದ್ದಾಗ ಮತ್ತು ಕೊಠಡಿಯಲ್ಲಿ ಕೆಲಸ ಮಾಡುತ್ತಿದ್ದಾಗ. ಜನರು ದಿನಪೂರ್ತಿ ಕೆಲಸ ಮಾಡುತ್ತಿದ್ದರು, ಅಂದರೆ ಪಕ್ಕದ ಕೊಠಡಿಗಳಲ್ಲಿ ಜಾಕ್ಹ್ಯಾಮರ್ಗಳೊಂದಿಗೆ. ನಾನು ಕೊಠಡಿ ಬದಲಾವಣೆ ಕೇಳಿದೆ, ಆದರೆ ಶಾಂತ ಕೊಠಡಿ ಲಭ್ಯವಿರಲಿಲ್ಲ. ಇನ್ನೂ ಕೆಟ್ಟದಾಗಿ, ನಾನು ಹೆಚ್ಚುವರಿ ಶುಲ್ಕ ವಿಧಿಸಲ್ಪಟ್ಟಿದ್ದೆ. ನಾನು ಸಂಜೆ ಚೆಕ್ ಔಟ್ ಮಾಡಿದೆ, ಏಕೆಂದರೆ ನನಗೆ ಬೇಗಲೇ ವಿಮಾನ ಹಾರಬೇಕಾಗಿತ್ತು ಮತ್ತು ಸೂಕ್ತ ಬಿಲ್ ಪಡೆದಿದ್ದೆ. ಒಂದು ದಿನದ ನಂತರ ಹೋಟೆಲ್ ನನ್ನ ಅನುಮತಿಯಿಲ್ಲದೆ ಬುಕ್ ಮಾಡಿದ ಬೆಲೆಯಿಗಿಂತ ಹೆಚ್ಚಾಗಿ ಶುಲ್ಕ ವಿಧಿಸಿತು. ಇದು ಭಯಾನಕ ಸ್ಥಳ. ಇಲ್ಲಿ ಬುಕ್ ಮಾಡಿಕೊಳ್ಳುವುದರಿಂದ ನಿಮ್ಮನ್ನು ಶಿಕ್ಷಿಸಬೇಡಿ | ಇಲ್ಲದೆ ಭಯಾನಕ ಸ್ಥಳ ದೂರವಿರಿ | ವ್ಯವಹಾರ ಪ್ರಯಾಣ ಜೋಡಿ ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಡಬಲ್ ರೂಮ್ 2 ರಾತ್ರಿಗಳು ಉಳಿದಿದ್ದಾರೆ |
ನೀವು ನೋಡಬಹುದು, ಈ ಅತಿಥಿಗೆ ಈ ಹೋಟೆಲ್ನಲ್ಲಿ ಸಂತೋಷಕರ ಉಳಿವು ಇರಲಿಲ್ಲ. ಹೋಟೆಲ್ಗೆ 7.8 ಸರಾಸರಿ ಅಂಕ ಮತ್ತು 1945 ವಿಮರ್ಶೆಗಳಿವೆ, ಆದರೆ ಈ ವಿಮರ್ಶಕ 2.5 ಅಂಕ ನೀಡಿದ್ದು, ತಮ್ಮ ನಕಾರಾತ್ಮಕ ಉಳಿವಿನ ಬಗ್ಗೆ 115 ಪದಗಳನ್ನು ಬರೆದಿದ್ದಾರೆ. ಅವರು Positive_Review ಕಾಲಮ್ನಲ್ಲಿ ಏನೂ ಬರೆಯದಿದ್ದರೆ, ನೀವು ಧನಾತ್ಮಕವಿಲ್ಲ ಎಂದು ಊಹಿಸಬಹುದು, ಆದರೆ ಅವರು ಎಚ್ಚರಿಕೆಯ 7 ಪದಗಳನ್ನು ಬರೆದಿದ್ದಾರೆ. ನಾವು ಪದಗಳನ್ನು ಮಾತ್ರ ಎಣಿಸಿದರೆ ಅಥವಾ ಪದಗಳ ಅರ್ಥ ಅಥವಾ ಭಾವನಾತ್ಮಕತೆಯನ್ನು ಪರಿಗಣಿಸದೆ ಇದ್ದರೆ, ವಿಮರ್ಶಕರ ಉದ್ದೇಶದ ಬಗ್ಗೆ ತಪ್ಪು ದೃಷ್ಟಿಕೋನವಾಗಬಹುದು. ವಿಚಿತ್ರವಾಗಿ, ಅವರ 2.5 ಅಂಕ ಗೊಂದಲಕಾರಿಯಾಗಿದೆ, ಏಕೆಂದರೆ ಹೋಟೆಲ್ ಉಳಿವು ಅಷ್ಟು ಕೆಟ್ಟದಾಗಿದ್ದರೆ, ಏಕೆ ಅಂಕ ನೀಡಿದರು? ಡೇಟಾಸೆಟ್ ಅನ್ನು ನಿಖರವಾಗಿ ಪರಿಶೀಲಿಸಿದರೆ, ಕನಿಷ್ಠ ಸಾಧ್ಯ ಅಂಕ 2.5, 0 ಅಲ್ಲ. ಗರಿಷ್ಠ ಅಂಕ 10.
ಮೇಲಿನಂತೆ, ಮೊದಲ ನೋಟದಲ್ಲಿ, Tags ಬಳಸಿ ಡೇಟಾವನ್ನು ವರ್ಗೀಕರಿಸುವ ಯೋಚನೆ ಅರ್ಥಪೂರ್ಣವಾಗಿದೆ. ದುರದೃಷ್ಟವಶಾತ್, ಈ ಟ್ಯಾಗ್ಗಳು ಮಾನಕೀಕೃತವಾಗಿಲ್ಲ, ಅಂದರೆ ಒಂದು ಹೋಟೆಲ್ನಲ್ಲಿ ಆಯ್ಕೆಗಳು Single room, Twin room, ಮತ್ತು Double room ಆಗಿರಬಹುದು, ಆದರೆ ಮುಂದಿನ ಹೋಟೆಲ್ನಲ್ಲಿ ಅವು Deluxe Single Room, Classic Queen Room, ಮತ್ತು Executive King Room ಆಗಿರಬಹುದು. ಇವು ಒಂದೇ ಅರ್ಥದಿರಬಹುದು, ಆದರೆ ಅನೇಕ ಬದಲಾವಣೆಗಳಿವೆ, ಆದ್ದರಿಂದ ಆಯ್ಕೆ:
-
ಎಲ್ಲಾ ಪದಗಳನ್ನು ಒಂದೇ ಮಾನಕಕ್ಕೆ ಬದಲಾಯಿಸಲು ಪ್ರಯತ್ನಿಸುವುದು, ಇದು ಬಹಳ ಕಷ್ಟ, ಏಕೆಂದರೆ ಪ್ರತಿಯೊಂದು ಪ್ರಕರಣದಲ್ಲಿಯೂ ಪರಿವರ್ತನೆ ಮಾರ್ಗ ಸ್ಪಷ್ಟವಿಲ್ಲ (ಉದಾ: Classic single room ನಕ್ಷೆ Single room ಗೆ ಆದರೆ Superior Queen Room with Courtyard Garden or City View ನಕ್ಷೆ ಮಾಡುವುದು ಬಹಳ ಕಷ್ಟ)
-
ನಾವು NLP ವಿಧಾನವನ್ನು ತೆಗೆದು, ಪ್ರತಿಯೊಂದು ಹೋಟೆಲ್ಗೆ ಅನ್ವಯಿಸುವಂತೆ Solo, Business Traveller, ಅಥವಾ Family with young kids ಮುಂತಾದ ಪದಗಳ ಆವರ್ತನೆಯನ್ನು ಅಳೆಯಬಹುದು ಮತ್ತು ಅದನ್ನು ಶಿಫಾರಸುಗೆ ಸೇರಿಸಬಹುದು
ಟ್ಯಾಗ್ಗಳು ಸಾಮಾನ್ಯವಾಗಿ (ಆದರೆ ಯಾವಾಗಲೂ ಅಲ್ಲ) 5 ರಿಂದ 6 ಕಮಾ ವಿಭಜಿತ ಮೌಲ್ಯಗಳ ಪಟ್ಟಿಯನ್ನು ಹೊಂದಿರುವ ಒಂದು ಕ್ಷೇತ್ರವಾಗಿವೆ, ಅವು ಪ್ರಯಾಣದ ಪ್ರಕಾರ, ಅತಿಥಿಗಳ ಪ್ರಕಾರ, ಕೊಠಡಿಯ ಪ್ರಕಾರ, ರಾತ್ರಿ ಸಂಖ್ಯೆ, ಮತ್ತು ವಿಮರ್ಶೆ ಸಲ್ಲಿಸಿದ ಸಾಧನದ ಪ್ರಕಾರ ಹೊಂದಿವೆ. ಆದರೆ ಕೆಲವು ವಿಮರ್ಶಕರು ಪ್ರತಿಯೊಂದು ಕ್ಷೇತ್ರವನ್ನು ತುಂಬದಿದ್ದರೆ (ಒಂದು ಖಾಲಿ ಇರಬಹುದು), ಮೌಲ್ಯಗಳು ಯಾವಾಗಲೂ ಒಂದೇ ಕ್ರಮದಲ್ಲಿರಲಾರವು.
ಉದಾಹರಣೆಗೆ, ಗುಂಪಿನ ಪ್ರಕಾರ ತೆಗೆದುಕೊಳ್ಳಿ. Tags ಕಾಲಮ್ನಲ್ಲಿ ಈ ಕ್ಷೇತ್ರದಲ್ಲಿ 1025 ವಿಭಿನ್ನ ಸಾಧ್ಯತೆಗಳಿವೆ, ಮತ್ತು ದುರದೃಷ್ಟವಶಾತ್ ಕೆಲವು ಮಾತ್ರ ಗುಂಪಿಗೆ ಸಂಬಂಧಿಸಿದವು (ಕೆಲವು ಕೊಠಡಿಯ ಪ್ರಕಾರ ಇತ್ಯಾದಿ). ನೀವು ಕುಟುಂಬವನ್ನು ಮಾತ್ರ ಫಿಲ್ಟರ್ ಮಾಡಿದರೆ, ಫಲಿತಾಂಶಗಳಲ್ಲಿ ಅನೇಕ Family room ಪ್ರಕಾರದ ಫಲಿತಾಂಶಗಳಿವೆ. ನೀವು with ಪದವನ್ನು ಸೇರಿಸಿದರೆ, ಅಂದರೆ Family with ಮೌಲ್ಯಗಳನ್ನು ಎಣಿಸಿದರೆ, ಫಲಿತಾಂಶಗಳು ಉತ್ತಮವಾಗಿವೆ, 515,000 ಫಲಿತಾಂಶಗಳಲ್ಲಿ 80,000 ಕ್ಕೂ ಹೆಚ್ಚು "Family with young children" ಅಥವಾ "Family with older children" ಎಂಬ ವಾಕ್ಯांशವನ್ನು ಹೊಂದಿವೆ.
ಇದರಿಂದ ಟ್ಯಾಗ್ ಕಾಲಮ್ ನಮಗೆ ಸಂಪೂರ್ಣವಾಗಿ ಉಪಯುಕ್ತವಲ್ಲ, ಆದರೆ ಅದನ್ನು ಉಪಯುಕ್ತವಾಗಿಸಲು ಕೆಲವು ಕೆಲಸ ಬೇಕಾಗುತ್ತದೆ.
ಡೇಟಾ ಸೆಟ್ನಲ್ಲಿ ಕೆಲವು ವಿಚಿತ್ರತೆಗಳು ಅಥವಾ ವ್ಯತ್ಯಾಸಗಳಿವೆ, ಅವುಗಳನ್ನು ನಾನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲಾರೆ, ಆದರೆ ನಿಮ್ಮ ಮಾದರಿಗಳನ್ನು ನಿರ್ಮಿಸುವಾಗ ನೀವು ಅವುಗಳ ಬಗ್ಗೆ ತಿಳಿದಿರಬೇಕು. ನೀವು ಅರ್ಥಮಾಡಿಕೊಂಡರೆ, ದಯವಿಟ್ಟು ಚರ್ಚಾ ವಿಭಾಗದಲ್ಲಿ ನಮಗೆ ತಿಳಿಸಿ!
ಡೇಟಾಸೆಟ್ನಲ್ಲಿ ಸರಾಸರಿ ಅಂಕ ಮತ್ತು ವಿಮರ್ಶೆಗಳ ಸಂಖ್ಯೆಗೆ ಸಂಬಂಧಿಸಿದ ಕಾಲಮ್ಗಳು ಇವೆ:
- Hotel_Name
- Additional_Number_of_Scoring
- Average_Score
- Total_Number_of_Reviews
- Reviewer_Score
ಈ ಡೇಟಾಸೆಟ್ನಲ್ಲಿ ಅತ್ಯಧಿಕ ವಿಮರ್ಶೆಗಳಿರುವ ಏಕೈಕ ಹೋಟೆಲ್ Britannia International Hotel Canary Wharf ಆಗಿದ್ದು, 515,000 ವಿಮರ್ಶೆಗಳಲ್ಲಿ 4789 ವಿಮರ್ಶೆಗಳಿವೆ. ಆದರೆ ಈ ಹೋಟೆಲ್ಗೆ Total_Number_of_Reviews ಮೌಲ್ಯವನ್ನು ನೋಡಿದರೆ, ಅದು 9086 ಆಗಿದೆ. ನೀವು ಊಹಿಸಬಹುದು, ವಿಮರ್ಶೆಗಳಿಲ್ಲದ ಹೆಚ್ಚಿನ ಅಂಕಗಳಿವೆ, ಆದ್ದರಿಂದ ನಾವು Additional_Number_of_Scoring ಕಾಲಮ್ ಮೌಲ್ಯವನ್ನು ಸೇರಿಸಬಹುದು. ಆ ಮೌಲ್ಯ 2682 ಆಗಿದ್ದು, 4789 ಗೆ ಸೇರಿಸಿದರೆ 7,471 ಆಗುತ್ತದೆ, ಇದು Total_Number_of_Reviews ಗಿಂತ 1615 ಕಡಿಮೆ.
Average_Score ಕಾಲಮ್ಗಳನ್ನು ತೆಗೆದುಕೊಂಡರೆ, ನೀವು ಊಹಿಸಬಹುದು ಇದು ಡೇಟಾಸೆಟ್ನ ವಿಮರ್ಶೆಗಳ ಸರಾಸರಿ, ಆದರೆ Kaggle ವಿವರಣೆ "ಹೋಟೆಲ್ನ ಸರಾಸರಿ ಅಂಕ, ಕಳೆದ ವರ್ಷದ ಇತ್ತೀಚಿನ ಕಾಮೆಂಟ್ ಆಧಾರಿತವಾಗಿ ಲೆಕ್ಕಹಾಕಲಾಗಿದೆ". ಇದು ಬಹಳ ಉಪಯುಕ್ತವಲ್ಲದಂತೆ ತೋರುತ್ತದೆ, ಆದರೆ ನಾವು ಡೇಟಾಸೆಟ್ನ ವಿಮರ್ಶಾ ಅಂಕಗಳ ಆಧಾರದ ಮೇಲೆ ನಮ್ಮದೇ ಸರಾಸರಿ ಲೆಕ್ಕಹಾಕಬಹುದು. ಉದಾಹರಣೆಗೆ, ಅದೇ ಹೋಟೆಲ್ಗೆ ಸರಾಸರಿ ಹೋಟೆಲ್ ಅಂಕ 7.1 ಎಂದು ನೀಡಲಾಗಿದೆ, ಆದರೆ ಲೆಕ್ಕಹಾಕಿದ ಅಂಕ (ಡೇಟಾಸೆಟ್ನ ವಿಮರ್ಶಕರ ಸರಾಸರಿ ಅಂಕ) 6.8 ಆಗಿದೆ. ಇದು ಸಮೀಪದಲ್ಲಿದೆ, ಆದರೆ ಅದೇ ಮೌಲ್ಯವಲ್ಲ, ಮತ್ತು ನಾವು ಊಹಿಸಬಹುದು Additional_Number_of_Scoring ವಿಮರ್ಶೆಗಳ ಅಂಕಗಳು ಸರಾಸರಿಯನ್ನು 7.1 ಗೆ ಹೆಚ್ಚಿಸಿದ್ದವು. ಅದನ್ನು ಪರೀಕ್ಷಿಸಲು ಅಥವಾ ಸಾಬೀತುಪಡಿಸಲು ಯಾವುದೇ ಮಾರ್ಗವಿಲ್ಲದ ಕಾರಣ, Average_Score, Additional_Number_of_Scoring ಮತ್ತು Total_Number_of_Reviews ಅನ್ನು ನಾವು ಹೊಂದಿಲ್ಲದ ಡೇಟಾ ಆಧಾರಿತವಾಗಿದ್ದಾಗ ಬಳಸುವುದು ಅಥವಾ ನಂಬುವುದು ಕಷ್ಟ.
ಇನ್ನಷ್ಟು ಗೊಂದಲಕ್ಕೆ, ಎರಡನೇ ಅತ್ಯಧಿಕ ವಿಮರ್ಶೆಗಳಿರುವ ಹೋಟೆಲ್ಗೆ ಲೆಕ್ಕಹಾಕಿದ ಸರಾಸರಿ ಅಂಕ 8.12 ಮತ್ತು ಡೇಟಾಸೆಟ್ನ Average_Score 8.1 ಆಗಿದೆ. ಇದು ಸರಿಯಾದ ಅಂಕದ ಸಂಧರ್ಭವೇ ಅಥವಾ ಮೊದಲ ಹೋಟೆಲ್ ವ್ಯತ್ಯಾಸವೇ?
ಈ ಹೋಟೆಲ್ಗಳು ಹೊರಗಿನ ಅಂಕಿ ಇರಬಹುದು ಎಂಬ ಸಾಧ್ಯತೆಯ ಮೇಲೆ, ಮತ್ತು ಬಹುಶಃ ಹೆಚ್ಚಿನ ಮೌಲ್ಯಗಳು ಸರಿಹೊಂದಬಹುದು (ಆದರೆ ಕೆಲವು ಕಾರಣಕ್ಕಾಗಿ ಕೆಲವು ಸರಿಹೊಂದುವುದಿಲ್ಲ) ನಾವು ಡೇಟಾಸೆಟ್ನ ಮೌಲ್ಯಗಳನ್ನು ಅನ್ವೇಷಿಸಲು ಮತ್ತು ಮೌಲ್ಯಗಳ ಸರಿಯಾದ ಬಳಕೆಯನ್ನು (ಅಥವಾ ಬಳಕೆಯಿಲ್ಲದಿರುವುದನ್ನು) ನಿರ್ಧರಿಸಲು ಮುಂದಿನ ಸಣ್ಣ ಪ್ರೋಗ್ರಾಂ ಬರೆಯುತ್ತೇವೆ.
🚨 ಎಚ್ಚರಿಕೆಯ ಟಿಪ್ಪಣಿ
ಈ ಡೇಟಾಸೆಟ್ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವಾಗ ನೀವು ಪಠ್ಯದಿಂದ ಏನಾದರೂ ಲೆಕ್ಕಹಾಕುವ ಕೋಡ್ ಬರೆಯುತ್ತೀರಿ, ನೀವು ಸ್ವತಃ ಪಠ್ಯವನ್ನು ಓದದೆ ಅಥವಾ ವಿಶ್ಲೇಷಣೆ ಮಾಡದೆ. ಇದು NLP ಯ ಸಾರಾಂಶ, ಅರ್ಥ ಅಥವಾ ಭಾವನೆಯನ್ನು ಮಾನವನು ಮಾಡದೆ ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು. ಆದಾಗ್ಯೂ, ನೀವು ಕೆಲವು ನಕಾರಾತ್ಮಕ ವಿಮರ್ಶೆಗಳನ್ನು ಓದಬಹುದು. ನಾನು ನಿಮಗೆ ಅದನ್ನು ಓದಬೇಡಿ ಎಂದು ಸಲಹೆ ನೀಡುತ್ತೇನೆ, ಏಕೆಂದರೆ ನೀವು ಅದನ್ನು ಮಾಡಬೇಕಾಗಿಲ್ಲ. ಕೆಲವು ವಿಮರ್ಶೆಗಳು ಮೂರ್ಖತನ ಅಥವಾ ಅಸಂಬಂಧಿತ ನಕಾರಾತ್ಮಕ ಹೋಟೆಲ್ ವಿಮರ್ಶೆಗಳಾಗಿವೆ, ಉದಾಹರಣೆಗೆ "ಹವಾಮಾನ ಚೆನ್ನಾಗಿರಲಿಲ್ಲ", ಇದು ಹೋಟೆಲ್ ಅಥವಾ ಯಾರಿಗಾದರೂ ನಿಯಂತ್ರಣದಲ್ಲಿಲ್ಲ. ಆದರೆ ಕೆಲವು ವಿಮರ್ಶೆಗಳಲ್ಲಿ ಕತ್ತಲೆ ಬದಿಯೂ ಇದೆ. ಕೆಲವೊಮ್ಮೆ ನಕಾರಾತ್ಮಕ ವಿಮರ್ಶೆಗಳು ಜಾತ್ಯಾತೀತ, ಲಿಂಗಭೇದ, ಅಥವಾ ವಯೋಭೇದವಾಗಿರುತ್ತವೆ. ಇದು ದುಃಖದಾಯಕವಾದರೂ ಸಾರ್ವಜನಿಕ ವೆಬ್ಸೈಟ್ನಿಂದ ಸ್ಕ್ರೇಪ್ ಮಾಡಿದ ಡೇಟಾಸೆಟ್ನಲ್ಲಿ ನಿರೀಕ್ಷಿಸಬಹುದಾದದ್ದು. ಕೆಲವು ವಿಮರ್ಶಕರು ಅಸಹ್ಯ, ಅಸೌಕರ್ಯಕರ ಅಥವಾ ಕೋಪದಾಯಕ ವಿಮರ್ಶೆಗಳನ್ನು ಬರೆದಿರುತ್ತಾರೆ. ನಿಮ್ಮನ್ನು ಕೋಪಗೊಳ್ಳಿಸುವುದಕ್ಕಿಂತ ಕೋಡ್ ಭಾವನೆಯನ್ನು ಅಳೆಯಲು ಬಿಡುವುದು ಉತ್ತಮ. ಅಂದರೆ, ಇಂತಹವರು ಅಲ್ಪಸಂಖ್ಯಾತರು, ಆದರೆ ಇರುತ್ತಾರೆ.
ಡೇಟಾವನ್ನು ದೃಶ್ಯವಾಗಿ ಪರಿಶೀಲಿಸುವುದು ಸಾಕು, ಈಗ ನೀವು ಕೆಲವು ಕೋಡ್ ಬರೆಯುತ್ತೀರಿ ಮತ್ತು ಕೆಲವು ಉತ್ತರಗಳನ್ನು ಪಡೆಯುತ್ತೀರಿ! ಈ ವಿಭಾಗವು pandas ಗ್ರಂಥಾಲಯವನ್ನು ಬಳಸುತ್ತದೆ. ನಿಮ್ಮ ಮೊದಲ ಕಾರ್ಯ CSV ಡೇಟಾವನ್ನು ಲೋಡ್ ಮಾಡಿ ಓದಲು ಸಾಧ್ಯವಾಗುವಂತೆ ಮಾಡುವುದು. pandas ಗ್ರಂಥಾಲಯದಲ್ಲಿ ವೇಗವಾದ CSV ಲೋಡರ್ ಇದೆ, ಮತ್ತು ಫಲಿತಾಂಶವನ್ನು ಡೇಟಾಫ್ರೇಮ್ನಲ್ಲಿ ಇಡಲಾಗುತ್ತದೆ, ಹಿಂದಿನ ಪಾಠಗಳಂತೆ. ನಾವು ಲೋಡ್ ಮಾಡುತ್ತಿರುವ CSV ನಲ್ಲಿ ಅರ್ಧ ಮಿಲಿಯನ್ಕ್ಕಿಂತ ಹೆಚ್ಚು ಸಾಲುಗಳಿವೆ, ಆದರೆ ಕೇವಲ 17 ಕಾಲಮ್ಗಳಿವೆ. pandas ನಿಮಗೆ ಡೇಟಾಫ್ರೇಮ್ನೊಂದಿಗೆ ಸಂವಹನ ಮಾಡಲು ಬಹಳ ಶಕ್ತಿಶಾಲಿ ವಿಧಾನಗಳನ್ನು ನೀಡುತ್ತದೆ, ಪ್ರತಿಯೊಂದು ಸಾಲಿನ ಮೇಲೆ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಮಾಡಲು ಸಹ.
ಈ ಪಾಠದಿಂದ ಮುಂದುವರಿದಂತೆ, ಕೆಲವು ಕೋಡ್ ತುಣುಕುಗಳು ಮತ್ತು ಕೋಡ್ ವಿವರಣೆಗಳು ಮತ್ತು ಫಲಿತಾಂಶಗಳ ಅರ್ಥದ ಬಗ್ಗೆ ಚರ್ಚೆಗಳು ಇರುತ್ತವೆ. ನಿಮ್ಮ ಕೋಡ್ಗೆ ಸೇರಿಸಿರುವ notebook.ipynb ಅನ್ನು ಬಳಸಿ.
ನೀವು ಬಳಸಲಿರುವ ಡೇಟಾ ಫೈಲ್ ಅನ್ನು ಲೋಡ್ ಮಾಡುವುದರಿಂದ ಪ್ರಾರಂಭಿಸೋಣ:
# CSV ನಿಂದ ಹೋಟೆಲ್ ವಿಮರ್ಶೆಗಳನ್ನು ಲೋಡ್ ಮಾಡಿ
import pandas as pd
import time
# ಫೈಲ್ ಲೋಡ್ ಸಮಯವನ್ನು ಲೆಕ್ಕಿಸಲು ಪ್ರಾರಂಭ ಮತ್ತು ಅಂತ್ಯದ ಸಮಯವನ್ನು ಬಳಸಲು ಸಮಯವನ್ನು ಆಮದು ಮಾಡಿಕೊಳ್ಳಲಾಗುತ್ತಿದೆ
print("Loading data file now, this could take a while depending on file size")
start = time.time()
# df ಎಂದರೆ 'ಡೇಟಾಫ್ರೇಮ್' - ನೀವು ಫೈಲ್ ಅನ್ನು ಡೇಟಾ ಫೋಲ್ಡರ್ಗೆ ಡೌನ್ಲೋಡ್ ಮಾಡಿದ್ದೀರಾ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ
df = pd.read_csv('../../data/Hotel_Reviews.csv')
end = time.time()
print("Loading took " + str(round(end - start, 2)) + " seconds")ಡೇಟಾ ಲೋಡ್ ಆದ ನಂತರ, ನಾವು ಅದರಲ್ಲಿ ಕೆಲವು ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಮಾಡಬಹುದು. ಮುಂದಿನ ಭಾಗಕ್ಕಾಗಿ ಈ ಕೋಡ್ ಅನ್ನು ನಿಮ್ಮ ಪ್ರೋಗ್ರಾಂನ ಮೇಲ್ಭಾಗದಲ್ಲಿ ಇಡಿ.
ಈ ಪ್ರಕರಣದಲ್ಲಿ, ಡೇಟಾ ಈಗಾಗಲೇ ಶುದ್ಧ ಆಗಿದೆ, ಅಂದರೆ ಅದು ಕೆಲಸ ಮಾಡಲು ಸಿದ್ಧವಾಗಿದೆ, ಮತ್ತು ಅಲಂಕೃತ ಭಾಷೆಗಳ ಅಕ್ಷರಗಳನ್ನು ಹೊಂದಿಲ್ಲ, ಇದು ಆಲ್ಗೋರಿದಮ್ಗಳಿಗೆ ತೊಂದರೆ ಉಂಟುಮಾಡಬಹುದು, ಅವು ಕೇವಲ ಇಂಗ್ಲಿಷ್ ಅಕ್ಷರಗಳನ್ನು ನಿರೀಕ್ಷಿಸುತ್ತವೆ.
✅ ನೀವು ಕೆಲವೊಮ್ಮೆ NLP ತಂತ್ರಗಳನ್ನು ಅನ್ವಯಿಸುವ ಮೊದಲು ಸ್ವರೂಪಗೊಳಿಸುವ ಪ್ರಾಥಮಿಕ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಅಗತ್ಯವಿರುವ ಡೇಟಾ ಜೊತೆ ಕೆಲಸ ಮಾಡಬೇಕಾಗಬಹುದು, ಆದರೆ ಈ ಬಾರಿ ಅಲ್ಲ. ನೀವು ಮಾಡಬೇಕಾದರೆ, ನೀವು ಇಂಗ್ಲಿಷ್ ಅಲ್ಲದ ಅಕ್ಷರಗಳನ್ನು ಹೇಗೆ ನಿರ್ವಹಿಸುತ್ತೀರಿ?
ಡೇಟಾ ಲೋಡ್ ಆದ ನಂತರ, ನೀವು ಕೋಡ್ ಮೂಲಕ ಅದನ್ನು ಅನ್ವೇಷಿಸಬಹುದೆಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ನೀವು ಬಹುಶಃ Negative_Review ಮತ್ತು Positive_Review ಕಾಲಮ್ಗಳ ಮೇಲೆ ಗಮನಹರಿಸಲು ಇಚ್ಛಿಸುವಿರಿ. ಅವು ನಿಮ್ಮ NLP ಆಲ್ಗೋರಿದಮ್ಗಳಿಗೆ ಪ್ರಕ್ರಿಯೆ ಮಾಡಲು ನೈಸರ್ಗಿಕ ಪಠ್ಯದಿಂದ ತುಂಬಿವೆ. ಆದರೆ ಕಾಯಿರಿ! NLP ಮತ್ತು ಭಾವನೆಯಲ್ಲಿ ಮುಳುಗುವ ಮೊದಲು, ಕೆಳಗಿನ ಕೋಡ್ ಅನ್ನು ಅನುಸರಿಸಿ ಡೇಟಾಸೆಟ್ನಲ್ಲಿ ನೀಡಲಾದ ಮೌಲ್ಯಗಳು pandas ಬಳಸಿ ಲೆಕ್ಕಹಾಕಿದ ಮೌಲ್ಯಗಳಿಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತವೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.
ಈ ಪಾಠದ ಮೊದಲ ಕಾರ್ಯ ಡೇಟಾಫ್ರೇಮ್ ಅನ್ನು ಪರಿಶೀಲಿಸುವ ಕೋಡ್ ಬರೆಯುವುದು (ಬದಲಾವಣೆ ಮಾಡದೆ) ಕೆಳಗಿನ ದೃಢೀಕರಣಗಳು ಸರಿಯೇ ಎಂದು ಪರಿಶೀಲಿಸುವುದು.
ಅನೇಕ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಕಾರ್ಯಗಳಂತೆ, ಇದನ್ನು ಪೂರ್ಣಗೊಳಿಸುವ ಹಲವು ಮಾರ್ಗಗಳಿವೆ, ಆದರೆ ಉತ್ತಮ ಸಲಹೆ ಎಂದರೆ ಸರಳ, ಸುಲಭವಾದ ಮಾರ್ಗವನ್ನು ಆರಿಸುವುದು, ವಿಶೇಷವಾಗಿ ನೀವು ಭವಿಷ್ಯದಲ್ಲಿ ಈ ಕೋಡ್ಗೆ ಮರಳುವಾಗ ಅದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಸುಲಭವಾಗಿರುತ್ತದೆ. ಡೇಟಾಫ್ರೇಮ್ಗಳೊಂದಿಗೆ, ನೀವು ಬಯಸುವ ಕಾರ್ಯವನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಮಾಡಲು ಸಾಮಾನ್ಯವಾಗಿ ಮಾರ್ಗವಿರುವ ಸಮಗ್ರ API ಇದೆ.
ಕೆಳಗಿನ ಪ್ರಶ್ನೆಗಳನ್ನು ಕೋಡಿಂಗ್ ಕಾರ್ಯಗಳಾಗಿ ಪರಿಗಣಿಸಿ ಮತ್ತು ಪರಿಹಾರವನ್ನು ನೋಡದೆ ಉತ್ತರಿಸಲು ಪ್ರಯತ್ನಿಸಿ.
- ನೀವು appena ಲೋಡ್ ಮಾಡಿದ ಡೇಟಾಫ್ರೇಮ್ನ ಆಕಾರ ಅನ್ನು ಮುದ್ರಿಸಿ (ಆಕಾರ ಎಂದರೆ ಸಾಲುಗಳ ಮತ್ತು ಕಾಲಮ್ಗಳ ಸಂಖ್ಯೆ)
- ವಿಮರ್ಶಕರ ರಾಷ್ಟ್ರೀಯತೆಗಳ ಆವರ್ತನೆ ಎಣಿಕೆ ಲೆಕ್ಕಹಾಕಿ:
Reviewer_Nationalityಕಾಲಮ್ಗೆ ಎಷ್ಟು ವಿಭಿನ್ನ ಮೌಲ್ಯಗಳಿವೆ ಮತ್ತು ಅವು ಯಾವುವು?- ಡೇಟಾಸೆಟ್ನಲ್ಲಿ ಯಾವ ವಿಮರ್ಶಕರ ರಾಷ್ಟ್ರೀಯತೆ ಅತ್ಯಂತ ಸಾಮಾನ್ಯವಾಗಿದೆ (ದೇಶ ಮತ್ತು ವಿಮರ್ಶೆಗಳ ಸಂಖ್ಯೆ ಮುದ್ರಿಸಿ)?
- ಮುಂದಿನ ಟಾಪ್ 10 ಅತ್ಯಂತ ಸಾಮಾನ್ಯ ರಾಷ್ಟ್ರೀಯತೆಗಳು ಮತ್ತು ಅವುಗಳ ಆವರ್ತನೆ ಎಣಿಕೆ ಯಾವುವು?
- ಟಾಪ್ 10 ವಿಮರ್ಶಕರ ರಾಷ್ಟ್ರೀಯತೆಗಳಿಗೆ ಪ್ರತಿ ದೇಶದ ಅತ್ಯಂತ ವಿಮರ್ಶಿಸಲಾದ ಹೋಟೆಲ್ ಯಾವುದು?
- ಪ್ರತಿ ಹೋಟೆಲ್ಗೆ ಎಷ್ಟು ವಿಮರ್ಶೆಗಳಿವೆ (ಹೋಟೆಲ್ ಆವರ್ತನೆ ಎಣಿಕೆ) ಡೇಟಾಸೆಟ್ನಲ್ಲಿ?
- ಡೇಟಾಸೆಟ್ನಲ್ಲಿ ಪ್ರತಿ ಹೋಟೆಲ್ಗೆ
Average_Scoreಕಾಲಮ್ ಇದ್ದರೂ, ನೀವು ಪ್ರತಿ ಹೋಟೆಲ್ಗೆ ಎಲ್ಲಾ ವಿಮರ್ಶಕರ ಅಂಕಗಳ ಸರಾಸರಿಯನ್ನು ಲೆಕ್ಕಹಾಕಬಹುದು. ನಿಮ್ಮ ಡೇಟಾಫ್ರೇಮ್ಗೆCalc_Average_Scoreಎಂಬ ಹೊಸ ಕಾಲಮ್ ಸೇರಿಸಿ, ಅದು ಲೆಕ್ಕಹಾಕಿದ ಸರಾಸರಿಯನ್ನು ಹೊಂದಿರಲಿ. - ಯಾವುದೇ ಹೋಟೆಲ್ಗಳಿಗೆ (1 ದಶಮಾಂಶ ಸ್ಥಾನಕ್ಕೆ ರೌಂಡ್ ಮಾಡಿದ)
Average_Scoreಮತ್ತುCalc_Average_Scoreಒಂದೇ ಇದ್ದವೆಯೇ?- ಒಂದು Python ಫಂಕ್ಷನ್ ಬರೆಯಲು ಪ್ರಯತ್ನಿಸಿ, ಅದು Series (ಸಾಲು) ಅನ್ನು ಆರ್ಗ್ಯುಮೆಂಟ್ ಆಗಿ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಮೌಲ್ಯಗಳನ್ನು ಹೋಲಿಸಿ, ಮೌಲ್ಯಗಳು ಸಮಾನವಾಗದಿದ್ದಾಗ ಸಂದೇಶವನ್ನು ಮುದ್ರಿಸುತ್ತದೆ. ನಂತರ
.apply()ವಿಧಾನವನ್ನು ಬಳಸಿ ಪ್ರತಿಯೊಂದು ಸಾಲಿನನ್ನೂ ಪ್ರಕ್ರಿಯೆ ಮಾಡಿ.
- ಒಂದು Python ಫಂಕ್ಷನ್ ಬರೆಯಲು ಪ್ರಯತ್ನಿಸಿ, ಅದು Series (ಸಾಲು) ಅನ್ನು ಆರ್ಗ್ಯುಮೆಂಟ್ ಆಗಿ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಮೌಲ್ಯಗಳನ್ನು ಹೋಲಿಸಿ, ಮೌಲ್ಯಗಳು ಸಮಾನವಾಗದಿದ್ದಾಗ ಸಂದೇಶವನ್ನು ಮುದ್ರಿಸುತ್ತದೆ. ನಂತರ
Negative_Reviewಕಾಲಮ್ನಲ್ಲಿ "No Negative" ಮೌಲ್ಯ ಇರುವ ಸಾಲುಗಳ ಸಂಖ್ಯೆಯನ್ನು ಲೆಕ್ಕಿಸಿ ಮತ್ತು ಮುದ್ರಿಸಿPositive_Reviewಕಾಲಮ್ನಲ್ಲಿ "No Positive" ಮೌಲ್ಯ ಇರುವ ಸಾಲುಗಳ ಸಂಖ್ಯೆಯನ್ನು ಲೆಕ್ಕಿಸಿ ಮತ್ತು ಮುದ್ರಿಸಿPositive_Reviewಕಾಲಮ್ನಲ್ಲಿ "No Positive" ಮತ್ತುNegative_Reviewಕಾಲಮ್ನಲ್ಲಿ "No Negative" ಮೌಲ್ಯಗಳಿರುವ ಸಾಲುಗಳ ಸಂಖ್ಯೆಯನ್ನು ಲೆಕ್ಕಿಸಿ ಮತ್ತು ಮುದ್ರಿಸಿ
-
ನೀವು appena ಲೋಡ್ ಮಾಡಿದ ಡೇಟಾಫ್ರೇಮ್ನ ಆಕಾರ ಅನ್ನು ಮುದ್ರಿಸಿ (ಆಕಾರ ಎಂದರೆ ಸಾಲುಗಳ ಮತ್ತು ಕಾಲಮ್ಗಳ ಸಂಖ್ಯೆ)
print("The shape of the data (rows, cols) is " + str(df.shape)) > The shape of the data (rows, cols) is (515738, 17)
-
ವಿಮರ್ಶಕರ ರಾಷ್ಟ್ರೀಯತೆಗಳ ಆವರ್ತನೆ ಎಣಿಕೆ ಲೆಕ್ಕಹಾಕಿ:
Reviewer_Nationalityಕಾಲಮ್ಗೆ ಎಷ್ಟು ವಿಭಿನ್ನ ಮೌಲ್ಯಗಳಿವೆ ಮತ್ತು ಅವು ಯಾವುವು?- ಡೇಟಾಸೆಟ್ನಲ್ಲಿ ಯಾವ ವಿಮರ್ಶಕರ ರಾಷ್ಟ್ರೀಯತೆ ಅತ್ಯಂತ ಸಾಮಾನ್ಯವಾಗಿದೆ (ದೇಶ ಮತ್ತು ವಿಮರ್ಶೆಗಳ ಸಂಖ್ಯೆ ಮುದ್ರಿಸಿ)?
# value_counts() ಒಂದು ಸೀರೀಸ್ ವಸ್ತುವನ್ನು ರಚಿಸುತ್ತದೆ, ಇದರಲ್ಲಿ ಸೂಚ್ಯಂಕ ಮತ್ತು ಮೌಲ್ಯಗಳಿವೆ, ಈ ಪ್ರಕರಣದಲ್ಲಿ, ದೇಶ ಮತ್ತು ವಿಮರ್ಶಕ ರಾಷ್ಟ್ರೀಯತೆಯಲ್ಲಿ ಅವುಗಳ ಸಂಭವನೀಯತೆ nationality_freq = df["Reviewer_Nationality"].value_counts() print("There are " + str(nationality_freq.size) + " different nationalities") # ಸೀರೀಸ್ನ ಮೊದಲ ಮತ್ತು ಕೊನೆಯ ಸಾಲುಗಳನ್ನು ಮುದ್ರಿಸಿ. ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ಮುದ್ರಿಸಲು nationality_freq.to_string() ಗೆ ಬದಲಾಯಿಸಿ print(nationality_freq) There are 227 different nationalities United Kingdom 245246 United States of America 35437 Australia 21686 Ireland 14827 United Arab Emirates 10235 ... Comoros 1 Palau 1 Northern Mariana Islands 1 Cape Verde 1 Guinea 1 Name: Reviewer_Nationality, Length: 227, dtype: int64
-
ಮುಂದಿನ ಟಾಪ್ 10 ಅತ್ಯಂತ ಸಾಮಾನ್ಯ ರಾಷ್ಟ್ರೀಯತೆಗಳು ಮತ್ತು ಅವುಗಳ ಆವರ್ತನೆ ಎಣಿಕೆ ಯಾವುವು?
print("The highest frequency reviewer nationality is " + str(nationality_freq.index[0]).strip() + " with " + str(nationality_freq[0]) + " reviews.") # ಮೌಲ್ಯಗಳಲ್ಲಿ ಮುಂಚಿತ ಖಾಲಿ ಜಾಗವಿದೆ, ಮುದ್ರಣಕ್ಕಾಗಿ ಅದನ್ನು strip() ತೆಗೆದುಹಾಕುತ್ತದೆ # ಅತಿ ಸಾಮಾನ್ಯ 10 ರಾಷ್ಟ್ರೀಯತೆಗಳು ಮತ್ತು ಅವುಗಳ ಆವರ್ತನೆಗಳು ಯಾವುವು? print("The next 10 highest frequency reviewer nationalities are:") print(nationality_freq[1:11].to_string()) The highest frequency reviewer nationality is United Kingdom with 245246 reviews. The next 10 highest frequency reviewer nationalities are: United States of America 35437 Australia 21686 Ireland 14827 United Arab Emirates 10235 Saudi Arabia 8951 Netherlands 8772 Switzerland 8678 Germany 7941 Canada 7894 France 7296
-
ಟಾಪ್ 10 ವಿಮರ್ಶಕರ ರಾಷ್ಟ್ರೀಯತೆಗಳಿಗೆ ಪ್ರತಿ ದೇಶದ ಅತ್ಯಂತ ವಿಮರ್ಶಿಸಲಾದ ಹೋಟೆಲ್ ಯಾವುದು?
# ಟಾಪ್ 10 ರಾಷ್ಟ್ರೀಯತೆಗಳಿಗೆ ಅತ್ಯಂತ ಹೆಚ್ಚು ವಿಮರ್ಶಿಸಲಾದ ಹೋಟೆಲ್ ಯಾವುದು # ಸಾಮಾನ್ಯವಾಗಿ pandas ನಲ್ಲಿ ನೀವು ಸ್ಪಷ್ಟ ಲೂಪ್ ಅನ್ನು ತಪ್ಪಿಸುವಿರಿ, ಆದರೆ ಮಾನದಂಡಗಳನ್ನು ಬಳಸಿ ಹೊಸ ಡೇಟಾಫ್ರೇಮ್ ರಚಿಸುವುದನ್ನು ತೋರಿಸಲು ಬಯಸಿದೆ (ಬಹಳ ದೊಡ್ಡ ಡೇಟಾ ಪ್ರಮಾಣದೊಂದಿಗೆ ಇದನ್ನು ಮಾಡಬೇಡಿ ಏಕೆಂದರೆ ಇದು ತುಂಬಾ ನಿಧಾನವಾಗಬಹುದು) for nat in nationality_freq[:10].index: # ಮೊದಲು, ಮಾನದಂಡಗಳಿಗೆ ಹೊಂದಿಕೆಯಾಗುವ ಎಲ್ಲಾ ಸಾಲುಗಳನ್ನು ಹೊಸ ಡೇಟಾಫ್ರೇಮ್ಗೆ ಹೊರತೆಗೆಯಿರಿ nat_df = df[df["Reviewer_Nationality"] == nat] # ಈಗ ಹೋಟೆಲ್ ಫ್ರೀಕ್ವೆನ್ಸಿ ಪಡೆಯಿರಿ freq = nat_df["Hotel_Name"].value_counts() print("The most reviewed hotel for " + str(nat).strip() + " was " + str(freq.index[0]) + " with " + str(freq[0]) + " reviews.") The most reviewed hotel for United Kingdom was Britannia International Hotel Canary Wharf with 3833 reviews. The most reviewed hotel for United States of America was Hotel Esther a with 423 reviews. The most reviewed hotel for Australia was Park Plaza Westminster Bridge London with 167 reviews. The most reviewed hotel for Ireland was Copthorne Tara Hotel London Kensington with 239 reviews. The most reviewed hotel for United Arab Emirates was Millennium Hotel London Knightsbridge with 129 reviews. The most reviewed hotel for Saudi Arabia was The Cumberland A Guoman Hotel with 142 reviews. The most reviewed hotel for Netherlands was Jaz Amsterdam with 97 reviews. The most reviewed hotel for Switzerland was Hotel Da Vinci with 97 reviews. The most reviewed hotel for Germany was Hotel Da Vinci with 86 reviews. The most reviewed hotel for Canada was St James Court A Taj Hotel London with 61 reviews.
-
ಪ್ರತಿ ಹೋಟೆಲ್ಗೆ ಎಷ್ಟು ವಿಮರ್ಶೆಗಳಿವೆ (ಹೋಟೆಲ್ ಆವರ್ತನೆ ಎಣಿಕೆ) ಡೇಟಾಸೆಟ್ನಲ್ಲಿ?
# ಹಳೆಯದನ್ನು ಆಧರಿಸಿ ಹೊಸ ಡೇಟಾಫ್ರೇಮ್ ಅನ್ನು ಮೊದಲಿಗೆ ರಚಿಸಿ, ಅಗತ್ಯವಿಲ್ಲದ ಕಾಲಮ್ಗಳನ್ನು ತೆಗೆದುಹಾಕಿ hotel_freq_df = df.drop(["Hotel_Address", "Additional_Number_of_Scoring", "Review_Date", "Average_Score", "Reviewer_Nationality", "Negative_Review", "Review_Total_Negative_Word_Counts", "Positive_Review", "Review_Total_Positive_Word_Counts", "Total_Number_of_Reviews_Reviewer_Has_Given", "Reviewer_Score", "Tags", "days_since_review", "lat", "lng"], axis = 1) # ಸಾಲುಗಳನ್ನು Hotel_Name ಮೂಲಕ ಗುಂಪು ಮಾಡಿ, ಅವುಗಳನ್ನು ಎಣಿಸಿ ಮತ್ತು ಫಲಿತಾಂಶವನ್ನು ಹೊಸ ಕಾಲಮ್ Total_Reviews_Found ನಲ್ಲಿ ಇಡಿ hotel_freq_df['Total_Reviews_Found'] = hotel_freq_df.groupby('Hotel_Name').transform('count') # ಎಲ್ಲಾ ನಕಲಿ ಸಾಲುಗಳನ್ನು ತೆಗೆದುಹಾಕಿ hotel_freq_df = hotel_freq_df.drop_duplicates(subset = ["Hotel_Name"]) display(hotel_freq_df)
Hotel_Name Total_Number_of_Reviews Total_Reviews_Found Britannia International Hotel Canary Wharf 9086 4789 Park Plaza Westminster Bridge London 12158 4169 Copthorne Tara Hotel London Kensington 7105 3578 ... ... ... Mercure Paris Porte d Orleans 110 10 Hotel Wagner 135 10 Hotel Gallitzinberg 173 8 ನೀವು ಗಮನಿಸಬಹುದು ಡೇಟಾಸೆಟ್ನಲ್ಲಿ ಎಣಿಸಿದ ಫಲಿತಾಂಶಗಳು
Total_Number_of_Reviewsಮೌಲ್ಯಕ್ಕೆ ಹೊಂದಿಕೆಯಾಗುತ್ತಿಲ್ಲ. ಈ ಮೌಲ್ಯವು ಹೋಟೆಲ್ಗೆ ಒಟ್ಟು ವಿಮರ್ಶೆಗಳ ಸಂಖ್ಯೆ ಸೂಚಿಸುತ್ತಿದೆಯೇ ಅಥವಾ ಎಲ್ಲಾ ವಿಮರ್ಶೆಗಳು ಸ್ಕ್ರೇಪ್ ಆಗಿಲ್ಲವೇ ಅಥವಾ ಬೇರೆ ಲೆಕ್ಕಾಚಾರವೇ ಎಂಬುದು ಸ್ಪಷ್ಟವಿಲ್ಲ. ಈ ಅಸ್ಪಷ್ಟತೆಯ ಕಾರಣದಿಂದTotal_Number_of_Reviewsಅನ್ನು ಮಾದರಿಯಲ್ಲಿ ಬಳಸಲಾಗುವುದಿಲ್ಲ. -
ಡೇಟಾಸೆಟ್ನಲ್ಲಿ ಪ್ರತಿ ಹೋಟೆಲ್ಗೆ
Average_Scoreಕಾಲಮ್ ಇದ್ದರೂ, ನೀವು ಪ್ರತಿ ಹೋಟೆಲ್ಗೆ ಎಲ್ಲಾ ವಿಮರ್ಶಕರ ಅಂಕಗಳ ಸರಾಸರಿಯನ್ನು ಲೆಕ್ಕಹಾಕಬಹುದು. ನಿಮ್ಮ ಡೇಟಾಫ್ರೇಮ್ಗೆCalc_Average_Scoreಎಂಬ ಹೊಸ ಕಾಲಮ್ ಸೇರಿಸಿ, ಅದು ಲೆಕ್ಕಹಾಕಿದ ಸರಾಸರಿಯನ್ನು ಹೊಂದಿರಲಿ.Hotel_Name,Average_Score, ಮತ್ತುCalc_Average_Scoreಕಾಲಮ್ಗಳನ್ನು ಮುದ್ರಿಸಿ.# ಒಂದು ಸಾಲನ್ನು ತೆಗೆದುಕೊಂಡು ಅದರಲ್ಲಿ ಕೆಲವು ಲೆಕ್ಕಾಚಾರಗಳನ್ನು ಮಾಡುವ ಫಂಕ್ಷನ್ ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಿ def get_difference_review_avg(row): return row["Average_Score"] - row["Calc_Average_Score"] # 'mean' ಎಂದರೆ ಗಣಿತೀಯ ಪದ 'ಸರಾಸರಿ' df['Calc_Average_Score'] = round(df.groupby('Hotel_Name').Reviewer_Score.transform('mean'), 1) # ಎರಡು ಸರಾಸರಿ ಅಂಕಗಳ ನಡುವಿನ ವ್ಯತ್ಯಾಸವನ್ನು ಹೊಂದಿರುವ ಹೊಸ ಕಾಲಮ್ ಅನ್ನು ಸೇರಿಸಿ df["Average_Score_Difference"] = df.apply(get_difference_review_avg, axis = 1) # Hotel_Name ನ ಎಲ್ಲಾ ನಕಲುಗಳನ್ನು ತೆಗೆದುಹಾಕಿ df ರಚಿಸಿ (ಹೀಗಾಗಿ ಪ್ರತಿ ಹೋಟೆಲಿಗೆ ಕೇವಲ 1 ಸಾಲು ಮಾತ್ರ) review_scores_df = df.drop_duplicates(subset = ["Hotel_Name"]) # ಕಡಿಮೆ ಮತ್ತು ಹೆಚ್ಚು ಸರಾಸರಿ ಅಂಕ ವ್ಯತ್ಯಾಸವನ್ನು ಕಂಡುಹಿಡಿಯಲು ಡೇಟಾಫ್ರೇಮ್ ಅನ್ನು ವಿಂಗಡಿಸಿ review_scores_df = review_scores_df.sort_values(by=["Average_Score_Difference"]) display(review_scores_df[["Average_Score_Difference", "Average_Score", "Calc_Average_Score", "Hotel_Name"]])
ನೀವು
Average_Scoreಮೌಲ್ಯ ಮತ್ತು ಲೆಕ್ಕಹಾಕಿದ ಸರಾಸರಿ ಅಂಕಗಳ ನಡುವೆ ಕೆಲವೊಮ್ಮೆ ವ್ಯತ್ಯಾಸ ಏಕೆ ಇದೆ ಎಂದು ಆಶ್ಚರ್ಯಪಡಬಹುದು. ಕೆಲವು ಮೌಲ್ಯಗಳು ಹೊಂದಿಕೆಯಾಗುತ್ತವೆ, ಆದರೆ ಇತರವು ವ್ಯತ್ಯಾಸ ಹೊಂದಿರುವುದಕ್ಕೆ ಕಾರಣ ತಿಳಿಯದಿದ್ದರೂ, ಈ ಸಂದರ್ಭದಲ್ಲಿ ನಾವು ಹೊಂದಿರುವ ವಿಮರ್ಶಾ ಅಂಕಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಸರಾಸರಿಯನ್ನು ಸ್ವತಃ ಲೆಕ್ಕಹಾಕುವುದು ಸುರಕ್ಷಿತ. ವ್ಯತ್ಯಾಸಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಬಹಳ ಸಣ್ಣವಾಗಿವೆ, ಇಲ್ಲಿ ಡೇಟಾಸೆಟ್ ಸರಾಸರಿ ಮತ್ತು ಲೆಕ್ಕಹಾಕಿದ ಸರಾಸರಿಯಿಂದ ಅತ್ಯಂತ ವ್ಯತ್ಯಾಸ ಹೊಂದಿರುವ ಹೋಟೆಲ್ಗಳಿವೆ:Average_Score_Difference Average_Score Calc_Average_Score Hotel_Name -0.8 7.7 8.5 Best Western Hotel Astoria -0.7 8.8 9.5 Hotel Stendhal Place Vend me Paris MGallery -0.7 7.5 8.2 Mercure Paris Porte d Orleans -0.7 7.9 8.6 Renaissance Paris Vendome Hotel -0.5 7.0 7.5 Hotel Royal Elys es ... ... ... ... 0.7 7.5 6.8 Mercure Paris Op ra Faubourg Montmartre 0.8 7.1 6.3 Holiday Inn Paris Montparnasse Pasteur 0.9 6.8 5.9 Villa Eugenie 0.9 8.6 7.7 MARQUIS Faubourg St Honor Relais Ch teaux 1.3 7.2 5.9 Kube Hotel Ice Bar 1 ಕ್ಕಿಂತ ಹೆಚ್ಚು ವ್ಯತ್ಯಾಸ ಹೊಂದಿರುವ ಹೋಟೆಲ್ ಒಂದೇ ಇದ್ದುದರಿಂದ, ನಾವು ವ್ಯತ್ಯಾಸವನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ ಲೆಕ್ಕಹಾಕಿದ ಸರಾಸರಿ ಅಂಕವನ್ನು ಬಳಸಬಹುದು ಎಂದು ಅರ್ಥ.
-
Negative_Reviewಕಾಲಮ್ನಲ್ಲಿ "No Negative" ಮೌಲ್ಯ ಇರುವ ಸಾಲುಗಳ ಸಂಖ್ಯೆಯನ್ನು ಲೆಕ್ಕಿಸಿ ಮತ್ತು ಮುದ್ರಿಸಿ -
Positive_Reviewಕಾಲಮ್ನಲ್ಲಿ "No Positive" ಮೌಲ್ಯ ಇರುವ ಸಾಲುಗಳ ಸಂಖ್ಯೆಯನ್ನು ಲೆಕ್ಕಿಸಿ ಮತ್ತು ಮುದ್ರಿಸಿ -
Positive_Reviewಕಾಲಮ್ನಲ್ಲಿ "No Positive" ಮತ್ತುNegative_Reviewಕಾಲಮ್ನಲ್ಲಿ "No Negative" ಮೌಲ್ಯಗಳಿರುವ ಸಾಲುಗಳ ಸಂಖ್ಯೆಯನ್ನು ಲೆಕ್ಕಿಸಿ ಮತ್ತು ಮುದ್ರಿಸಿ# ಲ್ಯಾಂಬ್ಡಾಗಳೊಂದಿಗೆ: start = time.time() no_negative_reviews = df.apply(lambda x: True if x['Negative_Review'] == "No Negative" else False , axis=1) print("Number of No Negative reviews: " + str(len(no_negative_reviews[no_negative_reviews == True].index))) no_positive_reviews = df.apply(lambda x: True if x['Positive_Review'] == "No Positive" else False , axis=1) print("Number of No Positive reviews: " + str(len(no_positive_reviews[no_positive_reviews == True].index))) both_no_reviews = df.apply(lambda x: True if x['Negative_Review'] == "No Negative" and x['Positive_Review'] == "No Positive" else False , axis=1) print("Number of both No Negative and No Positive reviews: " + str(len(both_no_reviews[both_no_reviews == True].index))) end = time.time() print("Lambdas took " + str(round(end - start, 2)) + " seconds") Number of No Negative reviews: 127890 Number of No Positive reviews: 35946 Number of both No Negative and No Positive reviews: 127 Lambdas took 9.64 seconds
Lambda ಗಳನ್ನು ಬಳಸದೆ ಐಟಂಗಳನ್ನು ಎಣಿಸುವ ಮತ್ತೊಂದು ವಿಧಾನ, ಮತ್ತು ಸಾಲುಗಳನ್ನು ಎಣಿಸಲು sum ಬಳಸಿ:
# ಲ್ಯಾಂಬ್ಡಾಗಳಿಲ್ಲದೆ (ನೀವು ಎರಡನ್ನೂ ಬಳಸಬಹುದು ಎಂದು ತೋರಿಸಲು ನೋಟೇಶನ್ಗಳ ಮಿಶ್ರಣವನ್ನು ಬಳಸಿಕೊಂಡು)
start = time.time()
no_negative_reviews = sum(df.Negative_Review == "No Negative")
print("Number of No Negative reviews: " + str(no_negative_reviews))
no_positive_reviews = sum(df["Positive_Review"] == "No Positive")
print("Number of No Positive reviews: " + str(no_positive_reviews))
both_no_reviews = sum((df.Negative_Review == "No Negative") & (df.Positive_Review == "No Positive"))
print("Number of both No Negative and No Positive reviews: " + str(both_no_reviews))
end = time.time()
print("Sum took " + str(round(end - start, 2)) + " seconds")
Number of No Negative reviews: 127890
Number of No Positive reviews: 35946
Number of both No Negative and No Positive reviews: 127
Sum took 0.19 secondsನೀವು ಗಮನಿಸಿದ್ದೀರಾ, 127 ಸಾಲುಗಳಲ್ಲಿ Negative_Review ಮತ್ತು Positive_Review ಕಾಲಮ್ಗಳಲ್ಲಿ ಕ್ರಮವಾಗಿ "No Negative" ಮತ್ತು "No Positive" ಮೌಲ್ಯಗಳಿವೆ. ಅಂದರೆ ವಿಮರ್ಶಕರು ಹೋಟೆಲ್ಗೆ ಸಂಖ್ಯಾತ್ಮಕ ಅಂಕ ನೀಡಿದರೂ, ಧನಾತ್ಮಕ ಅಥವಾ ನಕಾರಾತ್ಮಕ ವಿಮರ್ಶೆ ಬರೆಯಲು ನಿರಾಕರಿಸಿದ್ದಾರೆ. ಅದೃಷ್ಟವಶಾತ್, ಇದು ಸಣ್ಣ ಪ್ರಮಾಣದ ಸಾಲುಗಳು (127 ರಲ್ಲಿ 515738, ಅಥವಾ 0.02%), ಆದ್ದರಿಂದ ಇದು ನಮ್ಮ ಮಾದರಿ ಅಥವಾ ಫಲಿತಾಂಶಗಳನ್ನು ಯಾವುದೇ ವಿಶೇಷ ದಿಕ್ಕಿನಲ್ಲಿ ಬದಲಿಸುವುದಿಲ್ಲ, ಆದರೆ ವಿಮರ್ಶೆಗಳ ಡೇಟಾಸೆಟ್ನಲ್ಲಿ ವಿಮರ್ಶೆಗಳಿಲ್ಲದ ಸಾಲುಗಳಿರುವುದು ಅಚ್ಚರಿಯ ಸಂಗತಿ, ಆದ್ದರಿಂದ ಇಂತಹ ಸಾಲುಗಳನ್ನು ಅನ್ವೇಷಿಸುವುದು ಮುಖ್ಯ.
ನೀವು ಡೇಟಾಸೆಟ್ ಅನ್ನು ಅನ್ವೇಷಿಸಿದ ನಂತರ, ಮುಂದಿನ ಪಾಠದಲ್ಲಿ ನೀವು ಡೇಟಾವನ್ನು ಫಿಲ್ಟರ್ ಮಾಡಿ ಮತ್ತು ಕೆಲವು ಭಾವನಾತ್ಮಕ ವಿಶ್ಲೇಷಣೆ ಸೇರಿಸುವಿರಿ.
ಈ ಪಾಠವು, ಹಿಂದಿನ ಪಾಠಗಳಲ್ಲಿ ನೋಡಿದಂತೆ, ನಿಮ್ಮ ಡೇಟಾ ಮತ್ತು ಅದರ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಕಾರ್ಯಾಚರಣೆ ಮಾಡುವ ಮೊದಲು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಎಷ್ಟು ಮಹತ್ವದದ್ದು ಎಂಬುದನ್ನು ತೋರಿಸುತ್ತದೆ. ಪಠ್ಯ ಆಧಾರಿತ ಡೇಟಾ ವಿಶೇಷವಾಗಿ ಜಾಗರೂಕ ಪರಿಶೀಲನೆಗೆ ಒಳಪಡುತ್ತದೆ. ವಿವಿಧ ಪಠ್ಯಭರಿತ ಡೇಟಾಸೆಟ್ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ, ಮಾದರಿಯಲ್ಲಿ ಬಯಾಸ್ ಅಥವಾ ಭಾವನಾತ್ಮಕ ತಿರುವುಗಳನ್ನು ಪರಿಚಯಿಸಬಹುದಾದ ಪ್ರದೇಶಗಳನ್ನು ಕಂಡುಹಿಡಿಯಿರಿ.
ಈ NLP ಅಧ್ಯಯನ ಮಾರ್ಗವನ್ನು ತೆಗೆದುಕೊಳ್ಳಿ, ಭಾಷಣ ಮತ್ತು ಪಠ್ಯಭರಿತ ಮಾದರಿಗಳನ್ನು ನಿರ್ಮಿಸುವಾಗ ಪ್ರಯತ್ನಿಸಲು ಉಪಕರಣಗಳನ್ನು ಕಂಡುಹಿಡಿಯಿರಿ.
ಅಸ್ವೀಕಾರ:
ಈ ದಸ್ತಾವೇಜು Co-op Translator ಎಂಬ AI ಅನುವಾದ ಸೇವೆಯನ್ನು ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯತ್ತ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.