Postingan lainnya
Mengambil subjek dalam inputan
Saya mau bertanya, jika saya punya input seperti : Bulan lalu kamu sudah bilang “Saya mengerjakan sendiri.” .Bagaimana cara saya mengambil kata "kamu" yang ada di dalam kalimat pengantar?
#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 : ")
kalpeng = (nama[nama.find('.') + 1:nama.find('“')])
kalsung = (nama[nama.find('“') + 1:nama.find('”')])
test = [(k in KATA_GANTI_1) for k in kalsung.lower().split(" ")]
args =[kalpeng.split(" ")[i] for i,l in enumerate(test) if l] #deklarasi subjek didalam kalpeng
temp =[kalsung.split(" ")[i] for i,l in enumerate(test) if l] #deklarasi subjek dalam kalsung
print ("Subjek dalam kalimat langsung adalah : " , temp) #subjek dalam kalsung
(KATA_GANTI_1.index(temp[0]))
print ("Subjek dalam kalimat pengantar adalah : ", args) #subjek dalam kalpeng
4 Jawaban:
<pre> #definisi list Kata_ganti = ['aku', 'mereka', 'kami', 'kita', 'saya', 'beta', 'daku', 'engkau'] Predikat = ['mengatakan' , 'berkata' , 'bertanya' , 'menanyakan' , 'memerintah' , 'memerintahkan' , 'menyuruh' , 'memberitahu']
n = input ("Masukkan Kalimat : ") Masukkan Kalimat : Saya bertanya "Merekakah yang memerintah?"
#definisi variable x = kata ganti dalam kalimat y = kata ganti dalam kutip q = predikat dalam kalimat w = predikat dalam kutp
#output print ("Kata ganti dalam kalimat tersebut adalah : ", x+y) print ("Predikat dalam kalimat tersebut adalah : ", q+w) </pre> bagaimana cara saya mendefinisikan x,y,q,w? fungsi apa yang harus saya berikan? @hilmanrdn
Jawaban Terpilih
range nama buat variabel kalpeng sama kalsung mesti diganti definisi rangenya. Sesuai contoh agan, kalimat pengantarnya kan di awalan, berarti dimulai dari range 0. "Jadi ini gak akan work kalau kalimat pengantar ada di setelah kalimat langsung." Terus variabel SUBJEK diganti jadi union setnya KATA_GANTI_1 sampai 3. Soalnya kalo list di dalem list gak bisa buat dimasukin ke variabel test1 sama test2. Buat lebih jelasnya bisa dianalisis lagi kodenya.
<img src=' https://s8.postimg.cc/3miuwgced/hapus.jpg '>
<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 = set(KATA_GANTI_1) | set(KATA_GANTI_2) | set(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 : ")
kalpeng = (nama[0:nama.find(""")]) kalsung = (nama[nama.find(""") + 1:len(nama)-1])
test1 = [(k in SUBJEK) for k in kalsung.lower().split(" ")] test2 = [(k in SUBJEK) for k in kalpeng.lower().split(" ")]
args =[kalpeng.split(" ")[i] for i,l in enumerate(test2) if l] #deklarasi subjek didalam kalpeng temp =[kalsung.split(" ")[i] for i,l in enumerate(test1) if l] #deklarasi subjek dalam kalsung print ("Subjek dalam kalimat langsung adalah : " , temp) #subjek dalam kalsung
print ("Subjek dalam kalimat pengantar adalah : ", args) #subjek dalam kalpeng </pre>