Klasifikasi sentimen menggunakan kamus NRC dalam Python

WBOY
Lepaskan: 2023-09-12 08:13:02
ke hadapan
914 orang telah melayarinya

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
Salin selepas log masuk
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

  • pip install textblob
    
    Salin selepas log masuk
    • Langkah 3 - Muat turun korpus daripada textblob

    python -m textblob.download_corpora
    
    Salin selepas log masuk

    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)
    Salin selepas log masuk

    2. Tukar senarai perkataan token kepada senarai token

    text_object.load_token_list(list_of_tokens: list)
    Salin selepas log masuk

    3 Kembali ke senarai perkataan.

    text_object.words
    Salin selepas log masuk

    4. Mengembalikan senarai ayat.

    text_object.sentences
    Salin selepas log masuk

    5. Mengembalikan senarai impak.

    text_object.affect_list
    Salin selepas log masuk

    6. Mengembalikan kamus kesan.

    text_object.affect_dict
    Salin selepas log masuk

    7. Kembalikan kiraan emosi mentah.

    text_object.raw_emotion_scores
    Salin selepas log masuk

    8. Kembali kepada emosi tertinggi.

    text_object.top_emotions
    Salin selepas log masuk

    9. Kekerapan pulangan.

    Text_object.frequencies
    Salin selepas log masuk

    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) 
    
    Salin selepas log masuk

    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)]
    
    Salin selepas log masuk

    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) 
    
    Salin selepas log masuk

    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)] 
    
    Salin selepas log masuk

    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!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan