TypeError: unhashable type: 'list'

ini kan saya ada list di atas. terus misalya saya input kalimat "Kamu adalah seorang guru". outputnya harusnya Kamu adalah Subjek. tapi ini ada eror TypeError: unhashable type: 'list'. cara ngehandle errornya gimana?

 #deklarasi kelas kata
KATA_GANTI_1    = ['saya','Saya', 'mereka', 'kami',  'kita', 'aku', 'beta', 'daku', 'engkau']
KATA_GANTI_2    = ['anda' , 'kamu', 'engkau', 'kau', 'dikau', 'mu' , 'kalian' , 'kamu sekalian' , 'sekalian' ]
KATA_GANTI_3    = ['mereka','nya','ia','beliau','dia','bapak', 'ayah', 'ibu', 'mama' 'kakak', 'kakek', 'adik', 'nenek', 'abang', 'tante', 'bibi', 'paman']
SUBJEK          = [KATA_GANTI_1 , KATA_GANTI_2, KATA_GANTI_3]
PREDIKAT        = ['mengatakan' , 'berkata' , 'bertanya' , 'menanyakan' , 'memerintah' , 'memerintahkan' , 'menyuruh' , 'memberitahu']
KATA_HUBUNG_BERITA          = ['bahwa' , 'supaya']
KATA_HUBUNG_TANYA_TOTAL     = ['apakah' , 'kah']
KATA_HUBUNG_TANYA_PARSIAL   = ['tentang',]
KET_SIFAT   = ['sangat', 'lebih', 'kurang', 'cukup' ,'paling' , 'agak']
KATA_SIFAT  = ['cantik' 'jelek' , 'tinggi' , 'pendek' , 'kesal' , 'rapi' , 'banyak' , 'berat' , 'hebat' ]
KET_WAKTU   = ['kemarin', 'besok', 'sekarang', 'kini', 'lusa', 'siang', 'malam', 'pagi', 'sebelum', 'sesudah', 'baru saja' , 'barusan','saat', 'sesaat', 'sewaktu', 'seketika', 'yang lalu' , 'tadi']
#==========================================================================================================#

#token
from nltk.tokenize import word_tokenize
nama = input ("Masukkan Kalimat : ")
kalimat = nama.lower().split()
for index, kata in enumerate (kalimat):
    if kata in set(KATA_GANTI_1) | set(KATA_GANTI_2) | set(KATA_GANTI_3) | set(SUBJEK):
        x = "Subjek"
        print (kata + "adalah ", x)
    else :
        print ("Tidak ada Subjek")
avatar piqurs
@piqurs

11 Kontribusi 0 Poin

Diperbarui 5 tahun yang lalu

1 Jawaban:

list SUBJEK itu jadi "list inside of list" yg gak bisa kalo dijadiin set. Jadi SUBJEK nya gak usah dimasukin ke conditional statementnya. Gw coba bisa work.

<img src=' https://s8.postimg.cc/g7a58c8jp/hapus.jpg '>

Tinggal hapus aja set(SUBJEK) nya :

<pre> import tokenize, token

#deklarasi kelas kata KATA_GANTI_1 = ['saya','Saya', 'mereka', 'kami', 'kita', 'aku', 'beta', 'daku', 'engkau'] KATA_GANTI_2 = ['anda' , 'kamu', 'engkau', 'kau', 'dikau', 'mu' , 'kalian' , 'kamu sekalian' , 'sekalian' ] KATA_GANTI_3 = ['mereka','nya','ia','beliau','dia','bapak', 'ayah', 'ibu', 'mama' 'kakak', 'kakek', 'adik', 'nenek', 'abang', 'tante', 'bibi', 'paman'] SUBJEK = [KATA_GANTI_1 , KATA_GANTI_2, KATA_GANTI_3] PREDIKAT = ['mengatakan' , 'berkata' , 'bertanya' , 'menanyakan' , 'memerintah' , 'memerintahkan' , 'menyuruh' , 'memberitahu'] KATA_HUBUNG_BERITA = ['bahwa' , 'supaya'] KATA_HUBUNG_TANYA_TOTAL = ['apakah' , 'kah'] KATA_HUBUNG_TANYA_PARSIAL = ['tentang',] KET_SIFAT = ['sangat', 'lebih', 'kurang', 'cukup' ,'paling' , 'agak'] KATA_SIFAT = ['cantik' 'jelek' , 'tinggi' , 'pendek' , 'kesal' , 'rapi' , 'banyak' , 'berat' , 'hebat' ] KET_WAKTU = ['kemarin', 'besok', 'sekarang', 'kini', 'lusa', 'siang', 'malam', 'pagi', 'sebelum', 'sesudah', 'baru saja' , 'barusan','saat', 'sesaat', 'sewaktu', 'seketika', 'yang lalu' , 'tadi'] #==========================================================================================================#

#token from nltk.tokenize import word_tokenize nama = input ("Masukkan Kalimat : ") kalimat = nama.lower().split() for index, kata in enumerate (kalimat): if kata in set(KATA_GANTI_1) | set(KATA_GANTI_2) | set(KATA_GANTI_3): x = "Subjek" print (kata + " adalah ", x) else : print ("Tidak ada Subjek") </pre>

Edit : image hosting trouble

avatar kurabaya
@kurabaya

8 Kontribusi 6 Poin

Dipost 5 tahun yang lalu

Login untuk ikut Jawaban