You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ML-For-Beginners/translations/pa/6-NLP/4-Hotel-Reviews-1/README.md

60 KiB

ਹੋਟਲ ਸਮੀਖਿਆਵਾਂ ਨਾਲ ਮਨੋਭਾਵ ਵਿਸ਼ਲੇਸ਼ਣ - ਡੇਟਾ ਪ੍ਰੋਸੈਸਿੰਗ

ਇਸ ਸੈਕਸ਼ਨ ਵਿੱਚ, ਤੁਸੀਂ ਪਿਛਲੇ ਪਾਠਾਂ ਵਿੱਚ ਵਰਤੇ ਗਏ ਤਕਨੀਕਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ ਵੱਡੇ ਡੇਟਾਸੇਟ ਦੀ ਖੋਜੀ ਡੇਟਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰੋਗੇ। ਜਦੋਂ ਤੱਕ ਤੁਹਾਨੂੰ ਵੱਖ-ਵੱਖ ਕਾਲਮਾਂ ਦੀ ਉਪਯੋਗਿਤਾ ਬਾਰੇ ਵਧੀਆ ਸਮਝ ਹੋ ਜਾਵੇ, ਤੁਸੀਂ ਇਹ ਸਿੱਖੋਗੇ:

  • ਕਿਵੇਂ ਗੈਰਜ਼ਰੂਰੀ ਕਾਲਮ ਹਟਾਏ ਜਾਣ
  • ਮੌਜੂਦਾ ਕਾਲਮਾਂ ਦੇ ਆਧਾਰ 'ਤੇ ਕੁਝ ਨਵੇਂ ਡੇਟਾ ਕਿਵੇਂ ਕੈਲਕੁਲੈਟ ਕੀਤੇ ਜਾਣ
  • ਆਖਰੀ ਚੈਲੈਂਜ ਵਿੱਚ ਵਰਤੋਂ ਲਈ ਨਤੀਜੇ ਵਜੋਂ ਡੇਟਾਸੇਟ ਨੂੰ ਕਿਵੇਂ ਸੇਵ ਕਰਨਾ

ਪੂਰਵ-ਲੈਕਚਰ ਕਵਿਜ਼

ਪਰੇਚਾਇ

ਹੁਣ ਤਕ ਤੁਸੀਂ ਸਿੱਖਿਆ ਕਿ ਟੈਕਸਟ ਡੇਟਾ ਗਿਣਤੀਕ ਤਰ੍ਹਾਂ ਦੇ ਡੇਟਾ ਤੋਂ ਕਿਵੇਂ ਵੱਖਰਾ ਹੁੰਦਾ ਹੈ। ਜੇ ਇਹ ਉਸ ਮਨੁੱਖ ਵੱਲੋਂ ਲਿਖਿਆ ਜਾਂ ਬੋਲਿਆ ਗਿਆ ਹੈ, ਤਾਂ ਇਹ ਪੈਟਰਨ ਅਤੇ ਫ੍ਰੀਕੁਐਂਸੀਜ਼, ਮਨੋਭਾਵ ਅਤੇ ਅਰਥ ਲੱਭਣ ਲਈ ਵਿਸ਼ਲੇਸ਼ਣ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। ਇਹ ਪਾਠ ਤੁਹਾਨੂੰ ਇੱਕ ਅਸਲੀ ਡੇਟਾਸੇਟ ਅਤੇ ਅਸਲੀ ਚੁਣੌਤੀ ਵਿੱਚ ਲੈ ਜਾਂਦਾ ਹੈ: ਯੂਰਪ ਵਿੱਚ 515K ਹੋਟਲ ਸਮੀਖਿਆਵਾਂ ਦਾ ਡੇਟਾ ਜੋ CC0: ਪਬਲਿਕ ਡੋਮੇਨ ਲਾਇਸੈਂਸ ਵਾਲਾ ਹੈ। ਇਹ Booking.com ਤੋਂ ਸਰਵਜਨਿਕ ਸਰੋਤਾਂ ਵਿੱਚੋਂ ਸਕ੍ਰੇਪ ਕੀਤਾ ਗਿਆ ਸੀ। ਡੇਟਾਸੇਟ ਬਣਾਉਣ ਵਾਲਾ ਜ਼ਿਆਸ਼ੇਨ ਲਿਊ ਹੈ।

