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/km/6-NLP/4-Hotel-Reviews-1
localizeflow[bot] 0653a5fdc8
chore(i18n): sync translations with latest source changes (chunk 2/2, 181 changes)
4 months ago
..
solution chore(i18n): sync translations with latest source changes (chunk 2/2, 181 changes) 4 months ago
README.md chore(i18n): sync translations with latest source changes (chunk 2/2, 181 changes) 4 months ago
assignment.md chore(i18n): sync translations with latest source changes (chunk 2/2, 181 changes) 4 months ago
notebook.ipynb chore(i18n): sync translations with latest source changes (chunk 2/2, 181 changes) 4 months ago

README.md

ការវិភាគអារម្មណ៍ជាមួយការពិនិត្យមតិសណ្ឋាគារ - ការបំលែងទិន្នន័យ

ក្នុងផ្នែកនេះ អ្នកនឹងប្រើបច្ចេកទេសក្នុងមេរៀនមុន ដើម្បីធ្វើការវិភាគទិន្នន័យស្វែងរកអំពីសំណុំទិន្នន័យធំមួយ។ ពេលអ្នកមានការយល់ដឹងល្អអំពីភាពមានប្រយោជន៍របស់ជួរឈរផ្សេងៗ អ្នកនឹងរៀន៖

  • របៀបលុបជួរឈរដែលមិនចាំបាច់
  • របៀបគណនាទិន្នន័យថ្មីមួយចំនួនដោយផ្អែកលើជួរឈរដែលមានស្រាប់
  • របៀបរក្សាទុកសំណុំទិន្នន័យដែលបានទទួលសម្រាប់ប្រើប្រាស់ក្នុងបញ្ហាចុងក្រោយ

សំនួរប្រឡងមុនមេរៀន

អត្ថបទណែនាំ

រហូតមកទល់ពេលនេះ អ្នកបានរៀនពីរបៀបដែលទិន្នន័យអត្ថបទខុសពីប្រភេទទិន្នន័យលេខសេដ្ឋកិច្ច។ ប្រសិនបើវាជាអត្ថបទដែលបានសរសេរឬនិយាយដោយមនុស្ស វាអាចត្រូវបានវិភាគដើម្បីស្វែងរកលំនាំ និងចំនួនកើតឡើង, អារម្មណ៍និងការប្រាប់អត្ថន័យ។ មេរៀននេះនាំអ្នកចូលទៅក្នុងសំណុំទិន្នន័យពិតមួយដែលមានបញ្ហាពិតៗ៖ ទិន្នន័យការពិនិត្យមតិសណ្ឋាគារ ៥១៥K នៅអឺរ៉ុប ហើយរួមបញ្ចូលជាមួយ អាជ្ញាប័ណ្ណ CC0: ផលិតផលរដ្ឋបុព្វនិយម។ វាត្រូវបានទាញយកពី Booking.com ពីប្រភពសាធារណៈ។ អ្នកបង្កើតសំណុំទិន្នន័យនេះគឺបុគ្គលឈ្មោះ Jiashen Liu។

ការរៀបចំ

អ្នកនឹងត្រូវការ៖

ការវិភាគទិន្នន័យស្វែងរក

បញ្ហានេះសន្មតថាអ្នកកំពុងបង្កើតប៊ូតណែនាំសណ្ឋាគារមួយដោយប្រើវិភាគអារម្មណ៍ និងពិន្ទុការវាយតម្លៃពីភ្ញៀវ។ សំណុំទិន្នន័យដែលអ្នកនឹងប្រើរួមបញ្ចូលការវាយតម្លៃសណ្ឋាគារចំនួន ១៤៩៣ នៅក្នុង ៦ ទីក្រុងផ្សេងគ្នា។

ដោយប្រើ 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
    • គឺជាតម្លៃលេខដែលមានទ្រង់ទ្រាយឯកតាខ្ទង់ទសភាគ១ ដែលក្នុងចន្លោះពី ២.៥ ដល់ ១០
    • វាមិនបានពណ៌នាថាទេថាហេតុអ្វីបានជាពិន្ទុល្អបំផុតគឺ ២.៥
  • Negative_Review
    • ប្រសិនបើអ្នកវាយតម្លៃមិនបានសរសេរអ្វីទេ វានឹងមាន "មិនមានអវិជ្ជមាន"
    • សូមចំណាំថាអ្នកវាយតម្លៃអាចសរសេរមតិវិជ្ជមាននៅជួរឈរអវិជ្ជមាន (ឧ. "គ្មានអ្វីអាក្រក់អំពីសណ្ឋាគារនេះទេ")
  • Review_Total_Negative_Word_Counts
    • ចំនួនពាក្យអវិជ្ជមានខ្ពស់បង្ហាញពីពិន្ទុល្ងស់ (ដោយមិនត្រួតពិនិត្យអារម្មណ៍)
  • Positive_Review
    • ប្រសិនបើអ្នកវាយតម្លៃមិនបានសរសេរអ្វី ទៀត ទេ វានឹងមាន "មិនមានវិជ្ជមាន"
    • សូមចំណាំថាអ្នកវាយតម្លៃអាចសរសេរមតិអវិជ្ជមាន នៅជួរឈរវិជ្ជមាន (ឧ. "គ្មានអ្វីល្អអំពីសណ្ឋាគារនេះទេ")
  • Review_Total_Positive_Word_Counts
    • ចំនួនពាក្យវិជ្ជមានខ្ពស់បង្ហាញពីពិន្ទុខ្ពស់ (ដោយមិនត្រួតពិនិត្យអារម្មណ៍)
  • Review_Date និង days_since_review
    • វិធានសម្រាប់ភាពថ្មីឬចាស់នៃការវាយតម្លៃអាចត្រូវបានពិនិត្យ (ការវាយតម្លៃចាស់ៗអាចមិនត្រឹមត្រូវដូចការវាយតម្លៃថ្មីៗ ព្រោះការគ្រប់គ្រងសណ្ឋា​គារបានផ្លាស់ប្តូរ ឬមានការជួសជុល ឬបានបន្ថែមអាងហែលទឹកជាដើម)
  • Tags
    • នេះជាការពិពណ៌នាសង្ខេបដែលអ្នកវាយតម្លៃអាចជ្រើសរើស ដើម្បីពិពណ៌នាប្រភេទភ្ញៀវដែលពួកគេបានជួប (ឧ. ដំណើរតែម្នាក់ ឬគ្រួសារ), ប្រភេទបន្ទប់ដែលពួកគេចងក្រង, រយៈពេលស្នាក់នៅ និងរបៀបដាក់សំណើ
    • ជាតិបង្ខំបាន ប្រើស្លាកទាំងនេះជារឿងលំបាក សូមពិនិត្យផ្នែកក្រោមដែលពិភាក្សាអំពីប្រយោជន៍របស់វា

ជួរឈរអ្នកវាយតម្លៃ

  • Total_Number_of_Reviews_Reviewer_Has_Given
    • វាអាចជា៉មូលហេតុមួយសម្រាប់ម៉ូដែលណែនាំ, ដូចជា ប្រសិនបើអ្នកអាចកំណត់បានថាអ្នកវាយតម្លៃដែលវាយតម្លៃច្រើនមានការវាយតម្លៃអវិជ្ជមានច្រើនជាងវិជ្ជមាន។ ប៉ុន្តែ អ្នកវាយតម្លៃមិនត្រូវបានកំណត់ដោយកូដជាក់លាក់ ដូច្នេះមិនអាចភ្ជាប់ទៅនឹងការវាយតម្លៃមួយជាច្រើនបាន។ មានអ្នកវាយតម្លៃ ៣០ នាក់ដែលមានការវាយតម្លៃ ១០០ ឬច្រើនជាងនេះ ប៉ុន្តែយើងមើលមិនឃើញថាវានឹងជួយម៉ូដែលណែនាំយ៉ាងដូចម្តេច។
  • Reviewer_Nationality
    • អ្នកមួយចំនួនអាចគិតថាជាតិកំណើតណាមួយអាចមានឥទ្ធិពលក្នុងការផ្តល់វិជ្ជមានឬអវិជ្ជមាន។ សូមប្រយ័ត្ននៅពេលបញ្ចូលទ្រឹស្តីបែបនេះទៅម៉ូដែលរបស់អ្នក។ ទស្សនៈទាំងនេះជាប្រភេទទំនៀមទម្លាប់ជាតិសាសន៍ (និងខ្លះគឺជាពណ៌) ហើយអ្នកវាយតម្លៃម្នាក់ៗមានការវាយតម្លៃផ្អែកលើបទពិសោធន៍ផ្ទាល់ខ្លួន។ វាអាចត្រូវបានបញ្ចូលដោយទស្សនីយភាពជាច្រើនដូចជា ការស្នាក់នៅសណ្ឋាគារកន្លងមក ចម្ងាយដំណើរ និងលក្ខណៈគំនិតផ្ទាល់ខ្លួន។ ការគិតថាជាតិនៃអ្នកវាយតម្លៃជាហេតុផលនៃពិន្ទុគឺពិបាកបដិសេធ។
ឧទាហរណ៍
ពិន្ទុមធ្យម ចំនួនការវាយតម្លៃសរុប ពិន្ទុអ្នកវាយតម្លៃ Negative
Review
Positive Review Tags
7.8 1945 2.5 នេះមិនមែនជាសណ្ឋាគារបច្ចុប្បន្នទេប៉ុន្តែជានិងស្ថានសំណង់។ ខ្ញុំត្រូវបានរំខានពីព្រឹកដើមរហូតដល់ល្ងាច ជាមួយសំលេងសំណង់ដែលមិនអាចទ្រាំទ្រ​បាន ខណៈពេលដែលកំពុងសម្រាកបន្ទាប់ពីដំណើរយូរ និងធ្វើការក្នុងបន្ទប់មួយ។ មនុស្សកំពុងធ្វើការទាំងថ្ងៃ ដូចជាពីការប្រើម៉ាស៊ីនចល័តនៅបន្ទប់ក្បែរ។ ខ្ញុំបានស្នើសុំផ្លាស់ប្ដូរបន្ទប់ ប៉ុន្តែបន្ទប់ស្ងាត់មិនមានទេ។ ដើម្បីធ្វើឱ្យរឿងអាក្រក់ឡើង ខ្ញុំត្រូវបង់លើស។ ខ្ញុំបានចាកចេញនៅល្ងាច ដូចជាខ្ញុំត្រូវទៅជិះយន្តហោះភ្លាមៗ ហើយបានទទួលវិក័យប័ត្រដែលត្រឹមត្រូវ។ ថ្ងៃបន្ទាប់ សណ្ឋាគារ បានកាត់ប្រាក់ម្តងទៀតដោយគ្មានការយល់ព្រមពីខ្ញុំ ជាមានកំណត់លើតម្លៃបានកក់។ វាជាទីតាំងអាក្រក់មែនទែន។ កុំទោសខ្លួនដោយការកក់នៅទីនេះ ទីតាំងអាក្រក់ កុំទៅជិត ដំណើរការអាជីវកម្ម គូស្នាក់នៅ បន្ទប់ទ្វេក្បាល ស្នាក់ ២ យប់

ដូចដែលអ្នកបានឃើញភ្ញៀវនេះមិនមានការសប្បាយចិត្តខ្លាំងលើការស្នាក់នៅសណ្ឋាគារនេះទេ។ សណ្ឋាគារមានពិន្ទុមធ្យមល្អ ៧.៨ និងការវាយតម្លៃ៤ ១៩៤៥ ប៉ុន្តែអ្នកវាយតម្លៃនេះបានផ្តល់ត្រឹម ២.៥ និងបានសរសេរចំនួន ១១៥ ពាក្យអំពីភាពអវិជ្ជមានរបស់ពួកគេ។ ប្រសិនបើពួកគេមិនបានសរសេរអ្វីនៅជួរឈរ Positive_Review អ្នកអាចសន្និដ្ឋានបានថាមិនមានអ្វីវិជ្ជមានទេ ប៉ុន្តែពួកគេបានសរសេរពាក្យរាបសារជាចំនួន ៧ ពាក្យ។ បើពួកគេគិតគណនាពាក្យតែប៉ុណ្ណោះ ដោយមិនគិតពីអត្ថន័យ អារម្មណ៍ នៃពាក្យពួកគេ ការយល់ឃើញអំពីចេតនារបស់អ្នកវាយតម្លៃអាចមានការប្រែក្លាយ។ វាហាក់ដូចជាពិន្ទុ ២.៥ របស់ពួកគេច្រឡំ ព្រោះប្រសិនបើស្នាក់នៅសណ្ឋាគារនេះអាក្រក់ពេក ហេតុអ្វីបានផ្តល់ពិន្ទុសោះ? ពិនិត្យយ៉ាងជិតជាង អ្នកនឹងឃើញថាពិន្ទុកំពូលតិចបំផុតគឺ ២.៥ មិនមែន ០ ទេ។ ពិន្ទុកំពូលបំផុតគឺ ១០។

ស្លាក Tags

ដូចបានបញ្ចាក់ខាងលើ ជាមើលមិនឃើញបញ្ហា ការប្រើ Tags ដើម្បីចាត់ថ្នាក់ប្រភេទទិន្នន័យហាក់ដូចមានហេតុផលល្អ។ ជាអកិសរណ៏ទាំងនេះមិនមានគោលស្តង់ដារ ដែលមានន័យថា នៅសណ្ឋាគារមួយ អាចមានជម្រើសជា បន្ទប់តែម្នាក់ , បន្ទប់សង្វាក់ទ្វេ និង បន្ទប់ទ្វេក្បាល ប៉ុន្តែនៅសណ្ឋាគារផ្សេងទៀត មានជា បន្ទប់តែម្នាក់ឈុតលម្អ , បន្ទប់គ្រីនថ្នាក់មធ្យម និង បន្ទប់អគ្គិសនី។ វាហាក់ដូចជាធាតុដូចគ្នា ប៉ុន្តែមានករណីជាច្រើន ដែលការជ្រើសរើសចាំបាច់៖

  1. ព្យាយាមផ្លាស់ប្ដូរជាភាសាតែមួយ ដែលមានការលំបាកខ្លាំង ព្រោះមិនច្បាស់ថាមីនិយមន៍ផ្លាស់ប្ដូរជួរមានអ្វីនៅក្នុងករណីនីមួយៗ (ឧ. បន្ទប់តែម្នាក់គ្រីនថ្នាក់ ត្រូវជាបន្ទប់តែម្នាក់ ប៉ុន្តែ បន្ទប់គ្រីនថ្នាក់លើសហាងសួនចម្ការឬមើលទីក្រុង ពិបាកផ្លាស់ប្ដូរជាង)

  2. អាចយកវិធី NLP សម្រាប់វាស់ទំហំទិដ្ឋភាពនៃពាក្យជាក់លាក់ដូចជា Solo, អ្នកដំណើរអាជីវកម្ម, ឬ គ្រួសារដែលមានកូនតូច ដែលមានទំនាក់ទំនងទៅនឹងសណ្ឋាគារនីមួយៗ ហើយស្នើសុំរួមបញ្ចូលវាទៅក្នុងការរៀបចំ

ស្លាកទាញ តែជាធម្មតា (ប៉ុន្តែមិនខំប្រកាន់) ជាជួរឈរដែលមានតែមួយ ដែលមានបញ្ជីតម្លៃបំបែកជាមួយគ្នាចំនួន ៥ ដល់ ៦ ដោយបំបែកជាក្បួនក្បាលទៅ ប្រភេទដំណើរ, ប្រភេទភ្ញៀវ, ប្រភេទបន្ទប់, ចំនួនយប់, និង ប្រភេទឧបករណ៍ដែលបានដាក់សំណើ។ ប៉ុន្តែព្រោះអ្នកវាយតម្លៃខ្លះមិនបំពេញទាំងអស់ (ខ្លះអាចទុកទទេមួយ), តម្លៃមិនត្រឹមត្រូវជារបៀបដូចគ្នានៅគ្រប់កន្លែងទេ។

ជាឧទាហរណ៌ ចូរយក ប្រភេទក្រុម។ មានជម្រើសតែមួយគត់ចំនួន ១០២៥ នៅក្នុងជួរឈរ Tags ដែលមិនគ្រប់ចេញពីក្រុមទេ (ខ្លះគឺជាប្រភេទបន្ទប់ ល.)។ ប្រសិនបើអ្នកចំណាត់ថ្នាក់តែវា​ដែលត្រូវ​និយាយ​ពី​គ្រួសារ លទ្ធផលនោះមាន បន្ទប់គ្រួសារ។ ប្រសិនបើអ្នកបញ្ចូលពាក្យ ជាមួយ, ឧ. រាប់ គ្រួសារជាមួយ, លទ្ធផលល្អជាងគេ មានច្រើនជាង ៨០,០០០ ក្នុងចំណោម ៥១៥,០០០ ដែលមានប្រយោបល់ថា "គ្រួសារជាមួយក្មេងតូច" ឬ "គ្រួសារជាមួយក្មេងចាស់"។

នេះមានន័យថាជួរឈរ 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 យើងបាន 7,471 ដែលនៅតែខ្វះ 1615 នៃតម្លៃ Total_Number_of_Reviews

ប្រសិនបើអ្នកយកជួរឈរ Average_Score អ្នកអាចគិតថាវាត្រូវជាពិន្ទុមធ្យមនៃការវាយតម្លៃក្នុងសំណុំទិន្នន័យ ប៉ុន្តែការពណ៌នាពី Kaggle គឺ "ពិន្ទុមធ្យមនៃសណ្ឋាគារ ដែលគណនាតាមមតិក្នុងឆ្នាំចុងក្រោយ"។ វាហាក់ដូចជាយ៉ាងមិនមានប្រយោជន៍ ប៉ុន្តែយើងអាចគណនាពិន្ទុមធ្យមផ្ទាល់ពីការវាយតម្លៃក្នុងសំណុំទិន្នន័យ។ ទៅលើសណ្ឋាគារដូចជាឧទាហរណ៍ អ្នកមានពិន្ទុ ៧.១ ប៉ុន្តែការគណនាពិន្ទុ (ពិន្ទុនักវាយតម្លៃបញ្ចូលក្នុងសំណុំទិន្នន័យ) គឺ ៦.៨។ នេះស្ទើរត្រឹមត្រូវ ប៉ុន្តែមិនមែនតម្លៃដូចគ្នា ហើយយើងអាចគ្រាន់តែសន្មត់ថាពិន្ទូក្នុងការវាយតម្លៃ Additional_Number_of_Scoring បានបន្ថែមពិន្ទុមធ្យមទៅ ៧.១។ បិសាចមិនមានវិធីសាកល្បងឲ្យដឹង លំបាកក្នុងការប្រើប្រាស់ ឬ ជឿទុកចិត្ត Average_Score, Additional_Number_of_Scoring និង Total_Number_of_Reviews ព្រោះវាគឺផ្អែកលើទិន្នន័យដែលយើងមិនមាន។

ដើម្បីបន្ថែមភាពចម្រុះ សណ្ឋាគារដែលមានការវាយតម្លៃច្រើនជាងទីពីរមានពិន្ទុស្មើ ៨.១២ ហើយសំណុំទិន្នន័យ Average_Score គឺ ៨.១។ តើពិន្ទុនេះត្រឹមត្រូវ ដោយឱកាស ឬវិវា​តញានក្នុងសណ្ឋាគារដំបូង? អំពីសក្តានុពលដែលសណ្ឋាគារទាំងនេះអាចជាអវត្តមាន និងថាប្រៀបធៀបជាច្រើនតម្លៃត្រូវគ្នា (ប៉ុន្តែមានខ្លះមិនត្រូវគ្នាដោយហេតុផលខ្លះៗ) យើងនឹងសរសេរកម្មវិធីខ្លីមួយនៅខាងក្រោមដើម្បីស្វែងយល់តម្លៃក្នុងឧទDatasetនិងកំណត់ការប្រើប្រាស់ត្រឹមត្រូវ (ឬមិនប្រើប្រាស់) នៃតម្លៃទាំងនេះ។

