Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Klasifikasi sentimen menggunakan kamus NRC dalam Python

Klasifikasi sentimen menggunakan kamus NRC dalam Python

WBOY
WBOYke hadapan
2023-09-12 08:13:02824semak imbas

Klasifikasi sentimen menggunakan kamus NRC dalam Python

Pengiktirafan emosi atau Pengiktirafan ialah kebolehan seseorang atau objek untuk melihat emosi tertentu yang dipaparkan dalam persekitaran dan meletakkannya dalam satu daripada pelbagai kategori emosi.

Klasifikasi Sentimen dalam Python ialah alternatif yang berdaya maju kepada teknik analisis sentimen tradisional yang menandai perkataan atau ayat sebagai positif atau negatif dan menetapkannya dengan sewajarnya dengan skor polariti.

Idea asas di sebalik algoritma ini ialah meniru proses pemikiran manusia, yang cuba membahagikan perkataan yang menggambarkan emosi daripada teks. Analisis dilakukan menggunakan set data latihan, di mana set maklumat pratetap dimasukkan ke dalam sistem sebagai asas untuk pengelasan.

Ini adalah pakej berdasarkan tesaurus WordNet dalam perpustakaan NLTK dan National Research Council of Canada (NRC) leksikon sentimen, yang mempunyai lebih 27,000 istilah .

Perpustakaan menggunakan kategori berikut untuk mengukur dan mengklasifikasikan kesan emosi perkataan -

  • Takut

  • Marah

  • Nantikannya

  • Amanah

  • Kejutan

  • Positif

  • Negatif

  • Sedih

  • jijik

  • kegembiraan

Langkah pemasangan

  • Langkah 1 - Pasang modul NRC menggunakan arahan pemasangan pip di terminal.

pip install NRCLex
Jika anda menggunakan Windows,

Memasang

Notebook dan Command Promptdalam jupyter secara amnya mengikut langkah yang sama.

Pemasangan dalam MacO juga mengikut arahan yang sama. Gunakan terminal secara langsung.

  • Langkah 2 - Pasang juga textblob dan nrclex untuk mengelak daripada menghadapi MissingCorpusError

  • ul>
    pip install textblob
    
    • Langkah 3 - Muat turun korpus daripada textblob

    python -m textblob.download_corpora
    

    Selepas pemasangan, kami boleh meneruskan untuk mengimport perpustakaan dan mencipta objek teks.

    Kaedah asas

    1. Teks asal kepada teks yang ditapis (untuk hasil terbaik, "teks" hendaklah unikod).

    text_object.load_raw_text(text: str)

    2. Tukar senarai perkataan token kepada senarai token

    text_object.load_token_list(list_of_tokens: list)

    3 Kembali ke senarai perkataan.

    text_object.words

    4. Mengembalikan senarai ayat.

    text_object.sentences

    5. Mengembalikan senarai impak.

    text_object.affect_list

    6. Mengembalikan kamus kesan.

    text_object.affect_dict

    7. Kembalikan kiraan emosi mentah.

    text_object.raw_emotion_scores

    8. Kembali kepada emosi tertinggi.

    text_object.top_emotions

    9. Kekerapan pulangan.

    Text_object.frequencies

    Di sini kami menggunakan fungsi top_emotions untuk mengklasifikasikan senarai perkataan berdasarkan emosi.

    Algoritma

    Langkah 1 - Import nrclex Import nrclex

    Langkah 2 - Import NRCLex daripada nrclex

    Langkah 3 - Mulakan senarai perkataan rentetan yang ingin anda klasifikasikan

    Langkah 4 - untuk i

    dalam julat len(teks)

    Langkah 4 - Sentimen = NRCLex(teks[i]) #Buat objek untuk setiap teks

    Langkah 5 - emosi.emosi_tertinggi #Klasifikasikan emosi

    Contoh

    # Import module
    import nrclex
    from nrclex import NRCLex
    
    text = ['happy', 'beautiful', 'exciting', 'depressed']
    
    # Iterate through list
    for i in range(len(text)):
    
       # call by object creation
       emotion = NRCLex(text[i])
    
       # Classify emotion
       print('\n', text[i], ': ', emotion.top_emotions) 
    

    Output

    innocent : [('trust', 0.5), ('positive', 0.5)]
    hate : [('fear', 0.2), ('anger', 0.2), ('negative', 0.2), ('sadness', 0.2), ('disgust', 0.2)]
    irritating : [('anger', 0.3333333333333333), ('negative', 0.3333333333333333), 
    ('disgust', 0.3333333333333333)]
    annoying : [('anger', 0.5), ('negative', 0.5)]
    

    Algoritma

    Langkah 1 - Import nrclex

    Langkah 2 - Import NRCLex daripada nrclex

    Langkah 3 - Mulakan senarai perkataan rentetan yang ingin anda klasifikasikan

    Langkah 4 - untuk i dalam julat len(teks)

    Langkah 4 - Sentimen = NRCLex(teks[i]) #Buat objek untuk setiap teks

    Langkah 5 - emosi.emosi_tertinggi #Klasifikasikan emosi

    Contoh

    import nrclex
    from nrclex import NRCLex
     
    # Assign list of strings
    text = ['innocent','hate', 'irritating','annoying']
     
    # Iterate through list
    for i in range(len(text)):
     
       # Create object
       emotion = NRCLex(text[i])
    
       # Classify emotion
       print('\n\n', text[i], ': ', emotion.top_emotions) 
    

    Output

    innocent :  [('trust', 0.5), ('positive', 0.5)] 
     hate :  [('fear', 0.2), ('anger', 0.2), ('negative', 0.2), ('sadness', 0.2), ('disgust', 0.2)] 
    irritating :  [('anger', 0.3333333333333333), ('negative', 0.3333333333333333), ('disgust', 0.3333333333333333)] 
     annoying :  [('anger', 0.5), ('negative', 0.5)] 
    

    Kesimpulan

    Kamus Sentimen NRC digunakan secara meluas dalam analisis sentimen dan tugas klasifikasi sentimen dalam penyelidikan dan industri. Ini bermakna terdapat komuniti besar pengguna dan sumber yang tersedia untuk sokongan dan pembangunan selanjutnya. NRCLex juga menggunakan Terjemahan Google untuk menyediakan output yang stabil untuk lebih daripada 100 bahasa di seluruh dunia, berjaya memecahkan halangan bahasa. Ini mempunyai pelbagai aplikasi dalam penjagaan kesihatan dan boleh membantu memahami tindak balas wabak. Aplikasi praktikal termasuk psikologi dan sains tingkah laku, pengesanan berita palsu dan interaksi manusia-komputer yang dipertingkatkan.

Atas ialah kandungan terperinci Klasifikasi sentimen menggunakan kamus NRC dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Artikel sebelumnya:Pemprosesan selari dalam PythonArtikel seterusnya:Pemprosesan selari dalam Python