ਤਿਆਰੀ

ਤੁਹਾਨੂੰ ਲੋੜ ਹੋਵੇਗੀ:

ਖੋਜੀ ਡੇਟਾ ਵਿਸ਼ਲੇਸ਼ਣ

ਇਹ ਚੈਲੈਂਜ ਮੰਨਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਮਨੋਭਾਵ ਵਿਸ਼ਲੇਸ਼ਣ ਅਤੇ ਮਹਿਮਾਨ ਸਮੀਖਿਆ ਸਕੋਰਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਹੋਟਲ ਸਿਫਾਰਸ਼ ਬੋਟ ਬਣਾ ਰਹੇ ਹੋ। ਜਿਸ ਡੇਟਾਸੇਟ ਦੀ ਤੁਸੀਂ ਵਰਤੋਂ ਕਰੋਗੇ, ਉਹ 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
    • ਇਹ ਇੱਕ ਗਿਣਤੀਕ ਮੁੱਲ ਹੈ ਜੋ ਸਭ ਤੋਂ ਘੱਟ 2.5 ਅਤੇ ਵੱਧ ਤੋਂ ਵੱਧ 10 ਵਿਚਕਾਰ 1 ਦਸ਼ਮਲਵ ਸਥਾਨ ਨਾਲ ਹੈ
    • ਇਹ ਸਮਝਾਉਣਯੋਗ ਨਹੀਂ ਕਿ 2.5 ਸਭ ਤੋਂ ਘੱਟ ਸਕੋਰ ਕਿਉਂ ਹੈ
  • Negative_Review
    • ਜੇਕਰ ਸਮੀਖਿਆਕਾਰ ਨੇ ਕੁਝ ਨਹੀਂ ਲਿਖਿਆ, ਤਾਂ ਇਹ ਖੇਤਰ "No Negative" ਵਾਲਾ ਹੋਵੇਗਾ
    • ਧਿਆਨ ਦਿਓ ਕਿ ਇੱਕ ਸਮੀਖਿਆਕਾਰ ਨੇ ਨਕਾਰਾਤਮਕ ਸਮੀਖਿਆ ਥਾਂ ਪੋਜ਼ਿਟਿਵ ਸਮੀਖਿਆ ਵੀ Negative_Review ਕਾਲਮ ਵਿੱਚ ਲਿਖੀ ਹੋ ਸਕਦੀ ਹੈ (ਜਿਵੇਂ "ਇਸ ਹੋਟਲ ਬਾਰੇ ਕੁਝ ਵੀ ਖਰਾਬ ਨਹੀਂ ਹੈ")
  • Review_Total_Negative_Word_Counts
    • ਵੱਧ ਨਕਾਰਾਤਮਕ ਸ਼ਬਦ ਗਿਣਤੀ ਘੱਟ ਸਕੋਰ ਦਰਸਾਉਂਦੀ ਹੈ (ਬਿਨਾਂ ਮਨੋਭਾਵ ਦੀ ਜਾਂਚ ਕੀਤੇ)
  • Positive_Review
    • ਜੇਕਰ ਸਮੀਖਿਆਕਾਰ ਨੇ ਕੁਝ ਨਹੀਂ ਲਿਖਿਆ, ਤਾਂ ਇਹ ਖੇਤਰ "No Positive" ਵਾਲਾ ਹੋਵੇਗਾ
    • ਧਿਆਨ ਦਿਓ ਕਿ ਇੱਕ ਸਮੀਖਿਆਕਾਰ ਨੇ ਪੋਜ਼ਿਟਿਵ ਸਮੀਖਿਆ ਥਾਂ ਨਕਾਰਾਤਮਕ ਸਮੀਖਿਆ ਭੀ Positive_Review ਕਾਲਮ ਵਿੱਚ ਲਿਖੀ ਹੋ ਸਕਦੀ ਹੈ (ਜਿਵੇਂ "ਇਸ ਹੋਟਲ ਬਾਰੇ ਕੁਝ ਵੀ ਚੰਗਾ ਨਹੀਂ ਹੈ")
  • 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 ਹੋ ਸਕਦੇ ਹਨ। ਇਹ ਇੱਕੋ ਹੀ ਚੀਜ਼ਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ, ਪਰ ਇਨ੍ਹਾਂ ਵਿੱਚ ਕਈ ਪ੍ਰਕਾਰ ਹਨ ਜਿਸ ਨਾਲ ਚੋਣ ਇਹ ਬਣ ਜਾਂਦੀ ਹੈ:

  1. ਸਾਰੇ ਸ਼ਬਦਾਂ ਨੂੰ ਇੱਕ ਮਿਆਰੀ ਰੂਪ ਵਿੱਚ ਬਦਲਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ, ਜੋ ਬਹੁਤ ਮੁਸ਼ਕਲ ਹੈ ਕਿਉਂਕਿ ਹਰ ਮਾਮਲੇ ਵਿੱਚ ਪਥ ਸਪਸ਼ਟ ਨਹੀਂ (ਉਦਾਹਰਨ ਵਜੋਂ, Classic single room ਨੂੰ Single room ਨਾਲ ਜੋੜਨਾ ਆਸਾਨ ਹੈ ਪਰ Superior Queen Room with Courtyard Garden or City View ਨੂੰ ਜੋੜਨਾ ਕਾਫ਼ੀ ਔਖਾ)

  2. ਅਸੀਂ ਇੱਕ NLP ਢੰਗ ਉਸਾਰੀਏ ਅਤੇ ਕੁਝ ਸ਼ਬਦਾਂ ਜਿਵੇਂ ਕਿ Solo, Business Traveller, ਜਾਂ Family with young kids ਦੀ ਫ੍ਰੀਕੁਐਂਸੀ ਮਾਪ ਕੇ ਉਹਨੂੰ ਹਰ ਹੋਟਲ ਲਈ ਮਾਪਾਂ, ਅਤੇ ਇਸਨੂੰ ਸਿਫਾਰਸ਼ ਵਿੱਚ ਸਮਿਲ ਕਰੋ

ਟੈਗ ਆਮ ਤੌਰ 'ਤੇ (ਪਰ ਸਦਾ ਨਹੀਂ) ਇੱਕ ਖੇਤਰ ਹੁੰਦੇ ਹਨ ਜਿਸ ਵਿੱਚ 5 ਤੋਂ 6 ਕਮਾ ਨਾਲ ਵੱਖਰੇ ਕੀਤੇ ਮੁੱਲਾਂ ਦੀ ਸੂਚੀ ਹੁੰਦੀ ਹੈ ਜੋ ਯਾਤਰਾ ਦੀ ਕਿਸਮ, ਮਹਿਮਾਨਾਂ ਦੀ ਕਿਸਮ, ਕਮਰੇ ਦੀ ਕਿਸਮ, ਰਾਤਾਂ ਦੀ ਗਿਣਤੀ, ਅਤੇ ਜਿਸ ਜੰਤਰ ਨਾਲ ਸਮੀਖਿਆ ਜਮ੍ਹਾਂ ਕੀਤੀ ਗਈ, ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ। ਪਰ ਕਿਉਂਕਿ ਕੁਝ ਸਮੀਖਿਆਕਾਰ ਹਰ ਖੇਤਰ ਨੂੰ ਪੂਰਾ ਨਹੀਂ ਕਰਦੇ (ਕੋਈ ਖਾਲੀ ਛੱਡਦੇ ਹਨ), ਇਸ ਲਈ ਮੁੱਲ ਸਦਾ ਇੱਕੋ ਕ੍ਰਮ ਵਿੱਚ ਨਹੀਂ ਹੋਂਦੇ।

ਇੱਕ ਉਦਾਹਰਨ ਵਜੋਂ, ਲਓ Type of group ਨੂੰ। ਇਸ ਖੇਤਰ ਵਿੱਚ Tags ਕਾਲਮ ਵਿੱਚ 1025 ਵੱਖ-ਵੱਖ ਸੰਭਾਵਨਾਵਾਂ ਹਨ, ਪਰ ਬਦਕਿਸਮਤੀ ਨਾਲ ਸਿਰਫ ਕੁਝ ਹੀ ਗਰੁੱਪ ਨਾਲ ਸਬੰਧਿਤ ਹਨ (ਕੁਝ ਕਮਰੇ ਦੀ ਕਿਸਮ ਆਦਿ ਹਨ)। ਜੇ ਤੁਸੀਂ ਸਿਰਫ ਉਹਨਾਂ ਨੂੰ ਛਾਨ ਟੋਟ ਕਰੋ ਜੋ ਪਰਿਵਾਰ ਬਾਰੇ ਹਨ, ਤਾਂ ਨਤੀਜੇ ਵਿੱਚ ਕਈ Family room ਕਿਸਮ ਦੇ ਨਤੀਜੇ ਹਨ। ਜੇ ਤੁਸੀਂ ਸ਼ਬਦ with ਨੂੰ ਸ਼ਾਮਿਲ ਕਰੋ, ਜਿਵੇਂ ਕਿ Family with ਵਾਲੇ ਮੁੱਲ, ਤਾਂ ਨਤੀਜੇ ਵਧੀਆ ਹਨ - 80,000 ਤੋਂ ਵੱਧ 515,000 ਵਿੱਚੋਂ "Family with young children" ਜਾਂ "Family with older children" ਵਾਲੀ ਫ੍ਰੇਜ਼ ਸ਼ਾਮਿਲ ਹੈ।

ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ Tags ਕਾਲਮ ਸਾਡੀ ਲਈ ਬਿਲਕੁਲ ਫਜ਼ੂਲ ਨਹੀਂ ਹੈ, ਪਰ ਇਸਨੂੰ ਲਾਜ਼ਮੀ ਬਨਾਉਣ ਲਈ ਕੁਝ ਕਮ ਕਰਨੇ ਪੈਣਗੇ।

ਹੋਟਲ ਦਾ ਔਸਤ ਸਕੋਰ

ਡੇਟਾਸੇਟ ਵਿੱਚ ਕੁਝ ਅਜੀਬ ਗੱਲਾਂ ਜਾਂ ਵਿਰੋਧ ਹਨ ਜੋ ਮੈਂ ਸਮਝ ਨਹੀਂ ਪਾ ਰਿਹਾ, ਪਰ ਇਹ ਇੱਥੇ ਦਰਸਾਈਆਂ ਗਈਆਂ ਹਨ ਤਾਂ ਜੋ ਤੁਸੀਂ ਆਪਣੇ ਮਾਡਲ ਬਣਾਉਂਦੇ ਸਮੇਂ ਸਾਵਧਾਨ ਰਹੋ। ਜੇ ਤੁਸੀਂ ਸਮਝ ਗਏ, ਤਾਂ ਕਿਰਪਾ ਕਰਕੇ ਵਾਰਤਾਲਾਪ ਸੈਕਸ਼ਨ ਵਿੱਚ ਦੱਸੋ!

ਡੇਟਾਸੇਟ ਵਿੱਚ ਔਸਤ ਸਕੋਰ ਅਤੇ ਸਮੀਖਿਆਵਾਂ ਦੀ ਗਿਣਤੀ ਨਾਲ ਸਬੰਧਤ ਕਾਲਮ ਹਨ:

  1. Hotel_Name
  2. Additional_Number_of_Scoring
  3. Average_Score
  4. Total_Number_of_Reviews
  5. Reviewer_Score

ਇਸ ਡੇਟਾਸੇਟ ਵਿੱਚ ਸਭ ਤੋਂ ਵੱਧ ਸਮੀਖਿਆਵਾਂ ਵਾਲਾ ਇੱਕ ਸਿੰਗਲ ਹੋਟਲ Britannia International Hotel Canary Wharf ਹੈ ਜਿਸਦੇ 4789 ਸਮੀਖਿਆਵਾਂ ਹਨ 515,000 ਵਿੱਚੋਂ। ਪਰ ਜੇ ਅਸੀਂ Total_Number_of_Reviews ਦਾ ਮੁੱਲ ਵੇਖੀਏ, ਤਾਂ ਇਹ 9086 ਹੈ। ਤੁਸੀਂ ਸੋਚ ਸਕਦੇ ਹੋ ਕਿ ਹੋਰ ਬਹੁਤ ਸਾਰੇ ਸਕੋਰ ਬਿਨਾਂ ਸਮੀਖਿਆ ਦੇ ਹਨ, ਇਸ ਲਈ ਸੰਭਵ ਹੈ ਕਿ ਅਸੀਂ Additional_Number_of_Scoring ਕਾਲਮ ਦਾ ਜੋੜ ਕਰੀਏ। ਉਹ ਮੁੱਲ 2682 ਹੈ, ਅਤੇ 4789 ਵਿੱਚ ਜੋੜਨ 'ਤੇ 7471 ਮਿਲਦੇ ਹਨ ਜੋ ਕਿ 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 ਲੋਡਰ ਹੈ, ਤੇ ਨਤੀਜਾ dataframe ਵਿੱਚ ਰੱਖਿਆ ਜਾਂਦਾ ਹੈ, ਜਿਵੇਂ ਪਿਛਲੇ ਪਾਠਾਂ ਵਿੱਚ। ਇੱਥੇ ਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ CSV ਸਾਡੇ ਕੋਲ ਆਧ ਤੇ ਕੁਝ ਸੌ ਹਜ਼ਾਰ ਕਤਾਰਾਂ ਹਨ, ਪਰ ਸਿਰਫ਼ 17 ਕਾਲਮ। pandas ਤੁਹਾਨੂੰ data frame ਨਾਲ ਘਣੇ ਤਰੀਕੇ ਨਾਲ ਕੰਮ ਕਰਨ ਦੀ ਯੋਗਤਾ ਦਿੰਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ ਹਰ ਕਤਾਰ 'ਤੇ ਅਪਰੇਸ਼ਨ ਕਰਨ ਦੀ ਸਮਰੱਥਾ ਵੀ ਸ਼ਾਮਿਲ ਹੈ।

ਇਸ ਪਾਠ ਵਿੱਚ ਹੁਣ ਤੋਂ ਅੱਗੇ, ਕੁਝ ਕੋਡ ਖੰਡ ਅਤੇ ਕੋਡ ਦਾ ਵਿਆਖਿਆਤਮਕ ਹਿੱਸਾ ਅਤੇ ਕੁਝ ਨਤੀਜਿਆਂ ਦੀ ਚਰਚਾ ਹੋਵੇਗੀ। ਆਪਣਾ ਕੋਡ ਲਈ ਸ਼ਾਮਲ 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 ਹੈ ਜੋ ਕਈ ਵਾਰ ਤੁਹਾਡੇ ਚਾਹੁੰਦੇ ਕੰਮ ਨੂੰ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਢੰਗ ਨਾਲ ਕਰਨ ਦਾ ਤਰੀਕਾ ਰੱਖਦਾ ਹੈ।

ਹੇਠਾਂ ਦਿੱਤੀਆਂ ਸਵਾਲਾਂ ਨੂੰ ਕੋਡਿੰਗ ਟਾਸਕ ਵਾਂਗ ਲਓ ਅਤੇ ਬਿਨਾਂ ਹੱਲ ਵੇਖੇ ਉਨ੍ਹਾਂ ਦਾ ਜਵਾਬ ਦੇਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ।

  1. ਜੇਹੜਾ ਡਾਟਾਫ੍ਰੇਮ ਤੁਸੀਂ ਹਾਲ ਹੀ ਵਿੱਚ ਲੋਡ ਕੀਤਾ ਹੈ ਉਸਦੇ आਕਾਰ ਨੂੰ ਪ੍ਰਿੰਟ ਕਰੋ (ਆਕਾਰ ਕਤਾਰਾਂ ਅਤੇ ਕਾਲਮਾਂ ਦੀ ਗਿਣਤੀ ਹੁੰਦੀ ਹੈ)।
  2. ਸਮੀਖਿਆਕਾਰਾਂ ਦੇ ਰਾਸ਼ਟਰਤਾ ਦੀਆਂ ਫ੍ਰੈਕਵੈਂਸੀ ਗਿਣਤੀ ਗਣਨਾ ਕਰੋ:
    1. Reviewer_Nationality ਕਾਲਮ ਲਈ ਕਿੰਨੇ ਵਿਭਿੰਨ ਮੁੱਲ ਹਨ ਅਤੇ ਉਹ ਕੀ ਹਨ?
    2. ਡੈਟਾਸੈਟ ਵਿੱਚ ਸਭ ਤੋਂ ਵੱਧ ਆਮ ਸਮੀਖਿਆਕਾਰ ਦੇਸ਼ ਕਿਹੜਾ ਹੈ (ਦੇਸ਼ ਅਤੇ ਸਮੀਖਿਆਵਾਂ ਦੀ ਗਿਣਤੀ ਪ੍ਰਿੰਟ ਕਰੋ)?
    3. ਅਗਲੇ ਸਿਖਰਲੇ 10 ਸਭ ਤੋਂ ਵੱਧ ਮਿਲਦੇ ਜੁਲਦੇ ਰਾਸ਼ਟਰਤਾ ਅਤੇ ਉਹਨਾਂ ਦੀ ਫ੍ਰੈਕਵੈਂਸੀ ਕਿੰਨੀ ਹੈ?
  3. ਟਾਪ 10 ਸਭ ਤੋਂ ਵੱਧ ਸਮੀਖਿਆਕਾਰਾਂ ਦੇ ਵੇਸ਼ਵਾਲ ਇਾਣਨਾ ਹੋਟਲ ਦੀ ਸਭ ਤੋਂ ਵੱਧ ਸਮੀਖਿਆ ਕੀਤੀ ਗਈ ਕੀ ਹੈ?
  4. ਡੈਟਾਸੈਟ ਵਿੱਚ ਹਰ ਹੋਟਲ ਲਈ ਸਮੀਖਿਆਵਾਂ ਦੀ ਗਿਣਤੀ ਕਿੰਨੀ ਹੈ (ਹੋਟਲ ਦੀ ਫ੍ਰੈਕਵੈਂਸੀ)?
  5. ਡੈਟਾਸੈਟ ਵਿੱਚ ਹਰ ਹੋਟਲ ਲਈ ਇੱਕ Average_Score ਕਾਲਮ ਹੁੰਦਾ ਹੈ, ਪਰ ਤੁਸੀਂ ਵੀ ਇੱਕ ਸਰਾਸਰੀ ਸਕੋਰ ਦੀ ਗਣਨਾ ਕਰ ਸਕਦੇ ਹੋ (ਹਰ ਹੋਟਲ ਲਈ ਸਾਰੇ ਸਮੀਖਿਆਕਾਰ ਸਕੋਰ ਦਾ ਸਰਾਸਰੀ ਪ੍ਰਾਪਤ ਕਰਨਾ)। ਆਪਣੇ ਡਾਟਾਫ੍ਰੇਮ ਵਿੱਚ ਇੱਕ ਨਵਾਂ ਕਾਲਮ ਸ਼ਾਮਲ ਕਰੋ ਜਿਸ ਦਾ ਹੈਡਰ Calc_Average_Score ਹੋਵੇ ਜਿਸ ਵਿੱਚ ਉਹ ਗਣਨਾ ਕੀਤੀ ਸਰਾਸਰੀ ਸ਼ਾਮਲ ਹੋਵੇ।
  6. ਕੀ ਕਿਸੇ ਹੋਟਲ ਦਾ Average_Score ਅਤੇ Calc_Average_Score ਇੱਕ ਦਸੰਸ਼ ਸਥਾਨ ਤੱਕ ਇੱਕੋ ਜਿਹਾ ਹੈ?
    1. ਇੱਕ ਪਾਇਥਨ ਫੰਕਸ਼ਨ ਲਿਖਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜੋ ਇੱਕ ਸਿਰੀਜ਼ (ਕਤਾਰ) ਨੂੰ ਆਰਗੁਮੈਂਟ ਦੇ ਤੌਰ ਤੇ ਲੈਂਦਾ ਹੋਵੇ ਅਤੇ ਮੁੱਲਾਂ ਦੀ ਤੁਲਨਾ ਕਰਦਾ ਹੋਵੇ, ਜਦ ਮੁੱਲ ਇਕੋ ਨਾ ਹੋਵੇ ਤਾਂ ਸੁਨੇਹਾ ਪ੍ਰਿੰਟ ਕਰੇ। ਫਿਰ .apply() ਮੈਥਡ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਹਰ ਕਤਾਰ ਨੂੰ ਇਸ ਫੰਕਸ਼ਨ ਨਾਲ ਪ੍ਰਕਿਰਿਆ ਕਰੋ।
  7. ਕਿੰਨੀ ਕਤਾਰਾਂ ਦਾ Negative_Review ਕਾਲਮ "No Negative" ਮੁੱਲ ਰੱਖਦਾ ਹੈ ਇਹ ਗਿਣਤੀ ਕਰੋ ਅਤੇ ਪ੍ਰਿੰਟ ਕਰੋ
  8. ਕਿੰਨੀ ਕਤਾਰਾਂ ਦਾ Positive_Review ਕਾਲਮ "No Positive" ਮੁੱਲ ਰੱਖਦਾ ਹੈ ਇਹ ਗਿਣਤੀ ਕਰੋ ਅਤੇ ਪ੍ਰਿੰਟ ਕਰੋ
  9. ਕਿੰਨੀ ਕਤਾਰਾਂ ਦਾ Positive_Review "No Positive" ਅਤੇ Negative_Review "No Negative" ਦੋਹਾਂ ਮੁੱਲ ਹਨ ਇਹ ਗਿਣਤੀ ਕਰੋ ਅਤੇ ਪ੍ਰਿੰਟ ਕਰੋ

ਕੋਡ ਦੇ ਜਵਾਬ

  1. ਜੇਹੜਾ ਡਾਟਾਫ੍ਰੇਮ ਤੁਸੀਂ ਹਾਲ ਹੀ ਵਿੱਚ ਲੋਡ ਕੀਤਾ ਹੈ ਉਸਦੇ आਕਾਰ ਨੂੰ ਪ੍ਰਿੰਟ ਕਰੋ (ਆਕਾਰ ਕਤਾਰਾਂ ਅਤੇ ਕਾਲਮਾਂ ਦੀ ਗਿਣਤੀ ਹੁੰਦੀ ਹੈ)।

    print("The shape of the data (rows, cols) is " + str(df.shape))
    > The shape of the data (rows, cols) is (515738, 17)
    
  2. ਸਮੀਖਿਆਕਾਰਾਂ ਦੇ ਰਾਸ਼ਟਰਤਾ ਦੀਆਂ ਫ੍ਰੈਕਵੈਂਸੀ ਗਿਣਤੀ ਗਣਨਾ ਕਰੋ:

    1. Reviewer_Nationality ਕਾਲਮ ਲਈ ਕਿੰਨੇ ਵਿਭਿੰਨ ਮੁੱਲ ਹਨ ਅਤੇ ਉਹ ਕੀ ਹਨ?
    2. ਡੈਟਾਸੈਟ ਵਿੱਚ ਸਭ ਤੋਂ ਵੱਧ ਆਮ ਸਮੀਖਿਆਕਾਰ ਦੇਸ਼ ਕਿਹੜਾ ਹੈ (ਦੇਸ਼ ਅਤੇ ਸਮੀਖਿਆਵਾਂ ਦੀ ਗਿਣਤੀ ਪ੍ਰਿੰਟ ਕਰੋ)?
    # 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
    
    1. ਅਗਲੇ ਸਿਖਰਲੇ 10 ਸਭ ਤੋਂ ਵੱਧ ਮਿਲਦੇ ਜੁਲਦੇ ਰਾਸ਼ਟਰਤਾ ਅਤੇ ਉਹਨਾਂ ਦੀ ਫ੍ਰੈਕਵੈਂਸੀ ਕਿੰਨੀ ਹੈ?

      print("The highest frequency reviewer nationality is " + str(nationality_freq.index[0]).strip() + " with " + str(nationality_freq[0]) + " reviews.")
      # ਧਿਆਨ ਦਿਓ ਕਿ ਵੈਲਯੂਜ਼ ਦੇ ਆਗੇ ਇੱਕ ਖਾਲੀ ਥਾਂ ਹੈ, ਪ੍ਰਿੰਟ ਕਰਨ ਲਈ strip() ਇਹ ਹਟਾ ਦਿੰਦਾ ਹੈ
      # ਸਭ ਤੋਂ ਆਮ ਸਿਰਲੇਖ ਦੇਸ਼ਾਂ ਦੇ ਨਾਮ ਅਤੇ ਉਹਨਾਂ ਦੀਆਂ ਆਵ੍ਰਿਤੀਆਂ ਕੀ ਹਨ?
      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
      
  3. ٹاپ 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.
    
  4. ਡੈਟਾਸੈਟ ਵਿੱਚ ਹਰ ਹੋਟਲ ਲਈ ਸਮੀਖਿਆਵਾਂ ਦੀ ਗਿਣਤੀ ਕਿੰਨੀ ਹੈ (ਹੋਟਲ ਦੀ ਫ੍ਰੈਕਵੈਂਸੀ)?

    # ਪਹਿਲਾਂ ਪੁਰਾਣੇ ਡਾਟਾ ਫਰੇਮ ਦੇ ਆਧਾਰ 'ਤੇ ਇਕ ਨਵਾਂ ਡਾਟਾ ਫਰੇਮ ਬਣਾਓ, ਜਿੱਥੇ ਲੋੜ ਨਾ ਹੋਣ ਵਾਲੀਆਂ ਕਾਲਮ ਹਟਾਈਆਂ ਜਾਣ
    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 ਮਾਡਲ ਵਿੱਚ ਵਰਤਿਆ ਨਹੀਂ ਜਾ ਰਿਹਾ।

  5. ਜਦਕਿ ਡੈਟਾਸੈਟ ਵਿੱਚ ਹਰ ਹੋਟਲ ਲਈ ਇੱਕ 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)
    
    # ਇਕ df ਬਣਾਓ ਜਿਸ ਵਿੱਚ Hotel_Name ਦੀਆਂ ਸਾਰੀਆਂ ਨਕਲਾਂ ਨਾ ਹੋਣ (ਤਾਂ ਜੋ ਹਰ ਹੋਟਲ ਲਈ ਸਿਰਫ 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 ਤੋਂ ਵੱਧ ਹੈ, ਇਹ ਮਤਲਬ ਹੈ ਕਿ ਅਸੀਂ ਸ਼ਾਇਦ ਅੰਤਰ ਨੂੰ ਅਣਡਿੱਠਾ ਕਰ ਸਕਦੇ ਹਾਂ ਅਤੇ ਗਣਨਾ ਕੀਤੇ ਸਰਾਸਰੀ ਸਕੋਰ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹਾਂ।

  6. ਗਿਣਤੀ ਕਰੋ ਅਤੇ ਪ੍ਰਿੰਟ ਕਰੋ ਕਿ ਕਿੰਨੀ ਕਤਾਰਾਂ ਵਿੱਚ ਕਾਲਮ Negative_Review ਦਾ ਮੁੱਲ "No Negative" ਹੈ।

  7. ਗਿਣਤੀ ਕਰੋ ਅਤੇ ਪ੍ਰਿੰਟ ਕਰੋ ਕਿ ਕਿੰਨੀ ਕਤਾਰਾਂ ਵਿੱਚ ਕਾਲਮ Positive_Review ਦਾ ਮੁੱਲ "No Positive" ਹੈ।

  8. ਗਿਣਤੀ ਕਰੋ ਅਤੇ ਪ੍ਰਿੰਟ ਕਰੋ ਕਿ ਕਿੰਨੀ ਕਤਾਰਾਂ ਵਿੱਚ ਕਾਲਮ 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 'ਤੇ ਲਰਨਿੰਗ ਪਾਥ ਦੀ ਵਰਤੋਂ ਕਰੋ ਜੋ ਬੋਲਣ ਅਤੇ ਲਿਖਤ-ਭਾਰੀ ਮਾਡਲ ਬਣਾਉਣ ਸਮੇਂ ਅਜ਼ਮਾਉਣ ਲਈ ਸੰਦ ਦਿਖਾਉਂਦਾ ਹੈ।

ਅਸਾਈਨਮੈਂਟ

NLTK


ਅਸਵੀਕਾਰੋਪਣ: ਇਸ ਦਸਤਾਵੇਜ਼ ਦਾ ਅਨੁਵਾਦ ਏਆਈ ਅਨੁਵਾਦ ਸੇਵਾ Co-op Translator ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀਤਾਵਾਂ ਲਈ ਯਤਨਸ਼ੀਲ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਰੱਖੋ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸਮੱਤਿਆਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼ ਆਪਣੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਅਧਿਕਾਰਕ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਜਰੂਰੀ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਅਸੀਂ ਇਸ ਅਨੁਵਾਦ ਦੇ ਉਪਯੋਗ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੀਆਂ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀਆਂ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆਵਾਂ ਲਈ ਜਵਾਬਦੇਹ ਨਹੀਂ ਹਾਂ।