From 9d21a75d3a4ef97477d4a9e6c002ec0b4f39d8a4 Mon Sep 17 00:00:00 2001 From: Darius Lindvai Date: Tue, 5 May 2020 20:37:06 +0200 Subject: [PATCH] update --- .../2016/darius_lindvai/dp2021/README.md | 5 + .../2016/darius_lindvai/dp2021/punc.py | 20 +++- .../2016/darius_lindvai/dp2021/script1.py | 11 -- .../2016/darius_lindvai/dp2021/tags.py | 25 +++++ .../2016/darius_lindvai/dp2021/text.py | 14 +++ .../2016/darius_lindvai/dp2021/train.txt | 100 ++++++++++++++++++ 6 files changed, 162 insertions(+), 13 deletions(-) delete mode 100755 pages/students/2016/darius_lindvai/dp2021/script1.py create mode 100644 pages/students/2016/darius_lindvai/dp2021/tags.py create mode 100644 pages/students/2016/darius_lindvai/dp2021/text.py create mode 100644 pages/students/2016/darius_lindvai/dp2021/train.txt diff --git a/pages/students/2016/darius_lindvai/dp2021/README.md b/pages/students/2016/darius_lindvai/dp2021/README.md index 292ee04fe9..4d3fd124c0 100644 --- a/pages/students/2016/darius_lindvai/dp2021/README.md +++ b/pages/students/2016/darius_lindvai/dp2021/README.md @@ -1,3 +1,8 @@ +## Update 05.05.2020 +- upravený skript "punc.py" tak, že model načítava dáta zo súboru/ov +- vytvorený skript "text.py", ktorý upraví dáta do vhodnej podoby (5 krokov) +- vytvorený skript "tags.py", ktorý priradí každému symbolu jeden zo štvorice tagov (S, P, C, Q) + ## Update 09.04.2020 - Upravil som vzorový zdrojový kód, ktorý riešil Named-Entity Recognition, tak, aby dopĺňal interpunkciu. - Momentálne to funguje s ručne vpísanými trénovacími dátami a ručným "otagovaním", avšak iba pre bodku a otáznik. diff --git a/pages/students/2016/darius_lindvai/dp2021/punc.py b/pages/students/2016/darius_lindvai/dp2021/punc.py index dbb5d8a79c..6f80a43559 100644 --- a/pages/students/2016/darius_lindvai/dp2021/punc.py +++ b/pages/students/2016/darius_lindvai/dp2021/punc.py @@ -175,6 +175,7 @@ STOP_TAG = "" EMBEDDING_DIM = 5 HIDDEN_DIM = 4 +''' training_data = [( "hovorí sa ,COM že ľudstvo postihuje nová epidémia ,COM šíriaca sa závratnou rýchlosťou .PER preto je dôležité vedieť čo to je ,COM ako jej predísť alebo ako ju odstrániť .PER".split(), "S S C S S S S S C S S S S P S S S S S S S C S S S S S S S P".split() @@ -182,6 +183,20 @@ training_data = [( "nárast obezity je spôsobený najmä spôsobom života .PER tuky zlepšujú chuť do jedla a dávajú lepší pocit sýtosti ,COM uvedomte si však ,COM že všetky tuky sa Vám ukladajú ,COM pokiaľ ich nespálite .PER".split(), "S S S S S S S P S S S S S S S S S S C S S S C S S S S S S C S S S P".split() )] +''' + +with open('/home/dlindvai/work/text.txt', 'r') as text2: + with open('/home/dlindvai/work/tags.txt', 'r') as tags2: + text1 = text2.read().splitlines() + tags1 = tags2.read().splitlines() + + for line in text1: + text = line.replace("['", "").replace("']", "") + for line in tags1: + tags = line.replace("['", "").replace("']", "") + +training_data = [( text.split() , tags.split() )] +#print(training_data) word_to_ix = {} for sentence, tags in training_data: @@ -189,7 +204,7 @@ for sentence, tags in training_data: if word not in word_to_ix: word_to_ix[word] = len(word_to_ix) -tag_to_ix = {"S": 0, "C": 1, "P": 2, "E": 3, START_TAG: 4, STOP_TAG: 5} +tag_to_ix = {"S": 0, "C": 1, "P": 2, "Q": 3, START_TAG: 4, STOP_TAG: 5} model = BiLSTM_CRF(len(word_to_ix), tag_to_ix, EMBEDDING_DIM, HIDDEN_DIM) optimizer = optim.SGD(model.parameters(), lr=0.01, weight_decay=1e-4) @@ -199,7 +214,7 @@ with torch.no_grad(): precheck_tags = torch.tensor([tag_to_ix[t] for t in training_data[0][1]], dtype=torch.long) print("Predicted output before training: ", model(precheck_sent)) -for epoch in range(300): # normally you would NOT do 300 epochs, but this is small dataset +for epoch in range(30): # normally you would NOT do 300 epochs, but this is small dataset for sentence, tags in training_data: # Step 1. Remember that Pytorch accumulates gradients. # We need to clear them out before each instance @@ -219,3 +234,4 @@ for epoch in range(300): # normally you would NOT do 300 epochs, but this is sm with torch.no_grad(): precheck_sent = prepare_sequence(training_data[0][0], word_to_ix) print("Predicted output after training: ", model(precheck_sent)) + diff --git a/pages/students/2016/darius_lindvai/dp2021/script1.py b/pages/students/2016/darius_lindvai/dp2021/script1.py deleted file mode 100755 index 1b9140fbb3..0000000000 --- a/pages/students/2016/darius_lindvai/dp2021/script1.py +++ /dev/null @@ -1,11 +0,0 @@ -# coding: utf-8 -#!/usr/bin/python - -import codecs -import sys - -with codecs.open(sys.argv[2],'w') as out_txt: - with codecs.open(sys.argv[1],'r') as text: - for line in text: - line = line.replace('.','PER').replace(',','COM').replace('?','QUE') - out_txt.write(line) diff --git a/pages/students/2016/darius_lindvai/dp2021/tags.py b/pages/students/2016/darius_lindvai/dp2021/tags.py new file mode 100644 index 0000000000..d6a866de58 --- /dev/null +++ b/pages/students/2016/darius_lindvai/dp2021/tags.py @@ -0,0 +1,25 @@ +import os +import re + +if os.path.exists('tags.txt'): + os.remove('tags.txt') + +with open('text.txt', 'r') as input_file: + with open('tags.txt', 'a') as output_file: + for line in input_file: + for word in line.split(): + if (word == '.PER'): + word = word.replace(word, 'P') + output_file.write(word + ' ') + + elif (word == ',COM'): + word = word.replace(word, 'C') + output_file.write(word + ' ') + + elif(word == '?QUE'): + word = word.replace(word, 'Q') + output_file.write(word + ' ') + + else: + word = word.replace(word, 'S') + output_file.write(word + ' ') diff --git a/pages/students/2016/darius_lindvai/dp2021/text.py b/pages/students/2016/darius_lindvai/dp2021/text.py new file mode 100644 index 0000000000..c645bacb39 --- /dev/null +++ b/pages/students/2016/darius_lindvai/dp2021/text.py @@ -0,0 +1,14 @@ +import re +import os + +if os.path.exists('text.txt'): + os.remove('text.txt') + +with open('/home/dlindvai/work/train.txt', 'r') as input_file: + with open('/home/dlindvai/work/text.txt', 'a') as output_file: + for line in input_file: + line = line.replace('\n', '') + line = re.sub(r"([\w/'+$\s-]+|[^\w/'+$\s-]+)\s*", r"\1 ", line) + line = line.lower() + line = line.replace('.','.PER').replace(',',',COM').replace('?','?QUE') + output_file.write(line) diff --git a/pages/students/2016/darius_lindvai/dp2021/train.txt b/pages/students/2016/darius_lindvai/dp2021/train.txt new file mode 100644 index 0000000000..e0d39be808 --- /dev/null +++ b/pages/students/2016/darius_lindvai/dp2021/train.txt @@ -0,0 +1,100 @@ +prvé reaktory začali u nás fungovať v roku 1972 , fond vznikol až v roku 1995 . +" vláda súhlasila s odstavením bohunického bloku V 1 ako obeť za vstup do Európskej únie a neumožnila , aby si naakumuloval prostriedky na svoju likvidáciu . + +je naivné myslieť si , že chýbajúce zdroje zaplatí niekto iný ako občan . + +či to bude zahrnuté v cene elektriny , alebo ako kapitola v štátnom rozpočte , " povedal hovorca elektrární Rastislav Petrech . + +privatizáciu treba podľa súčasných dohôd uzatvoriť do konca apríla , dovtedy by mal byť vyriešený problém zákona aj v prípade prezidentovho veta . + +okrem toho ešte treba vyradiť z majetku elektrární bohunické bloky pred odstavením a vodné dielo Gabčíkovo , ktoré je stále predmetom súdneho sporu s Maďarmi . +ďalšie kroky v privatizácii : + +- do dvoch týždňov doručia schválený návrh zákona o jadrovom účte + +- prezident rozhodne do 15 dní + +- v prípade veta budú poslanci o zákone rokovať znova na schôdzi 19. apríla . + +- rezort hospodárstva musí z majetku SE vyčleniť aktíva v Bohuniciach a +- privatizácia musí byť uzavretá do konca apríla + +--endtext +i 189811 TASR : IDC: Piráti brzdia ekonomiku Ekonomika_a_firmy 9.12.2005 00:00 +zníženie miery softvérového pirátstva na Slovensku zo súčasných 48 percent na 38 percent by mohlo vytvoriť 1400 nových pracovných miest . + +viedlo by k ekonomickému rastu v hodnote 267 miliónov dolárov , čo je v prepočte 8,6 miliardy korún a daňovým príjmom vo výške 60 miliónov dolárov . + +podľa záverov štúdie spoločnosti IDC by zníženie miery softvérového pirátstva mohlo naštartovať rast sektora informačných technológií . +iDC predpokladá , že IT sektor by na Slovensku mohol do roku 2009 vzrásť o 59 percent . + +pri 10 - percentnom znížení miery softvérového pirátstva by však tento rast mohol byť až 69 percent . + +--endtext +i 189874 Reuters : Operátori začnú zlacňovať roaming Ekonomika_a_firmy 21.2.2006 00:00 +telefonovanie z mobilu v zahraniční zrejme čoskoro zlacnie . + +naznačujú to správy dvoch spriaznených mobilných operátorov skupiny Deutsche Telekom . +výkonný riaditeľ nemeckého mobilného operátora T - Mobile Rene Obermann vyhlásil , že k zlacneniu roamingu pre nemeckých zákazníkov dôjde už na jar . + +slovenský T - Mobile vzápätí oznámil , že " ceny roamingových sa budú znižovať " aj pre slovenských klientov . + +podľa Juraja Drobu zo slovenského T - Mobilu spoločnosť pokročila v rokovaniach so zahraničnými mobilnými operátormi . + +výsledkom rokovaní bude zníženie medzinárodných prepojovacích poplatkov u viacerých európskych operátorov súčasne . + +jednotka na slovenskom trhu , spoločnosť Orange Slovakia sa zatiaľ k znižovaniu cien roamingu nevyjadruje . +Roaming je dnes v Európe podľa eurokomisárky pre informačnú spoločnosť a médiá Viviane Redingovej pridrahý . + +ak sa mobilní operátori na znížení prepojovacích poplatkov sami nedohodnú , Redingová im hrozí vypracovaním regulačných predpisov , o ktorých by Európsky parlament mohol rokovať ešte pred letnými prázdninami . + +ak je dnes zákazník Orange Slovensko napríklad v Maďarsku a je prihlásený v miestnej sieti Vodafone , za minútový hovor na Slovensko zaplatí vyše 28 korún . + +ak by bol však zákazníkom priamo Vodafonu v Maďarsku , hovor by ho vyšiel o polovicu lacnejšie . + +--endtext +európska komisia včera súhlasila so štátnou podporou 525 miliónov korún pre Hornonitrianske Bane Prievidza . + +štátna pomoc nesmeruje na krytie ťažobných nákladov , ale na krytie počiatočných investícií spojených so zefektívňovaním ťažby . + +dotácia nepresahuje 30 percent predpokladaných investičných nákladov . + +komisia vo vyhlásení oznámila , že túto vládnu dotáciu považuje za zlučiteľnú s fungovaním jednotného európskeho trhu . + +eurokomisár pre energetiku Andris Piebalgs vyzdvihol význam domácej ťažby uhlia na zaistenie energie v únii a vyslovil sa za zefektívňovanie prevádzky baní . +hornonitrianske bane Prievidza sú dlhodobo jedným z najväčších poberateľov štátnej pomoci na Slovensku . + +v rokoch 2001 až 2004 dostali od štátu viac ako štvrť miliardy korún vo forme dotácií a úľav . + +od ťažby uhlia je závislá ekonomika regiónu horného Ponitria . + +--endtext +i 189975 AP : Hyundai zmluvu s ČR podpíše doma Ekonomika_a_firmy 2.5.2006 00:00 +juhokórejská automobilka Hyundai Motor podpíše dohodu s Českou republikou o výstavbe nového závodu za miliardu eur aj napriek škandálu týkajúceho sa sprenevery a úplatkárstva v spoločnosti Hyundai . +po finančnej kontrole v spoločnosti Hyundai a následnom zatknutí jej predsedu predstavenstva Čchunga Mong-kooa kórejská strana potvrdila , že dohodu o investícii plánuje podpísať v polovici mája . + +informoval o tom hovorca českého ministerstva priemyslu a obchodu Ivo Mravinac . + +miestom slávnostného podpísania dohody však nebude Česká republika , ale hlavné mesto Južnej Kórey , Soul . + +--endtext +i 189977 Lukáš Pardubský : Telecom žaluje Protimonopolný úrad Ekonomika_a_firmy 2.2.2006 00:00 +Slovak Telecom sa rozhodol brániť proti 885 - miliónovej pokute žalobou na Krajskom súde v Bratislave . +o sankcii rozhodla Rada Protimonopolného úradu koncom decembra 2005 s tým , že Telecom zneužil svoje dominantné postavenie , keď konkurencii neposkytol prístup k sústave jeho miestnych vedení . + +Telecom žalobu podľa riaditeľa pre korporátnu komunikáciu Jána Kondáša podal 27. januára. . + +v prípade pokuty išlo už o druhostupňové rozhodnutie úradu , pretože proti pôvodnému z mája minulého roka sa Telecom odvolal . + +rada však verdikt potvrdila a ten nadobudol platnosť 16. januára. . + +od tohto dátumu začala plynúť aj 30 - dňová lehota na uhradenie pokuty . +keďže Telecom platiť nechce , súčasťou žaloby je aj návrh na vydanie uznesenia , ktorým by sa vykonateľnosť rozhodnutia Protimonopolného úradu odložila . + +spor operátora s úradom nie je prvý . + +už v minulosti Telecom podobným postupom dosiahol oddialenie povinnosti zaplatiť pokutu 20 miliónov korún , ako aj rozhodnutia Telekomunikačného úradu o zákaze viazania služieb ADSL s hlasovými produktmi . + +v druhom prípade sa malo viazanie ukončiť v októbri 2004 , reálne to však bude až v prvej polovici tohto roku . + +--endtext