Skip to content

VKlin357/ProjectNLP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

6 Commits
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ NLP: ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ сообщСний Π½Π° спам/нСспам

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ»: ΠŸΠ°Π»Ρ‹ΡΠ°Π΅Π² Π’Π°Π΄ΠΈΠΌ, студСнт ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ курса ЀКН ПМИ

ОписаниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Π’ этом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, посвящСнном ввСдСнию Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ СстСствСнного языка (NLP), я ΠΈΡΡΠ»Π΅Π΄ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ классификации тСкстовых сообщСний Π½Π° спам ΠΈ нСспам. ЦСлью Π±Ρ‹Π»ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½Π΅ΠΉΡ€ΠΎΡΠ΅Ρ‚ΡŒ, ΡΠΏΠΎΡΠΎΠ±Π½ΡƒΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ, являСтся Π»ΠΈ сообщСниС спамом, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ извСстныС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ классификации ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Python.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ†Π΅Π»ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

  1. ΠŸΡ€ΠΎΠ²Π΅ΡΡ‚ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· датасСта.
  2. ΠžΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ тСкста.
  3. ΠŸΡ€ΠΈΠ²Π΅ΡΡ‚ΠΈ тСкстовыС Π΄Π°Π½Π½Ρ‹Π΅ ΠΊ Π²Π΅ΠΊΡ‚ΠΎΡ€Π½ΠΎΠΌΡƒ Π²ΠΈΠ΄Ρƒ.
  4. ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ ΠΎΠ±ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ΠΉΡ€ΠΎΠ½Π½ΡƒΡŽ ΡΠ΅Ρ‚ΡŒ Π½Π° основС популярных Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² для классификации спама.
  5. ΠŸΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ качСство ΠΌΠΎΠ΄Π΅Π»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊ accuracy ΠΈ ROC-AUC.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

Для выполнСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° я ΠΈΠ·ΡƒΡ‡ΠΈΠ» ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ» ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ:

  • pandas β€” для чтСния ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с датасСтами.
  • nltk β€” для ΠΏΡ€Π΅Π΄ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ тСкста (ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ стоп-слов ΠΈ Π·Π½Π°ΠΊΠΎΠ² прСпинания).
  • seaborn ΠΈ sklearn β€” для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ тСкстов, Π° Ρ‚Π°ΠΊΠΆΠ΅ для обучСния ΠΌΠΎΠ΄Π΅Π»ΠΈ.

Π― Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ·ΡƒΡ‡ΠΈΠ» ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ "мСшок слов" (bag-of-words) ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ классификации, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Наивный БайСсовский ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈ ЛогистичСская рСгрСссия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½Ρ‹ для построСния классификатора спама.

ΠŸΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· Π΄Π°Π½Π½Ρ‹Ρ…

  • Π—Π°Π³Ρ€ΡƒΠΆΠ΅Π½ датасСт с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ pandas, ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ пустыС значСния ΠΈ Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ названия столбцов.
  • ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ Π°Π½Π°Π»ΠΈΠ· Π΄Π°Π½Π½Ρ‹Ρ… для спам ΠΈ нСспам-сообщСний, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° частота встрСчаСмости Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… слов ΠΈ Π΄Π»ΠΈΠ½Π° сообщСний.

ВокСнизация ΠΈ вСкторизация

Для прСобразования тСкстов Π² Π²Π΅ΠΊΡ‚ΠΎΡ€Π° Π±Ρ‹Π»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги:

  • Π£Π΄Π°Π»Π΅Π½Ρ‹ Π·Π½Π°ΠΊΠΈ прСпинания ΠΈ стоп-слова.
  • Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° вСкторизация с использованиСм ΠΌΠΎΠ΄Π΅Π»ΠΈ "мСшок слов".

ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ

Наивный БайСсовский ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€

Для классификации я использовал Наивный БайСсовский ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (MultinomialNB), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΊΠ°Π·Π°Π» Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ 98%. МодСль ΠΈΠΌΠ΅Π΅Ρ‚ высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… прСдсказаний, Π½ΠΎ Π½Π΅ ΠΎΡ‚ΠΊΠ°Π»ΠΈΠ±Ρ€ΠΎΠ²Π°Π½Π°, Ρ‡Ρ‚ΠΎ выявлСно ΠΏΡ€ΠΈ ΠΎΡ†Π΅Π½ΠΊΠ΅ вСроятностСй прСдсказаний.

ЛогистичСская рСгрСссия

ЛогистичСская рСгрСссия Ρ‚Π°ΠΊΠΆΠ΅ достигла точности Π²Ρ‹ΡˆΠ΅ 98%, ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π»Π° Π»ΡƒΡ‡ΡˆΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΊΠ°Π»ΠΈΠ±Ρ€ΠΎΠ²ΠΊΠΈ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π΅Ρ‘ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ для использования Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

ΠžΡ†Π΅Π½ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ

Для ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ я использовал:

  • Accuracy β€” Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ классификации, которая для ΠΎΠ±Π΅ΠΈΡ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 98%.
  • ROC-AUC β€” ΠΏΠ»ΠΎΡ‰Π°Π΄ΡŒ ΠΏΠΎΠ΄ ΠΊΡ€ΠΈΠ²ΠΎΠΉ ошибок, которая Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ качСства ΠΎΠ±Π΅ΠΈΡ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ.

Π’Ρ‹Π²ΠΎΠ΄Ρ‹

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Ρ‹Π»ΠΈ достигнуты ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ†Π΅Π»ΠΈ:

  • Π― ΠΈΠ·ΡƒΡ‡ΠΈΠ» ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π» ΠΏΡ€Π΅Π΄ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π΄Π°Π½Π½Ρ‹Ρ…, создал Π²Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ² ΠΈ исслСдовал ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ качСства Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ.
  • Π‘Ρ‹Π»ΠΈ построСны ΠΈ ΠΎΠ±ΡƒΡ‡Π΅Π½Ρ‹ Π΄Π²Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ классификации спама: Наивный БайСсовский ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈ ЛогистичСская рСгрСссия.
  • ΠžΡ†Π΅Π½ΠΊΠ° ΠΏΠΎΠΊΠ°Π·Π°Π»Π°, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΡΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ с классификациСй спама, Π½ΠΎ логистичСская рСгрСссия ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Π»ΡƒΡ‡ΡˆΠΈΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ ΠΊΠ°Π»ΠΈΠ±Ρ€ΠΎΠ²ΠΊΠΈ ΠΈ точности Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ….

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published