🚨 សេចក្តីរំពឹងប្រយ័ត្ន

នៅពេលធ្វើការជាមួយឧទនេះ អ្នកនឹងសរសេរកូដដែលគណនាអ្វីមួយពីអត្ថបទដោយមិនចាំបាច់អាន ឬវិភាគអត្ថបទដោយខ្លួនឯង។ នេះជាគ្រឹះនៃ NLP គឺការបកស្រាយអត្ថន័យ ឬអារម្មណ៍ដោយមិនចាំបាច់ឲ្យមនុស្សធ្វើវា។ ទោះយ៉ាងណា អាចមានករណីដែលអ្នកអានមតិអវិជ្ជមានខ្លះ។ ខ្ញុំស្នើអ្នកកុំអាន ព្រោះអ្នកមិនចាំបាច់អាននោះទេ។ មតិខ្លះពេកលេងសើច ឬមតិអវិជ្ជមានអំពីសណ្ឋាគារដែលមិនពាក់ព័ន្ធ ដូចជា "អាកាសធាតុខុសគ្នា" ដែលជាពីលើការគ្រប់គ្រងរបស់សណ្ឋាគារ ឬមនុស្សណាមួយ។ ប៉ុន្តែនៅមានមុខងារឈ្មួញក្នុងមតិខ្លះផងដែរ។ ពេលខ្លះមតិអវិជ្ជមានជានរណារវាងជាតិសាសន៍ ភេទ ឬវ័យ។ នេះគឺជាករណីអស្ចារ្យ ប៉ុន្តែនឹងប្រកបដោយការរំពឹងបានក្នុងឧទDatasetដែលបានទាញយកពីគេហទំព័រផ្សាយសាធារណៈ។ អ្នកពិនិត្យមតិខ្លះ ទុកមតិដែលអ្នកអាចយកចិត្តទុកដាក់ មិនស្រួល ឬធ្វើឲ្យអ្នកមានអារម្មណ៍មិនល្អ។ កាន់តែប្រសើរជាងនេះ ឲ្យកូដវាស់អារម្មណ៍ ជំនួសអ្នកអានផ្ទាល់ មិនឲ្យមានអារម្មណ៍រិះគន់ឡើងវិញ។ ទោះបីជាមានតែមនុស្សតិច ដែលសរសេរអ្វីបែបនេះ ក៏ពួកគេស្ថិតនៅតែមាន។

ហាត់ការណ៍ - ការស្វែងយល់ទិន្នន័យ

ផ្ទុកទិន្នន័យ

គឺគ្រប់គ្រាន់សម្រាប់ការត្រួតពិនិត្យទិន្នន័យដោយកាន់តែម៉ត់ចត់។ ឥឡូវនេះ អ្នកនឹងសរសេរកូដខ្លីមួយក្នុងការស្វែងរកនិងទទួលបានចម្លើយ! ផ្នែកនេះប្រើបណ្ណាល័យ pandas។ ភារកិច្ចដំបូងរបស់អ្នកគឺធានាថាអ្នកអាចផ្ទុក និងអានទិន្នន័យ CSV បាន។ បណ្ណាល័យ pandas មានកម្មវិធីផ្ទុក CSV ដែលលឿន ហើយលទ្ធផលត្រូវបានដាក់នៅក្នុង dataframe ដូចក្នុងមេរៀនមុនៗ។ CSV ដែលយើងកំពុងផ្ទុកមានជួរដេកលើសប្រាំលានជួរ តែក្នុងមានតែ ១៧ បន្ទាត់។ pandas ផ្តល់ឱ្យអ្នកនូវវិធីអនុវត្តច្រើនចំពោះ dataframe រួមទាំងការធ្វើបណ្តុលលើគ្រប់ជួរដេក។

ចាប់ពីនេះបន្តទៅក្នុងមេរៀននេះ នឹងមានកូដខ្លីៗ និងការពន្យល់ខ្លះៗពីកូដ និងការពិភាក្សាអំពីអ្វីដែលលទ្ធផលមានន័យជា។ ប្រើ 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 គឺជា 'DataFrame' - ត្រូវប្រាកដថាអ្នកបានទាញយកឯកសារទៅក្នុងថតទិន្នន័យហើយ
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 និងអារម្មណ៍ អ្នកគួរតែអនុវត្តកូដខាងក្រោមដើម្បីបញ្ជាក់ថាតម្លៃដែលផ្តល់ក្នុងឧទDataset ត្រូវគ្នាទៅនឹងតម្លៃដែលអ្នកគណនាដោយ pandas ឬអត់។

ប្រតិបត្តិការលើ Dataframe

ភារកិច្ចដំបូងក្នុងមេរៀននេះគឺពិនិត្យមើលថាតើការបញ្ជាក់ខាងក្រោមត្រឹមត្រូវឬអត់ ដោយសរសេរកូដស្រាវជ្រាវលើ dataframe (ដោយមិនប្តូរវា)។

ដូចជាភារកិច្ចកម្មវិធីជាច្រើន មានវិធីជាច្រើនក្នុងការសម្រេចបាន តែដំណើរការល្អគឺធ្វើវាឲ្យបានសាមញ្ញ និងងាយយល់ ជាពិសេសបើអ្នកនឹងត្រឡប់មកកូដនេះម្ដងទៀតនៅពេលអនាគត។ ជាមួយ dataframes មាន API គ្រប់គ្រាន់ហើយជាទូទៅមានវិធីសាស្រ្តមួយទៅមួយសម្រាប់ធ្វើអ្វីដែលអ្នកចង់បានយ៉ាងសមហេតុផល។

ច treatសំនួរខាងក្រោមជាភារកិច្ចកូដ និងព្យាយាមឆ្លើយដោយមិនមើលដំណោះស្រាយ។

  1. បោះពុម្ព out shape នៃ dataframe ដែលអ្នកទើបផ្ទុក (shape គឺជាចំនួនជួរដេក និងបន្ទាត់)
  2. គណនាចំនួនល្បិចសម្រាប់ជាតិសញ្ជាតិអ្នកទស្សនាៈ
    1. មានតម្លៃផ្សេងទៀតប៉ុន្មានសម្រាប់ជួរ Reviewer_Nationality ហើយអ្វីខ្លះ?
    2. ជាតិសញ្ជាតិិកណ្តាលបំផុតក្នុងDatasetនេះមានអ្វីខ្លះ (បោះពុម្ពប្រទេស និងចំនួនមតិ)?
    3. តើជាតិសញ្ជាតិទាំង ១០ បន្ទាប់ដែលមានចំនួនខ្លួនយ៉ាងទៀងទាត់ជាងគេជាអ្វីខ្លះ និងចំនួន?
  3. តើសណ្ឋាគារណាដែលមានការពិនិត្យខ្ពស់បំផុតសម្រាប់ជាតិសញ្ជាតិទាំង ១០ ចំណាត់ថ្នាក់ខ្ពស់បំផុត?
  4. មានមតិប៉ុន្មានសម្រាប់សណ្ឋាគារមួយៗ (ចំនួនមតិសម្រាប់សណ្ឋាគារ) នៅក្នុងDataset?
  5. ទោះបីមានជួរ Average_Score សម្រាប់សណ្ឋាគារនីមួយៗ នៅក្នុងDataset អ្នកក៏អាចគណនាគម្លាតមធ្យមសម្រាប់ម៉ាយវា​ណដែរ (យកគម្លាតមធ្យមនៃពិន្ទុអ្នកពិនិត្យទាំងអស់សម្រាប់សណ្ឋាគារ​នីមួយៗ)។ បន្ថែមជួរថ្មី Calc_Average_Score ទៅក្នុង dataframe ដែលមានគម្លាតមធ្យមបានគណនាថែមទៀត។
  6. តើមានសណ្ឋាគារណាដែលមានលក្ខណៈដូចគ្នា (កែសម្រួលទៅ១ទសភាគ) រវាង Average_Score និង Calc_Average_Score?
    1. សាកល្បងសរសេរ​មុខងារ Python មួយដែលទទួលអនុគមន៍ Series (ជួរដេក) និងប្រៀបធៀបតម្លៃ ហើយបោះពុម្ពសារ នៅពេលតម្លៃមិនស្មើគ្នា។ បន្ទាប់មកប្រើវិធី .apply() ដើម្បីដំណើរការជួរទាំងអស់។
  7. គណនា និងបោះពុម្ពចំនួនជួរដេកដែលមានតម្លៃជួរ Negative_Review ជា "No Negative"
  8. គណនា និងបោះពុម្ពចំនួនជួរដេកដែលមានតម្លៃជួរ Positive_Review ជា "No Positive"
  9. គណនា និងបោះពុម្ពចំនួនជួរដេកដែលមានតម្លៃជួរ Positive_Review ជា "No Positive" និង Negative_Review ជា "No Negative"

កូដចម្លើយ

  1. បោះពុម្ព out shape នៃ dataframe ដែលអ្នកទើបផ្ទុក (shape គឺជាចំនួនជួរដេក និងបន្ទាត់)

    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. ជាតិសញ្ជាតិិកណ្តាលបំផុតក្នុងDatasetនេះមានអ្វីខ្លះ (បោះពុម្ពប្រទេស និងចំនួនមតិ)?
    # value_counts() បង្កើតអอบ្សជាប់ Series ដែលមាន index និងតម្លៃ ក្នុងករណីនេះ ជាប្រទេស និងប្រេកង់ដែលពួកវាប្រារព្ធក្នុងជាតិសាសន៍អ្នកពិនិត្យ
    nationality_freq = df["Reviewer_Nationality"].value_counts()
    print("There are " + str(nationality_freq.size) + " different nationalities")
    # បោះពុម្ពជួរដំបូង និងចុងក្រោយរបស់ Series ។ ផ្លាស់ប្ដូរទៅ 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. តើជាតិសញ្ជាតិទាំង ១០ បន្ទាប់ដែលមានចំនួនខ្លួនយ៉ាងទៀងទាត់ជាងគេជាអ្វីខ្លះ និងចំនួន?

      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. តើសណ្ឋាគារណាដែលមានការពិនិត្យខ្ពស់បំផុតសម្រាប់ជាតិសញ្ជាតិទាំង ១០ ចំណាត់ថ្នាក់ខ្ពស់បំផុត?

    # សណ្ឋាគារណាមួយដែលមានការពិនិត្យច្រើនបំផុតសម្រាប់ជនជាតិ ១០ ប្រភេទលំដាប់ខាងលើ
    # ជាធម្មតាជាមួយ pandas អ្នកនឹងជៀសវាងការបញ្ច្រាសរុំទម្រង់ដែលច្បាស់លាស់ ប៉ុន្តកចង់បង្ហាញការបង្កើត dataframe ថ្មីដោយការជ្រើសរើសលក្ខណៈពិសេស (កុំធ្វើនេះជាមួយទិន្នន័យច្រើនព្រោះវាអាចយឺតខ្លាំង)
    for nat in nationality_freq[:10].index:
       # ជាលើកដំបូងដកបន្ទាត់ទាំងអស់ដែលផ្គូផ្គងនឹងលក្ខខណ្ឌចូលទៅក្នុង dataframe ថ្មី
       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. មានមតិប៉ុន្មានសម្រាប់សណ្ឋាគារមួយៗ (ចំនួនមតិសម្រាប់សណ្ឋាគារ) នៅក្នុងDataset?

    # ជាដំបូង បង្កើត dataframe ថ្មីមួយ ដោយផ្អែកលើតារាងចាស់ ហើយយកចេញពីជួរឈរដែលមិនចាំបាច់
    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

    អ្នកអាចសង្កេតឃើញថាលទ្ធផល គណនាទៅនូវតម្លៃក្នុងDataset មិនត្រូវគ្នាជាមួយតម្លៃនៅក្នុង Total_Number_of_Reviews។ មិនច្បាស់ថាតម្លៃនេះក្នុងDatasetតំណាងឲ្យចំនួនមតិសរុបដែលសណ្ឋាគារមាន ឬមិនទាំងអស់ត្រូវបានទាញយកបាន ឬជាគណនាផ្សេងទៀត។ ដោយសារ Total_Number_of_Reviews មិនត្រូវបានប្រើក្នុងម៉ូដែលព្រោះករណីមិនច្បាស់នេះ។

  5. ទោះបីមានជួរ Average_Score សម្រាប់សណ្ឋាគារនីមួយៗ នៅក្នុងDataset អ្នកក៏អាចគណនាគម្លាតមធ្យមសម្រាប់ម៉ាយវា​ណដែរ (យកគម្លាតមធ្យមនៃពិន្ទុអ្នកពិនិត្យទាំងអស់សម្រាប់សណ្ឋាគារ​នីមួយៗ)។ បន្ថែមជួរថ្មី Calc_Average_Score ទៅក្នុង dataframe ដែលមានគម្លាតមធ្យមបានគណនាថែមទៀត។ បោះពុម្ពជួរ 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"])
    
    # តម្រៀប dataframe ដើម្បីស្វែងរកភាពខ្ពស់ និងទាបបំផុតនៃភាពខុសគ្នារវាងពិន្ទុមធ្យម
    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 និងហេតុអ្វីបានជា ពេលខ្លះខុសពីគម្លាតមធ្យមដែលគណនា។ ពិចារណាថាយើងមិនអាចដឹងថា ហេតុអ្វីខ្លះប៉ុន្មានតម្លៃត្រូវគ្នា ប៉ុន្តែខ្លះមានការប្រែប្រួលដូច្នេះ។ វាជាការប្រសើរបំផុតក្នុងករណីនេះ សម្រាប់ប្រើពិន្ទុពិនិត្យដែលយើងមានដើម្បីគណនាគម្លាតមធ្យមដោយខ្លួនឯង។ ទោះជាយ៉ាងណា ការប្រែប្រួលភាគច្រើនមានតិចណាស់។ នៅទីនេះគឺជាសណ្ឋាគារដែលមានភាពខុសគ្នាច្រើនបំផុតរវាងគម្លាតមធ្យមនៅក្នុងDataset និងគម្លាតមធ្យមដែលគណនា៖

    ផ្សេងគ្នាគម្លាតមធ្យម គម្លាតមធ្យម គម្លាតមធ្យមគណនា ឈ្មោះសណ្ឋាគារ
    -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

    មានតែសណ្ឋាគារមួយតែប៉ុណ្ណោះដែលមានភាពខុសគ្នានៃពិន្ទុលើស ១ នេះមានន័យថាយើងអាចអបអរសាទរនូវការមិនគិតពីភាពខុសគ្នា និងប្រើគម្លាតមធ្យមដែលគណនាផ្ទាល់បាន។

  6. គណនា និងបោះពុម្ពចំនួនជួរដេកដែលមានតម្លៃជួរ Negative_Review ជា "No Negative"

  7. គណនា និងបោះពុម្ពចំនួនជួរដេកដែលមានតម្លៃជួរ Positive_Review ជា "No Positive"

  8. គណនា និងបោះពុម្ពចំនួនជួរដេកដែលមានតម្លៃជួរ Positive_Review ជា "No Positive" និង Negative_Review ជា "No Negative"

    # ជាមួយ lambdas:
    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
    

