• 64 odgovora
  • 38.293 pregleda
pomoc za ucenje pythona 19.07.2017. u 11:27 · pre 112 meseci #1
Postovanje svima
totalni sam pocetnik u pyhtonu poceo sam da ucim ali slabo mi ide suva teorija bez prakse
treba mi neko ko zna da radi da mi pokaze a primam sve sugestije posto imam ogromnu zelju da naucim.
molim za bilo kakvu pomoc.
unapred zahvalan





Re: pomoc za ucenje pythona 07.08.2017. u 17:42 · pre 112 meseci #4
hvala. vise sam mislio ovde ko se bavi time pa malo na volontersko ucenje i rad.
uglavnom hvala.
Re: pomoc za ucenje pythona 16.11.2019. u 11:48 · pre 84 meseci #7
Da ne otvaram novu temu, jer sam isti kao i kolega, imam želju, ali ne i znanje. :)

Dakle, krenuo sam da učim prema knjizi Paul Barry: "Head First Python - A Brain-Friendly Guide" i dobro to napreduje, preći ću je celu, bez brige. Ali knjiga 600 strana, ja prešao tek trećinu, pa sam malo nestrpljiv. Nešto bih da praktično probam da uradim, da ne bude samo bubanje osnova. Ono što mene zanima je rad sa tekstom i mislim da je to najbolje učenje kad pokušavaš da rešiš problem koji te stvarno zanima. Elem, treba mi pomoć za siguran sam relativno banalan zadatak. Kako tekst iz fajla prebaciti u recimo LibraOffice spreadsheet, ali tako da svaka rečenica iz tog teksta bude u novom redu tabele?

Ako neko može da pomogne, mislim da bih mnogo naučio kroz takav praktičan primer. Hvala unapred.
Re: pomoc za ucenje pythona 17.11.2019. u 08:50 · pre 84 meseci #8
Citat:
Elem, treba mi pomoć za siguran sam relativno banalan zadatak

Samo preimenuj text fajl u csv. Na primer, moj_fajl.txt u moj_fajl.csv. Nema lakse. ;)

A u Pythonu, mozda nesto ovako:
Code (python):

import csv

with open('moj_fajl.csv', 'w', newline='') as csv_file:
    writer = csv.writer(csv_file)
    try:
        fh = open('moj_fajl.txt')
        lines = fh.read().splitlines()
        for line in lines:
            writer.writerow([line])
    except IOError as e:
        print(f'OS error: {e}')
    finally:
        fh.close()


https://realpython.com/openpyxl-excel-spreadsheets-python/
Re: pomoc za ucenje pythona 17.11.2019. u 13:01 · pre 84 meseci #9
Hvala, Panto.

Text preimenovao. To je stvarno bilo lako :)))
Ali import u Calc ne daje ono što mi treba, jer sve rečenice nisu u prvoj koloni,
već ih razbuca horizontalno i vertikalno.

Treba ih dakle prvo iseckati u cvf fajlu, da svaka bude poseban red, pa onda učitati.

To bi, koliko razumem trebalo da uradi ovaj kod koji si dao.
Isprobao ga, al IDLE javlja grešku

NameError: name 'fh' is not defined!



Re: pomoc za ucenje pythona 17.11.2019. u 13:53 · pre 84 meseci #11
Citat:
Isprobao ga, al IDLE javlja grešku

NameError: name 'fh' is not defined!

Unsi putanju do tvog fajla gde ti se tekst nalazi, na primer: fh = open('/putanja/do/tvoj_tekst_fajl.txt').
Citat:
Ali import u Calc ne daje ono što mi treba, jer sve rečenice nisu u prvoj koloni,
već ih razbuca horizontalno i vertikalno.


Čekaj, zar ti nećeš da svaka rečenica bude u novom redu? Na primer:

Code:

|    |         A              |       B          |
| 1  | Prva recenica
| 2  | Druga recenica         |                  |
| 3  | Trca recenica          |                  |
Re: pomoc za ucenje pythona 17.11.2019. u 15:42 · pre 84 meseci #12
Probaj ovaj regex: (?<!\w\.\w.)(?<![A-Z][a-z]\.)(?<=\.|\?)\s
Kod mene radi...

Da se nadovezem na kod od @Panta_ :
Code:

import csv
import re

with open('moj_fajl.csv', 'w', newline='') as csv_file:
    writer = csv.writer(csv_file)
    try:
        fh = open('text.txt')
        oneLine = fh.read().strip('\n').replace('\n', ' ').replace('\r', '')
        sentences = re.split(r'(?<!\w\.\w.)(?<![A-Z][a-z]\.)(?<=\.|\?)\s', oneLine)
        for sentence in sentences:
            writer.writerow([sentence.strip()])
    except IOError as e:
        print(f'OS error: {e}')
    finally:
        fh.close()