វិធីផ្សេងទៀត

វិធីផ្សេងទៀតដើម្បីរាប់ធាតុនៅគ្មាន Lambdas ហើយប្រើ sum ដើម្បីរាប់ជួរដេក៖

# ដោយគ្មាន lambdas (ប្រើការលាយបញ្ចូលនៃកំណត់ត្រាដើម្បីបង្ហាញថាអ្នកអាចប្រើទាំងពីរបាន)
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

អ្នកអាចមានចំណាប់អារម្មណ៍ថា មាន១២៧ជួរដេកដែលមានទាំង "No Negative" និង "No Positive" សម្រាប់ជួរ Negative_Review និង Positive_Review ដែលមានតំលៃនោះតាមលំដាប់។ នេះមានន័យថាអ្នកពិនិត្យបានផ្តល់ពិន្ទុត្រួតពិនិត្យសណ្ឋាគារ ប៉ុន្តែបានច្រានចោលមិនសរសេរពត៌មានវិជ្ជមាន ឬអវិជ្ជមានឡើយ។ អំណោយឥតបល់ មានតែមតិគត់ប៉ុណ្ណោះ (១២៧ ក្នុងចំនួន ៥១៥៧៣៨, ប្រហែល ០.០២%) ដូច្នេះវា ប្រហែលមិនប៉ះពាល់ឬឧបាំងពីលទ្ធផលម៉ូដែល ឬលទ្ធផលណាមួយទេ ប៉ុន្តែអ្នកប្រហែលមិនរំពឹងទុកថា dataset មួយដែលមានជាបន្ទាត់មតិ មានជួរដេកគ្មានមតិដែលសរសេរឡើយ ដូច្នេះវាគួរតែមានការស្វែងរកជ្រុងតម្កើងយ៉ាងណាមួយ។

ឥឡូវនេះអ្នកបានស្វែងរកឧទម្ដងហើយ មេរៀនបន្ទាប់ អ្នកនឹងតែងតែត្រងទិន្នន័យ និងបន្ថែមការវិភាគអារម្មណ៍។


🚀 បញ្ហា

មេរៀននេះបង្ហាញថា ដូចដែលយើងបានឃើញក្នុងមេរៀនមុនៗ វាសំខាន់យ៉ាងខ្លាំងក្នុងការយល់ដឹងអំពីទិន្នន័យរបស់អ្នក និងចំណុចខ្សោយរបស់វា មុនធ្វើប្រតិបត្តិការណ៍លើវា។ ទិន្នន័យផ្អែកលើអត្ថបទ ជាពិសេស ត្រូវការត្រួតពិនិត្យយ៉ាងប្រុងប្រយ័ត្ន។ រុករកដោយDatasetដែលមានអត្ថបទច្រើន និងស្វែងរកតំបន់ដែលអាចនាំឲ្យមានចំណោទធ្វើឲ្យម៉ូដែលមានអារម្មណ៍ក្រិតប្រើប្រាស់ ឬបង្វិលភ្នែក។

កម្រងសម្រាប់បញ្ញត្តិក្រៅម៉ោង

ការត្រួតពិនិត្យ និងរៀនដោយខ្លួនឯង

ចូលរួម ផ្លូវការសិក្សាអំពី NLP ដើម្បីស្វែងរកឧបករណ៍ដែលអាចប្រើបង្កើតម៉ូដែលសន្ទស្សន៍និងអត្ថបទច្រើន។

ភារកិច្ច

NLTK


ការបដិសេធៈ
ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI Co-op Translator។ ខណៈពេលដែលយើងខិតខំប្រឹងប្រែងស្វែងរកភាពត្រឹមត្រូវ សូមយល់ព្រមថាការបកប្រែដោយស្វ័យប្រវត្តិក្នុងខ្លះអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមនៅក្នុងភាសំបុរាណគួរត្រូវបានពិចារណាថាជាផ្លូវការជាព័ត៌មានសំខាន់។ សម្រាប់ព័ត៌មានសំខាន់ណាស់ យើងបញ្ជាក់ថាការបកប្រែដោយមនុស្សវិជ្ជាជីវៈគឺត្រូវបានណែនាំ។ យើងមិនដាក់ចំណាយខ្ចីចំពោះការយល់មិនត្រឹមត្រូវ ឬការបកប្រែខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។