Re: pomoc za ucenje pythona 17.11.2019. u 16:25 · pre 84 meseci #13
Ili, instaliraj NLTK paket:
Code:
pip install nltk


Zatim:
Code (python):
import csv
import nltk

with open('/putanja/do/tvoj_fajl.csv', 'w', newline='') as csv_file:
    writer = csv.writer(csv_file)
    try:
        fh = open('/putanja/do/tvoj_fajl.txt')
        lines = fh.read().replace('\n', '')
        lines = nltk.sent_tokenize(lines)
        for line in lines:
            writer.writerow([line])
    except IOError as e:
        print(f'OS error: {e}')
    finally:
        fh.close()
Re: pomoc za ucenje pythona 18.11.2019. u 15:04 · pre 84 meseci #14
postovani evo kolega se upustio u diskusiju oko pajtona a ja i dalje trazim nekog pametnog oko pajtona ko radi sa njim da da neki cas posto ova citanje i ucenje mi nista ne pomaze, ne vidim kako sta da pravim
posto sam vizuelista kad znam sta treba onda povezujem sve to ovako mi nista ne ide. Dajte neki predlog.
Re: pomoc za ucenje pythona 20.11.2019. u 11:17 · pre 84 meseci #15
Citat:
Panta_:
Citat:
Isprobao ga, al IDLE javlja grešku

NameError: name 'fh' is not defined!

Unsi putanju do tvog fajla gde ti se tekst nalazi, na primer: fh = open('/putanja/do/tvoj_tekst_fajl.txt').
Citat:
Ali import u Calc ne daje ono što mi treba, jer sve rečenice nisu u prvoj koloni,
već ih razbuca horizontalno i vertikalno.


Čekaj, zar ti nećeš da svaka rečenica bude u novom redu? Na primer:

Code:

|    |         A              |       B          |
| 1  | Prva recenica
| 2  | Druga recenica         |                  |
| 3  | Trca recenica          |                  |



Da to pokušavam. Imam origial tekst (text 1) i imam prevod (text 2) i hteo bih da ih uporedim tako što ću svaku rečenicu iz text1 staviti u kolonu A, a svaku rečenicu iz text2 staviti u kolonu be, paralelno sa njenim originalom.

Dakle, kao što si napravio, samo da dopunim

Code:

|    |         A                |              B                |
| 1  | Prva recenica-textA      |  Prva rečenica-textB          |
| 2  | Druga recenica-textA     |  Druga rečenica-textB         |
| 3  | Trca recenica-textA      |  Treća rečenica-textB         |


Ajde sad ću probati i ovaj predlog sa regex, pa odgovaeam
Re: pomoc za ucenje pythona 20.11.2019. u 13:50 · pre 84 meseci #16
Citat:
Panta_:
Ili, instaliraj NLTK paket:
Code:
pip install nltk


Zatim:
Code (python):
import csv
import nltk

with open('/putanja/do/tvoj_fajl.csv', 'w', newline='') as csv_file:
    writer = csv.writer(csv_file)
    try:
        fh = open('/putanja/do/tvoj_fajl.txt')
        lines = fh.read().replace('\n', '')
        lines = nltk.sent_tokenize(lines)
        for line in lines:
            writer.writerow([line])
    except IOError as e:
        print(f'OS error: {e}')
    finally:
        fh.close()



Panto, instalirao nltk 3.4.5
Ali ne pomaže mnogo.

Elem, u Notepad sam iskopirao tekst:

Noël a lieu le 25 décembre. C’est une fête chrétienne qui célèbre la naissance de Jésus. Les familles se réunissent et partagent un bon repas le soir du 24 décembre, et on s’offre des cadeaux. Enfin, Pâques n’a pas de date fixe, c’est un dimanche compris entre le 22 mars et le 25 avril.

i sačuvao ga kao original.txt sa utf-8 encoding. Onda sam mu promenio ekstenziju u .csv

I kod je trenutno ovaj:

Code:

import csv
import nltk

with open('c:\FAJLOVI\Python_School\CSV\original.csv', 'w', newline='') as csv_file:
    writer = csv.writer(csv_file)
    try:
        fh = open('c:\FAJLOVI\Python_School\CSV\original.csv')
        lines = fh.read().replace('\n', '')
        lines = nltk.sent_tokenize(lines)
        for line in lines:
            writer.writerow([line])
    except IOError as e:
        print(f'OS error: {e}')
    finally:
        fh.close()


Pokrenem, kad ono čitav mi roman IDLE ispisao i sve crveno, dakle - neće moći:

Code:

Traceback (most recent call last):
  File "C:/FAJLOVI/Python_School/CSV/koverzija.py", line 9, in <module>
    lines = nltk.sent_tokenize(lines)
  File "C:\Users\ja_sa\AppData\Local\Programs\Python\Python37-32\lib\site-packages\nltk\tokenize\__init__.py", line 105, in sent_tokenize
    tokenizer = load('tokenizers/punkt/{0}.pickle'.format(language))
  File "C:\Users\ja_sa\AppData\Local\Programs\Python\Python37-32\lib\site-packages\nltk\data.py", line 868, in load
    opened_resource = _open(resource_url)
  File "C:\Users\ja_sa\AppData\Local\Programs\Python\Python37-32\lib\site-packages\nltk\data.py", line 993, in _open
    return find(path_, path + ['']).open()
  File "C:\Users\ja_sa\AppData\Local\Programs\Python\Python37-32\lib\site-packages\nltk\data.py", line 701, in find
    raise LookupError(resource_not_found)
LookupError: 
**********************************************************************
  Resource punkt not found.
  Please use the NLTK Downloader to obtain the resource:

  >>> import nltk
  >>> nltk.download('punkt')
  
  For more information see: https://www.nltk.org/data.html

  Attempted to load tokenizers/punkt/english.pickle

  Searched in:
    - 'C:\\Users\\ja_sa/nltk_data'
    - 'C:\\Users\\ja_sa\\AppData\\Local\\Programs\\Python\\Python37-32\\nltk_data'
    - 'C:\\Users\\ja_sa\\AppData\\Local\\Programs\\Python\\Python37-32\\share\\nltk_data'
    - 'C:\\Users\\ja_sa\\AppData\\Local\\Programs\\Python\\Python37-32\\lib\\nltk_data'
    - 'C:\\Users\\ja_sa\\AppData\\Roaming\\nltk_data'
    - 'C:\\nltk_data'
    - 'D:\\nltk_data'
    - 'E:\\nltk_data'
    - ''
**********************************************************************
Re: pomoc za ucenje pythona 20.11.2019. u 13:54 · pre 84 meseci #17
Citat:
predator99:
postovani evo kolega se upustio u diskusiju oko pajtona a ja i dalje trazim nekog pametnog oko pajtona ko radi sa njim da da neki cas posto ova citanje i ucenje mi nista ne pomaze, ne vidim kako sta da pravim
posto sam vizuelista kad znam sta treba onda povezujem sve to ovako mi nista ne ide. Dajte neki predlog.


Ako mogu da se ubacim. Možda da prvo smisliš za šta bi da koristiš python, neki lakši zadatak koji bi voleo da uradiš, kao recimo ja ovo sa tekstom. Pa da konkretno pitaš. Ovako generalno, ne znaju ljudi šta da i pomognu.
Re: pomoc za ucenje pythona 20.11.2019. u 14:03 · pre 84 meseci #18
Citat:
Deunan:
Probaj ovaj regex: (?<!\w\.\w.)(?<![A-Z][a-z]\.)(?<=\.|\?)\s
Kod mene radi...

Da se nadovezem na kod od @Panta_ :



Hvala. Probao sam ovo:

Code:

import csv
import re

with open('c:\FAJLOVI\Python_School\CSV\original.csv', 'w', newline='') as csv_file:
    writer = csv.writer(csv_file)
    try:
        fh = open('c:\FAJLOVI\Python_School\CSV\original.csv')
        oneLine = fh.read().strip('\n').replace('\n', ' ').replace('\r', '')
        sentences = re.split(r'(?<!\w\.\w.)(?<![A-Z][a-z]\.)(?<=\.|\?)\s', oneLine)
        for sentence in sentences:
            writer.writerow([sentence.strip()])
    except IOError as e:
        print(f'OS error: {e}')
    finally:
        fh.close()


Ne prijavljuje nikakvu grešku, ali i ne ostane ništa od texta. Prazan fajl na kraju!
Re: pomoc za ucenje pythona 20.11.2019. u 14:07 · pre 84 meseci #19
Da li si pročitao uputstvo za instalaciju nltk?

Nije dovoljan samo nltk paket, treba da se skinu i data fajlovi sa opisima jezika.
Re: pomoc za ucenje pythona 20.11.2019. u 14:27 · pre 84 meseci #20

Otvaras isti fajl!

with open('c:\FAJLOVI\Python_School\CSV\original.csv', 'w', newline='') as csv_file: # FAJL U KOJI CES DA UPISUJES!

fh = open('fajlKojiCitas.txt') # FAJL KOJI CITAS (nije csv)!

Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme