Compare commits
No commits in common. "master" and "master" have entirely different histories.
@ -1,30 +0,0 @@
|
|||||||
enabled: true
|
|
||||||
folders:
|
|
||||||
- pages
|
|
||||||
- themes
|
|
||||||
- config
|
|
||||||
sync:
|
|
||||||
on_save: true
|
|
||||||
on_delete: true
|
|
||||||
on_media: true
|
|
||||||
cron_enable: false
|
|
||||||
cron_at: '0 12,23 * * *'
|
|
||||||
local_repository: null
|
|
||||||
repository: 'git@git.kemt.fei.tuke.sk:KEMT/zpwiki.git'
|
|
||||||
no_user: '0'
|
|
||||||
user: zpwikiuser
|
|
||||||
password: gitsync-def502001df1df627230ddf8dbdcf2e009a33ef7eb2378430c12aabb4de1dc42d30c522473512dbeccab4782d87d16488303c5062a05a4fc155fa5379268f878650d714188f5614a7bf10a8d465410f276913bd9c28cda221a8deab71c6701fb
|
|
||||||
webhook: /_git-sync-9ad6430986a6
|
|
||||||
webhook_enabled: '0'
|
|
||||||
webhook_secret: 58488c5ff4bad574a21fc3f34b71d275ffbdaa0b1cdcafe4
|
|
||||||
branch: master
|
|
||||||
remote:
|
|
||||||
name: origin
|
|
||||||
branch: master
|
|
||||||
git:
|
|
||||||
author: gravuser
|
|
||||||
message: '(Grav GitSync) Automatic Commit'
|
|
||||||
name: GitSync
|
|
||||||
email: git-sync@trilby.media
|
|
||||||
bin: git
|
|
||||||
logging: false
|
|
@ -1,4 +0,0 @@
|
|||||||
enabled: true
|
|
||||||
active: true
|
|
||||||
start: '1'
|
|
||||||
depth: '6'
|
|
@ -1 +0,0 @@
|
|||||||
salt: xZBMvDjawspOYb
|
|
@ -1,20 +0,0 @@
|
|||||||
title: 'Záverečné práce'
|
|
||||||
default_lang: en
|
|
||||||
author:
|
|
||||||
name: 'Joe Bloggs'
|
|
||||||
email: joe@example.com
|
|
||||||
taxonomies:
|
|
||||||
- category
|
|
||||||
- tag
|
|
||||||
- author
|
|
||||||
metadata:
|
|
||||||
description: 'Grav is an easy to use, yet powerful, open source flat-file CMS'
|
|
||||||
summary:
|
|
||||||
enabled: true
|
|
||||||
format: short
|
|
||||||
size: 300
|
|
||||||
delimiter: '==='
|
|
||||||
redirects: null
|
|
||||||
routes: null
|
|
||||||
blog:
|
|
||||||
route: /blog
|
|
@ -1,179 +0,0 @@
|
|||||||
absolute_urls: false
|
|
||||||
timezone: ''
|
|
||||||
default_locale: null
|
|
||||||
param_sep: ':'
|
|
||||||
wrapped_site: false
|
|
||||||
reverse_proxy_setup: false
|
|
||||||
force_ssl: false
|
|
||||||
force_lowercase_urls: true
|
|
||||||
custom_base_url: ''
|
|
||||||
username_regex: '^[a-z0-9_-]{3,16}$'
|
|
||||||
pwd_regex: '(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}'
|
|
||||||
intl_enabled: true
|
|
||||||
http_x_forwarded:
|
|
||||||
protocol: true
|
|
||||||
host: false
|
|
||||||
port: true
|
|
||||||
ip: true
|
|
||||||
languages:
|
|
||||||
supported: { }
|
|
||||||
default_lang: null
|
|
||||||
include_default_lang: true
|
|
||||||
pages_fallback_only: false
|
|
||||||
translations: true
|
|
||||||
translations_fallback: true
|
|
||||||
session_store_active: false
|
|
||||||
http_accept_language: false
|
|
||||||
override_locale: false
|
|
||||||
home:
|
|
||||||
alias: /home
|
|
||||||
hide_in_urls: false
|
|
||||||
pages:
|
|
||||||
theme: mytheme
|
|
||||||
order:
|
|
||||||
by: default
|
|
||||||
dir: asc
|
|
||||||
list:
|
|
||||||
count: 20
|
|
||||||
dateformat:
|
|
||||||
default: null
|
|
||||||
short: 'jS M Y'
|
|
||||||
long: 'F jS \a\t g:ia'
|
|
||||||
publish_dates: true
|
|
||||||
process:
|
|
||||||
markdown: true
|
|
||||||
twig: false
|
|
||||||
twig_first: false
|
|
||||||
never_cache_twig: false
|
|
||||||
events:
|
|
||||||
page: true
|
|
||||||
twig: true
|
|
||||||
markdown:
|
|
||||||
extra: false
|
|
||||||
auto_line_breaks: false
|
|
||||||
auto_url_links: false
|
|
||||||
escape_markup: false
|
|
||||||
special_chars:
|
|
||||||
'>': gt
|
|
||||||
'<': lt
|
|
||||||
valid_link_attributes:
|
|
||||||
- rel
|
|
||||||
- target
|
|
||||||
- id
|
|
||||||
- class
|
|
||||||
- classes
|
|
||||||
types:
|
|
||||||
- html
|
|
||||||
- htm
|
|
||||||
- xml
|
|
||||||
- txt
|
|
||||||
- json
|
|
||||||
- rss
|
|
||||||
- atom
|
|
||||||
append_url_extension: ''
|
|
||||||
expires: 604800
|
|
||||||
cache_control: null
|
|
||||||
last_modified: false
|
|
||||||
etag: false
|
|
||||||
vary_accept_encoding: false
|
|
||||||
redirect_default_route: false
|
|
||||||
redirect_default_code: 302
|
|
||||||
redirect_trailing_slash: true
|
|
||||||
ignore_files:
|
|
||||||
- .DS_Store
|
|
||||||
ignore_folders:
|
|
||||||
- .git
|
|
||||||
- .idea
|
|
||||||
ignore_hidden: true
|
|
||||||
hide_empty_folders: false
|
|
||||||
url_taxonomy_filters: true
|
|
||||||
frontmatter:
|
|
||||||
process_twig: false
|
|
||||||
ignore_fields:
|
|
||||||
- form
|
|
||||||
- forms
|
|
||||||
cache:
|
|
||||||
enabled: true
|
|
||||||
check:
|
|
||||||
method: file
|
|
||||||
driver: auto
|
|
||||||
prefix: g
|
|
||||||
purge_at: '0 4 * * *'
|
|
||||||
clear_at: '0 3 * * *'
|
|
||||||
clear_job_type: standard
|
|
||||||
clear_images_by_default: true
|
|
||||||
cli_compatibility: false
|
|
||||||
lifetime: 604800
|
|
||||||
gzip: false
|
|
||||||
allow_webserver_gzip: false
|
|
||||||
redis:
|
|
||||||
socket: false
|
|
||||||
twig:
|
|
||||||
cache: true
|
|
||||||
debug: true
|
|
||||||
auto_reload: true
|
|
||||||
autoescape: false
|
|
||||||
undefined_functions: true
|
|
||||||
undefined_filters: true
|
|
||||||
umask_fix: false
|
|
||||||
assets:
|
|
||||||
css_pipeline: false
|
|
||||||
css_pipeline_include_externals: true
|
|
||||||
css_pipeline_before_excludes: true
|
|
||||||
css_minify: true
|
|
||||||
css_minify_windows: false
|
|
||||||
css_rewrite: true
|
|
||||||
js_pipeline: false
|
|
||||||
js_pipeline_include_externals: true
|
|
||||||
js_pipeline_before_excludes: true
|
|
||||||
js_minify: true
|
|
||||||
enable_asset_timestamp: false
|
|
||||||
collections:
|
|
||||||
jquery: 'system://assets/jquery/jquery-2.x.min.js'
|
|
||||||
errors:
|
|
||||||
display: true
|
|
||||||
log: true
|
|
||||||
log:
|
|
||||||
handler: file
|
|
||||||
syslog:
|
|
||||||
facility: local6
|
|
||||||
debugger:
|
|
||||||
enabled: false
|
|
||||||
shutdown:
|
|
||||||
close_connection: true
|
|
||||||
twig: true
|
|
||||||
images:
|
|
||||||
default_image_quality: 85
|
|
||||||
cache_all: false
|
|
||||||
cache_perms: '0755'
|
|
||||||
debug: false
|
|
||||||
auto_fix_orientation: false
|
|
||||||
seofriendly: false
|
|
||||||
media:
|
|
||||||
enable_media_timestamp: false
|
|
||||||
unsupported_inline_types: { }
|
|
||||||
allowed_fallback_types: { }
|
|
||||||
auto_metadata_exif: false
|
|
||||||
upload_limit: 2097152
|
|
||||||
session:
|
|
||||||
enabled: true
|
|
||||||
initialize: true
|
|
||||||
timeout: 1800
|
|
||||||
name: grav-site
|
|
||||||
uniqueness: path
|
|
||||||
secure: false
|
|
||||||
httponly: true
|
|
||||||
split: true
|
|
||||||
path: null
|
|
||||||
gpm:
|
|
||||||
releases: stable
|
|
||||||
proxy_url: null
|
|
||||||
method: auto
|
|
||||||
verify_peer: true
|
|
||||||
official_gpm_only: true
|
|
||||||
accounts:
|
|
||||||
type: data
|
|
||||||
storage: file
|
|
||||||
strict_mode:
|
|
||||||
yaml_compat: true
|
|
||||||
twig_compat: true
|
|
@ -1,13 +0,0 @@
|
|||||||
streams:
|
|
||||||
schemes:
|
|
||||||
theme:
|
|
||||||
type: ReadOnlyStream
|
|
||||||
prefixes:
|
|
||||||
'': [user/themes/mytheme, user/themes/knowledge-base]
|
|
||||||
display_of_git_sync_repo_link: page
|
|
||||||
type_of_git_sync_repo_link: edit
|
|
||||||
custom_git_sync_repo_link_icon: null
|
|
||||||
custom_git_sync_repo_link_text: null
|
|
||||||
git_sync_edit_note_text: null
|
|
||||||
custom_git_sync_repo_presentation_link_text: null
|
|
||||||
git_sync_repo_link: 'https://git.kemt.fei.tuke.sk/KEMT/zpwiki/src/branch/master'
|
|
72
linker.py
@ -1,72 +0,0 @@
|
|||||||
import os
|
|
||||||
import sys
|
|
||||||
import re
|
|
||||||
import posixpath
|
|
||||||
import argparse
|
|
||||||
|
|
||||||
linkre = re.compile(r"\[(.+?)\]\((.+?)\)")
|
|
||||||
|
|
||||||
def normlink(link,start_link):
|
|
||||||
if link.startswith("http"):
|
|
||||||
return link
|
|
||||||
target = posixpath.normpath(link)
|
|
||||||
# Absolute path
|
|
||||||
if target[0] == "/":
|
|
||||||
return target
|
|
||||||
elif target.startswith("./"):
|
|
||||||
target = posixpath.normpath(start_link + target)
|
|
||||||
else:
|
|
||||||
target = posixpath.normpath(start_link + "/" + target)
|
|
||||||
#print(">>>>>>" + link + " " + target)
|
|
||||||
#print(target)
|
|
||||||
return target
|
|
||||||
|
|
||||||
def process(lfrom,lto):
|
|
||||||
for root, dirs, files in os.walk("./pages", topdown=False):
|
|
||||||
for file_name in files:
|
|
||||||
if not file_name.endswith(".md"):
|
|
||||||
continue
|
|
||||||
full_file_name = root + "/"+ file_name
|
|
||||||
# strip README.md
|
|
||||||
page_name = full_file_name[7:-10]
|
|
||||||
#print(page_name)
|
|
||||||
def replink(match):
|
|
||||||
name = match.group(1)
|
|
||||||
target = normlink(match.group(2),page_name)
|
|
||||||
#print(lto)
|
|
||||||
#print(target)
|
|
||||||
out = match.group(0)
|
|
||||||
if target == lfrom:
|
|
||||||
print("match at" + page_name + ":" + name)
|
|
||||||
if lto:
|
|
||||||
out = "[{}]({})".format(name,lto)
|
|
||||||
#print("Replaced to " + out)
|
|
||||||
|
|
||||||
return out
|
|
||||||
|
|
||||||
content = []
|
|
||||||
changed = False
|
|
||||||
with open(full_file_name) as f:
|
|
||||||
for l in f:
|
|
||||||
if re.search(linkre,l) is not None:
|
|
||||||
line = re.sub(linkre,replink,l)
|
|
||||||
if line != l:
|
|
||||||
print("replace")
|
|
||||||
print(l.rstrip())
|
|
||||||
print(line.rstrip())
|
|
||||||
answer = sys.stdin.readline().strip()
|
|
||||||
if len(answer) == 0 or answer[0] != "n":
|
|
||||||
l = line
|
|
||||||
changed = True
|
|
||||||
content.append(l)
|
|
||||||
if lto and changed:
|
|
||||||
with open(full_file_name,"w") as f:
|
|
||||||
f.write("".join(content))
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
parser = argparse.ArgumentParser()
|
|
||||||
parser.add_argument("lfrom")
|
|
||||||
parser.add_argument("-r","--replace",type=str)
|
|
||||||
args = parser.parse_args()
|
|
||||||
process(args.lfrom,args.replace)
|
|
||||||
|
|
@ -1,112 +0,0 @@
|
|||||||
import os
|
|
||||||
import sys
|
|
||||||
import re
|
|
||||||
import posixpath
|
|
||||||
import argparse
|
|
||||||
from pathlib import Path
|
|
||||||
from shutil import copyfile
|
|
||||||
import yaml
|
|
||||||
|
|
||||||
name_reg = re.compile(r"(/[0-9][0-9]\.)+")
|
|
||||||
|
|
||||||
|
|
||||||
def filter_string(string, string_replace='/', regex=name_reg):
|
|
||||||
return re.sub(regex, string_replace, string)
|
|
||||||
|
|
||||||
|
|
||||||
# Input: dirname_from: where you want to migrate from. migrate_rootpath: path including the new root dir of the structure
|
|
||||||
def transform_wiki(dirname_from, migrate_rootpath):
|
|
||||||
|
|
||||||
# New file structure
|
|
||||||
Path(migrate_rootpath).mkdir(parents=True, exist_ok=True)
|
|
||||||
dir_path_new = None
|
|
||||||
|
|
||||||
for root, dirs, files in os.walk('./' + dirname_from, topdown=False):
|
|
||||||
|
|
||||||
# Filter the new names i dst
|
|
||||||
root_src = root
|
|
||||||
root_dst = filter_string(root, '/', name_reg)
|
|
||||||
|
|
||||||
# Make a new regural dirs (without bottom dir which is replaced by .md file)
|
|
||||||
path = '/'.join(root_dst.split('/')[2:-1]) # The path following the root dir (./Pages)
|
|
||||||
dir_path_new = migrate_rootpath + '/' + path
|
|
||||||
Path(dir_path_new).mkdir(parents=True, exist_ok=True)
|
|
||||||
|
|
||||||
for file_name in files:
|
|
||||||
# File path in original structure
|
|
||||||
file_path_scr = root_src + "/" + file_name
|
|
||||||
|
|
||||||
# Test for only altering .md-files
|
|
||||||
if not file_name.endswith(".md"):
|
|
||||||
# Copy other files from scr
|
|
||||||
src = file_path_scr
|
|
||||||
dst = '/'.join([dir_path_new, file_name])
|
|
||||||
copyfile(src, dst)
|
|
||||||
continue
|
|
||||||
|
|
||||||
# Open original file
|
|
||||||
with open(file_path_scr) as f_from:
|
|
||||||
|
|
||||||
try:
|
|
||||||
# New name convention for .md-files migrated to new structure
|
|
||||||
new_filepath = dir_path_new + '/' + os.path.basename(root_dst) + '.md'
|
|
||||||
with open(new_filepath, 'w') as f_to:
|
|
||||||
lines = []
|
|
||||||
yamlfront = []
|
|
||||||
inyamlfront = False
|
|
||||||
for l in f_from:
|
|
||||||
line = l.rstrip()
|
|
||||||
if len(lines) == 0 and line.startswith("---"):
|
|
||||||
inyamlfront = True
|
|
||||||
elif inyamlfront:
|
|
||||||
if line.startswith("---"):
|
|
||||||
inyamlfront = False
|
|
||||||
print(yamlfront)
|
|
||||||
front = yaml.load("\n".join(yamlfront))
|
|
||||||
if "taxonomy" in front:
|
|
||||||
taxonomy = front["taxonomy"]
|
|
||||||
del front["taxonomy"]
|
|
||||||
tags = []
|
|
||||||
if "tags" in taxonomy:
|
|
||||||
tags = taxonomy["tags"]
|
|
||||||
if "categories" in taxonomy:
|
|
||||||
for tag in taxonomy["categories"]:
|
|
||||||
tags.append("cat:" + tag)
|
|
||||||
del taxonomy["categories"]
|
|
||||||
if len(tags) > 0:
|
|
||||||
taxonomy["tags"] = tags
|
|
||||||
for k,v in taxonomy.items():
|
|
||||||
front[k] = v
|
|
||||||
del yamlfront[:]
|
|
||||||
yamlfront.append("---")
|
|
||||||
yamlfront.append(yaml.dump(front))
|
|
||||||
yamlfront.append("---")
|
|
||||||
else:
|
|
||||||
yamlfront.append(line)
|
|
||||||
else:
|
|
||||||
lines.append(line)
|
|
||||||
if len(yamlfront) > 0:
|
|
||||||
for line in yamlfront:
|
|
||||||
print(line,file=f_to)
|
|
||||||
for line in lines:
|
|
||||||
print(line,file=f_to)
|
|
||||||
|
|
||||||
except UnicodeDecodeError:
|
|
||||||
print("UnocodeError in :" + file_path_scr)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
'''
|
|
||||||
path = 'pages_migrated_example/55.usaa/cvicenia/05.linked.md'
|
|
||||||
#path = '05.linked.md'
|
|
||||||
print(path)
|
|
||||||
path = filter_string(path, '/', name_reg)
|
|
||||||
print(path)
|
|
||||||
'''
|
|
||||||
|
|
||||||
parser = argparse.ArgumentParser()
|
|
||||||
parser.add_argument("dirname", type=str)
|
|
||||||
parser.add_argument("migrate_root",type=str)
|
|
||||||
args = parser.parse_args()
|
|
||||||
transform_wiki(args.dirname, args.migrate_root)
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
---
|
|
||||||
title: Obsah
|
|
||||||
---
|
|
@ -1,27 +0,0 @@
|
|||||||
---
|
|
||||||
title: Bakalárske práce 2020/2021
|
|
||||||
category: bp2021
|
|
||||||
---
|
|
||||||
# Bakalárske práce 2021
|
|
||||||
|
|
||||||
## Témy
|
|
||||||
|
|
||||||
1. Web Demo Slovenského spracovania prirodzeného jazyka v knižnici Spacy (Jancura?)
|
|
||||||
2. Neurónové jazykové modelovanie s pomocou nástroja Fairseq (seq2seq)
|
|
||||||
|
|
||||||
- vyskúšanie trénovanie niektorej metódy BERT vo fairseq
|
|
||||||
- vyhodnotenie jazykového modelu
|
|
||||||
|
|
||||||
2. Anotácia textového korpusu
|
|
||||||
|
|
||||||
- rozbehanie-pokračovanie anotačnej schémy NER alebo QA pomocou Prodigy
|
|
||||||
|
|
||||||
3. porozumenie prirodzenému jazyku pomocou nástroja RASA NLU
|
|
||||||
|
|
||||||
- proces trénovania RASA NLU
|
|
||||||
|
|
||||||
4. Automatic generation of answers to questions in natural language using neural networks.
|
|
||||||
|
|
||||||
- natrénovanie modelu QA s databázy SQUAD?
|
|
||||||
- Využitie existujúceho anglického modelu?
|
|
||||||
|
|
@ -1,76 +0,0 @@
|
|||||||
---
|
|
||||||
title: Bakalárske práce 2021/2022
|
|
||||||
category: bp2022
|
|
||||||
---
|
|
||||||
# Bakalárske práce 2022
|
|
||||||
|
|
||||||
Ak ste študentom 2. alebo 3. ročníka odboru Počítačové siete na KEMT a máte záujem o niektorú z týchto tém, napíšte e-mail na daniel.hladek@tuke.sk.
|
|
||||||
|
|
||||||
Naučíte sa:
|
|
||||||
|
|
||||||
- niečo o spracovaní prirodzeného jazyka
|
|
||||||
- vytvárať webové aplikácie
|
|
||||||
- pracovať s nástrojmi v jazyku Python
|
|
||||||
- prekonávať technické problémy
|
|
||||||
|
|
||||||
Požiadavky:
|
|
||||||
|
|
||||||
- chcieť sa naučiť niečo nové
|
|
||||||
|
|
||||||
## Témy
|
|
||||||
|
|
||||||
### Automatické odpovede z Wikipédie
|
|
||||||
|
|
||||||
1. Vypracujte prehľad aktuálnych metód pre generovanie odpovede na otázku v prirodzenom jazyku
|
|
||||||
2. Natrénujte existujúci systém pre generovanie odpovede na otázku v prirodzenom jazyku.
|
|
||||||
3. Vytvorte demonštračnú webovú aplikáciu.
|
|
||||||
4. Navrhnite zlepšenia systému pre generovanie odpovede.
|
|
||||||
|
|
||||||
- Natrénujte existujúci systém pre generovanie odpovede na otázku v prirodzenom jazyku.
|
|
||||||
- Vytvorte demonštračnú webovú aplikáciu.
|
|
||||||
|
|
||||||
### Strojový preklad slovenského jazyka
|
|
||||||
|
|
||||||
- Zoberte existujúci systém pre strojový preklad.
|
|
||||||
- Pripravte existujúci paralelný korpus pre trénovanie.
|
|
||||||
- Vytvorte model pre strojový preklad slovenského jazyka.
|
|
||||||
|
|
||||||
1. Vypracujte prehľad aktuálnych metód pre generovanie odpovede na otázku v prirodzenom jazyku
|
|
||||||
2. Natrénujte existujúci systém pre generovanie odpovede na otázku v prirodzenom jazyku.
|
|
||||||
3. Vytvorte demonštračnú webovú aplikáciu.
|
|
||||||
4. Navrhnite zlepšenia systému pre generovanie odpovede.
|
|
||||||
|
|
||||||
### Rozpoznávanie pomenovaných entít v slovenskom jazyku
|
|
||||||
|
|
||||||
- Zlepšite model pre rozpoznávanie pomenovaných entít.
|
|
||||||
- Anotujte korpus, navrhnite lepší klasifikátor.
|
|
||||||
|
|
||||||
Pomenované entity sú väčšinou vlastné podstatné mená v texte. Ich rozpoznanie nám pomôže určiť o čom text je. To sa často využíva v chatbotoch alebo vo vyhľadávaní v texte.
|
|
||||||
|
|
||||||
1. Vypracujte prehľad metód rpre rozpoznávanie pomenovaných entít v texte.
|
|
||||||
2. Vyberte vhodnú metódu a natrénujte model pre rozpoznávanie pomenovaných entít.
|
|
||||||
3. Vykonajte viacero experimentov a zistite s akými parametrami má model najvyššiu presnosť.
|
|
||||||
4. Navrhnite ďalšie zlepšenia modelu pre rozpoznávanie pomenovaných entít.
|
|
||||||
|
|
||||||
### Vyhľadávač na slovenskom internete
|
|
||||||
|
|
||||||
Databáza dokumentov je k dispozícii. Na vytvorenie indexu je možné použiť Elasticsearch alebo podobný systém.
|
|
||||||
Dokument je potrebné spracovať pomocou skriptu v jazyku Python alebo Javascript.
|
|
||||||
|
|
||||||
- Vytvorte index pre vyhľadávanie v databáze slovenských stránok (Cassandra, Elasticseaech).
|
|
||||||
- Vytvorte webové rozhranie k vyhľadávaču.
|
|
||||||
|
|
||||||
1. Vypracujte prehľad metód pre získavanie informácií.
|
|
||||||
2. Vytvorte vyhľadávací index dokumentov zo slovenského internetu.
|
|
||||||
3. Vytvorte demonštračnú webovú aplikáciu pre vyhľadávanie na slovenskom internete.
|
|
||||||
4. Navrhnite zlepšenia vyhľadávania.
|
|
||||||
|
|
||||||
### Model Spacy pre spracovanie prirodzeného jazyka
|
|
||||||
|
|
||||||
Knižnica Spacy je často používaný nástroj na spracovanie prirodzeného jazyka.
|
|
||||||
Dobrý model slovenčiny pomože pri vývoji virtuálnych asistentov a iných nástrojov.
|
|
||||||
|
|
||||||
1. Zistite ako pracuje knižnica Spacy a opíšte metódy ktoré používa.
|
|
||||||
2. Natrénujte model pre spracovanie slovenského prirodzeného jazyka.
|
|
||||||
3. Indentifikujte slabé miesta a zlepšite presnosť spracovania.
|
|
||||||
4. Vykonajte viacero experimentov a zistite presnosť pri rôznych parametroch.
|
|
@ -1,21 +0,0 @@
|
|||||||
---
|
|
||||||
title: Kategórie
|
|
||||||
redirect: 'taxonomy?name=category'
|
|
||||||
|
|
||||||
content:
|
|
||||||
items: @self.children
|
|
||||||
|
|
||||||
cache_enable: false
|
|
||||||
twig_first: true
|
|
||||||
process:
|
|
||||||
markdown: false
|
|
||||||
twig: true
|
|
||||||
---
|
|
||||||
|
|
||||||
<h1>Kategórie</h1>
|
|
||||||
<ul>
|
|
||||||
{% for p in page.collection %}
|
|
||||||
<li><a href="{{ p.url }}">{{ p.title }}</a></li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
|||||||
---
|
|
||||||
title: Diplomové práce 2020/2021
|
|
||||||
category: dp2021
|
|
||||||
published: true
|
|
||||||
---
|
|
||||||
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
|||||||
---
|
|
||||||
title: Diplomové práce 2021/2022
|
|
||||||
category: dp2022
|
|
||||||
published: true
|
|
||||||
---
|
|
||||||
|
|
||||||
Naučíte sa:
|
|
||||||
|
|
||||||
- Niečo viac o neurónových sieťach.
|
|
||||||
- Vytvárať jednoduché programy na úpravu dát.
|
|
||||||
- Zapojiť sa do reálneho výskumu.
|
|
||||||
|
|
||||||
### Morfologická analýza s podporou predtrénovania
|
|
||||||
|
|
||||||
- Zoberte existujúci model pre morfologickú analýzu slovenského jazyka a vyhodnotte ho.
|
|
||||||
- Použite BERT model na natrénovanie morfologickej anotácie a porovnajte presnosť so základným modelom.
|
|
||||||
|
|
||||||
### Slovné jednotky v predspracovaní pre strojový preklad
|
|
||||||
|
|
||||||
- Natrénujte systém pre strojový preklad
|
|
||||||
- Vytvorte niekoľko modelov pre rozdelenie slov na menšie jednotky v slovenskom jazyku. Pre každý model rozdelenia slov natrénujte systém pre strojový preklad.
|
|
||||||
- Porovnajte výsledky strojového prekladu s rôznymi rozdeleniami slov.
|
|
||||||
|
|
||||||
|
|
||||||
### Spracovanie veľkých dát pre účely získavania informácií
|
|
||||||
|
|
||||||
- Naučte sa pracovať s databázou Cassandra a Python
|
|
||||||
- indexujte dáta z webu
|
|
||||||
- implementujte techniku vyhodnotenia dokumentov
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
|||||||
---
|
|
||||||
title: Diplomové práce 2022/2023
|
|
||||||
category: dp2023
|
|
||||||
---
|
|
||||||
# Diplomové práce 2022/2023
|
|
||||||
|
|
||||||
## Témy
|
|
||||||
|
|
||||||
1. Strojový preklad pomocou neurónových sietí (Jancura)
|
|
||||||
2. Generatívne jazykové modely (Megela)
|
|
||||||
3. Detekcia emócií z textu:
|
|
||||||
- https://github.com/savan77/EmotionDetectionBERT
|
|
||||||
|
|
@ -1,52 +0,0 @@
|
|||||||
---
|
|
||||||
title: Tímový projekt 2020
|
|
||||||
category: tp2020
|
|
||||||
---
|
|
||||||
|
|
||||||
# Tímový projekt 2020
|
|
||||||
|
|
||||||
[Daniel Hládek](../) - odporúčaný čas konzultácie: štvrtok o 9:00
|
|
||||||
|
|
||||||
Ciele:
|
|
||||||
|
|
||||||
- [Spracovanie prirodzeného jazyka](/topics/nlp), [Programovanie v jazyku Python](/topics/python)
|
|
||||||
- špecifikovať zadanie diplomovej práce
|
|
||||||
- naučiť sa pracovať s [odbornou literatúrou](../zp)
|
|
||||||
- oboznámiť kolegov s obsahom vykonanej práce
|
|
||||||
|
|
||||||
## Podmienky na zápočet
|
|
||||||
|
|
||||||
- Vypracovaný tutoriál alebo rešerš vybranej metódy (8. a 13. týždeň). Rozsah výstupu min. 3 A4 kvalitného textu, vypracovaný prehľad literatúry vybranej metódy (min. 10 odkazov) ,odovzdanie textu cez [MOOODLE](https://moodle.tuke.sk/moodle35/course/view.php?id=874) kľúč je TP2019 a cez Váš osobný profil
|
|
||||||
- Vypracovanie osobného profilu podľa [šablóny](../../../../students/2016/vzorny_student).
|
|
||||||
- Dohodnuté znenie názvu a zadania záverečnej práce
|
|
||||||
|
|
||||||
## Študenti a témy
|
|
||||||
|
|
||||||
- [Maroš Harahus](../../../../students/2016/maros_harahus) "Part of Speet Tagging" pomocou Spacy
|
|
||||||
- [Lukáš Pokrývka](../../../../students/2016/lukas_pokryvka) "Paralelné trénovanie sémantických modelov prirodzeného jazyka" (word2vec, word embeddings, GloVe, fastText)
|
|
||||||
- [Ján Holp](../../../../students/2016/jan_holp) (získavanie informácií)
|
|
||||||
- [Dárius Lindvai](../../../../students/2016/darius_lindvai) (punctuation restoration, [tutorial](https://medium.com/@praneethbedapudi/deepcorrection2-automatic-punctuation-restoration-ac4a837d92d9), pytorch, LSTM tutorial)
|
|
||||||
- [Jakub Maruniak](../../../../students/2016/jakub_maruniak) (prodigy, vytvorenie korpusu, [named-entity](../prodigy),
|
|
||||||
- [Dominik Nagy](../../../../students/2016/dominik_nagy) (spelling correction, fairseq)
|
|
||||||
|
|
||||||
|
|
||||||
## Dátumy stretnutí
|
|
||||||
|
|
||||||
- 10.10 - Harahus, Holp
|
|
||||||
- 14.10. - Nagy, Maruniak, Pokrývka (prečítať knihu, vybrať tému)
|
|
||||||
- 17.10 - Harahus, Lindvai (Prečítať knihu, prejsť Spacy tutoriál, nainštalovať Anaconda)
|
|
||||||
- 24.10 - Pracovná cesta
|
|
||||||
- 28.10 o 9:00, Holp, Harahus
|
|
||||||
- 31.10 - Dekanské voľno
|
|
||||||
- 4.11 - Maruniak
|
|
||||||
- 7.11 o 13:40 - Lindvai, Nagy, Pokrývka, Harahus
|
|
||||||
- 14.11 - Lindvai, Harahus, Holp
|
|
||||||
- 21.11 - Lindvai
|
|
||||||
- 28.11 - Harahus, Holp
|
|
||||||
- 5.12. - Harahus
|
|
||||||
- 12.12. - Holp, Harahus
|
|
||||||
- 15.1. Nagy
|
|
||||||
- 23.1. Harahus, Pokrývka, Holp, Maruniak, Nagy, Lindvai
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
|||||||
---
|
|
||||||
title: Tímový projekt 2021
|
|
||||||
category: tp2021
|
|
||||||
---
|
|
||||||
|
|
||||||
# Tímový projekt 2021
|
|
||||||
|
|
||||||
Ciele:
|
|
||||||
|
|
||||||
- špecifikovať zadanie diplomovej práce
|
|
||||||
- naučiť sa pracovať s odbornou literatúrou
|
|
||||||
- oboznámiť kolegov s obsahom vykonanej práce
|
|
||||||
|
|
||||||
## Podmienky na zápočet
|
|
||||||
|
|
||||||
- Vypracovaný tutoriál alebo rešerš vybranej metódy (8. a 13. týždeň). Rozsah výstupu min. 4 A4 kvalitného textu, vypracovaný prehľad literatúry vybranej metódy (min. 10 odkazov) ,odovzdanie textu cez [MOOODLE](https://moodle.tuke.sk/moodle35/course/view.php?id=874) kľúč je TP2019 a cez Váš osobný profil
|
|
||||||
- Dohodnuté znenie názvu a zadania záverečnej práce
|
|
@ -1,41 +0,0 @@
|
|||||||
---
|
|
||||||
title: Vedecký projekt 2020/2021
|
|
||||||
category: vp2021
|
|
||||||
---
|
|
||||||
## Vedecký projekt 2021
|
|
||||||
|
|
||||||
Príprava na bakalársky projekt pre študentov 2. ročníka programu Počítačové siete. Letný semester.
|
|
||||||
|
|
||||||
Vedúci: Ing. Daniel Hládek PhD.
|
|
||||||
|
|
||||||
Požiadavky:
|
|
||||||
|
|
||||||
- Chuť naučiť sa niečo nové.
|
|
||||||
|
|
||||||
### Dialógový systém pomocou RASA framework
|
|
||||||
|
|
||||||
Cieľom projektu je naučiť sa niečo o dialógových systémoch a oboznámiť sa so základnými nástrojmi.
|
|
||||||
|
|
||||||
- Nainštalujte a oboznámte sa s [RASA frameworkom](https://rasa.com/docs/). Pri inštalácii využite systém [Anaconda](https://docs.anaconda.com/anaconda/user-guide/getting-started/).
|
|
||||||
- Vyberte a prejdite najmenej jeden tutoriál pre prácu s RASA frameworkom.
|
|
||||||
- Napíšte krátky report na 2 strany kde napíšete čo ste urobili a čo ste sa dozvedeli.
|
|
||||||
|
|
||||||
### Klaudové služby pre získavanie informácií
|
|
||||||
|
|
||||||
Cieľom projektu je zistiť ako fungujú klaudové služby pre umelú inteligenciu
|
|
||||||
a ako fungujú webové vyhľadávače.
|
|
||||||
|
|
||||||
- Zistite čo je to získavanie informácií.
|
|
||||||
- Oboznámte sa s [Azure Cognitive Search](https://azure.microsoft.com/en-us/services/search/) a získajte prístup k službe. Pre prihlásenie môžete použiť Váše študentské prihlasovacie údaje.
|
|
||||||
- Vypracujte minimálne jeden tutoriál pre prácu s Azure Cognitive Search.
|
|
||||||
- Vypracujte krátky report na 2 strany kde napíšete čo ste robili a čo ste sa dozvedeli.
|
|
||||||
|
|
||||||
### Rozpoznávanie pomenovaných entít
|
|
||||||
|
|
||||||
Cieľom projektu je zistiť ako sa robia základné úlohy spracovania prirodzeného jazyka - rozpoznávanie vlastných podstatných mien a oboznámenie sa zo základnými nástrojmi.
|
|
||||||
|
|
||||||
- Zistite čo je to pomenovaná entita a prečo je rozpoznávanie pomenovaných entít v prirodzenom jazyku dôležité.
|
|
||||||
- Vyznačte [pomenované entity v textoch z Wikipédie](https://zp.kemt.fei.tuke.sk/topics/named-entity/navod).
|
|
||||||
- Nainštalujte si [framework Spacy](https://spacy.io/) a vyskúšajte, ako funguje rozpoznávanie pomenovaných entít v anglickom jazyku. Pri inštalácii využite systém [Anaconda](https://docs.anaconda.com/anaconda/user-guide/getting-started/).
|
|
||||||
- Napíšte krátku správu na cca 2 strany kde napíšete čo ste robili a čo ste sa dozvedeli.
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
|||||||
---
|
|
||||||
title: Vedecký projekt 2021/2022
|
|
||||||
category: vp2022
|
|
||||||
---
|
|
||||||
## Vedecký projekt 2022
|
|
||||||
|
|
||||||
Príprava na bakalársky projekt pre študentov 2. ročníka programu Počítačové siete. Letný semester.
|
|
||||||
|
|
||||||
Vedúci: Ing. Daniel Hládek PhD.
|
|
||||||
|
|
||||||
Požiadavky:
|
|
||||||
|
|
||||||
- Chuť naučiť sa niečo nové.
|
|
||||||
|
|
||||||
Obsah:
|
|
||||||
|
|
||||||
- Naštudujete si zadanú problematiku.
|
|
||||||
- Naučte sa základy jazyka Python.
|
|
||||||
- Podrobne si prejdite minimálne dva tutoriály.
|
|
||||||
- Napíšte krátky report na 2 strany kde napíšete čo ste urobili a čo ste sa dozvedeli.
|
|
||||||
|
|
||||||
### Extrakcia informácií z webových stránok
|
|
||||||
|
|
||||||
- Naštudujete si knižnicu BeautifulSoup a navrhnete skripty pre parsovanie niekoľkých webových stránok
|
|
||||||
|
|
||||||
### Dotrénovanie jazykových modelov
|
|
||||||
|
|
||||||
- Naučte sa pracovať s knižnicou HuggingFace transformers.
|
|
||||||
- Naučíte sa základy neurónových jazykových modelov.
|
|
||||||
- Dorénujete neurónovú sieť na vybraný problém.
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
|||||||
---
|
|
||||||
title: Tagy
|
|
||||||
redirect: 'taxonomy?name=tag'
|
|
||||||
|
|
||||||
content:
|
|
||||||
items: @self.children
|
|
||||||
|
|
||||||
cache_enable: false
|
|
||||||
twig_first: true
|
|
||||||
process:
|
|
||||||
markdown: false
|
|
||||||
twig: true
|
|
||||||
---
|
|
||||||
|
|
||||||
<h1>Tagy</h1>
|
|
||||||
<ul>
|
|
||||||
{% for p in page.collection %}
|
|
||||||
<li><a href="{{ p.url }}">{{ p.title }}</a></li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
title: Daniel Hladek
|
|
||||||
author: Daniel Hladek
|
|
||||||
---
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
|||||||
---
|
|
||||||
title: Authors
|
|
||||||
redirect: 'taxonomy?name=author'
|
|
||||||
|
|
||||||
content:
|
|
||||||
items: @self.children
|
|
||||||
|
|
||||||
cache_enable: false
|
|
||||||
twig_first: true
|
|
||||||
process:
|
|
||||||
markdown: false
|
|
||||||
twig: true
|
|
||||||
---
|
|
||||||
|
|
||||||
<h1>Authors</h1>
|
|
||||||
<ul>
|
|
||||||
{% for p in page.collection %}
|
|
||||||
<li><a href="{{ p.url }}">{{ p.title }}</a></li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
|||||||
---
|
|
||||||
title: Maroš Harahus
|
|
||||||
author: Maroš Harahus
|
|
||||||
---
|
|
||||||
|
|
35
pages/home/README.md
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
---
|
||||||
|
title: Záverečné práce a projekty
|
||||||
|
published: true
|
||||||
|
---
|
||||||
|
|
||||||
|
# Záverečné práce na KEMT
|
||||||
|
|
||||||
|
Wiki stánka pre spoluprácu na záverečných prácach.
|
||||||
|
|
||||||
|
|
||||||
|
- 28.1.2020 budú predobhajoby záverečných prác.
|
||||||
|
- [Pokyny KEMT](http://kemt.fei.tuke.sk/studium/diplomova-praca/organizacne-pokyny-k-predmetu-timovy-projekt-v-st-programe-pocitacove-siete-2019-2020/) k predmetu Tímový projekt 2019.
|
||||||
|
- [Pokyny KEMT](http://kemt.fei.tuke.sk/studium/bachelor-works/organizacne-pokyny-k-predmetom-bakalarsky-projekt-a-bakalarska-praca-v-st-programe-pocitacove-siete-v-sk-r-2019-2020/) k predmetu Bakalársky projekt 2019.
|
||||||
|
|
||||||
|
## Témy
|
||||||
|
|
||||||
|
- [Často kladené otázky](../topics/faq)
|
||||||
|
- [Ako odovzdám výsledky](../topics/submit)
|
||||||
|
- [Ako napíšem záverečnú prácu](../topics/akopisat)
|
||||||
|
|
||||||
|
## Projekty
|
||||||
|
|
||||||
|
- [Spracovanie prirodzeného jazyka](../teachers/hladek/topics/nlp)
|
||||||
|
- [Podpora slovenčiny v knižnici Spacy](../teachers/hladek/topics/spacy)
|
||||||
|
- [Anotácia textových korpusov](../teachers/hladek/topics/prodigy)
|
||||||
|
- [Rozpoznávanie pomenovaných entít](../teachers/hladek/topics/named-entity)
|
||||||
|
- [Dialógový systém](../teachers/hladek/topics/chatbot)
|
||||||
|
|
||||||
|
|
||||||
|
## Predmety
|
||||||
|
|
||||||
|
- [Bakalárske práce 2020](../teachers/hladek/subjects/bp2020)
|
||||||
|
- [Diplomové práce 2021](../teachers/hladek/subjects/dp2021)
|
||||||
|
- [Bakalárske práce 2019](../teachers/hladek/subjects/bp2019)
|
||||||
|
|
@ -1,72 +0,0 @@
|
|||||||
---
|
|
||||||
title: Záverečné práce a projekty
|
|
||||||
published: true
|
|
||||||
date: 01-02-2014
|
|
||||||
taxonomy:
|
|
||||||
category: [info]
|
|
||||||
tag: [tag1]
|
|
||||||
author: Daniel Hladek
|
|
||||||
---
|
|
||||||
|
|
||||||
# Záverečné práce na KEMT
|
|
||||||
|
|
||||||
Wiki stánka pre spoluprácu na záverečných prácach.
|
|
||||||
|
|
||||||
- [Často kladené otázky](/topics/faq)
|
|
||||||
- [Ako napíšem záverečnú prácu](/topics/akopisat)
|
|
||||||
- [Prostredie Anaconda a jazyk Python pre strojové učenie](/topics/python)
|
|
||||||
|
|
||||||
## Vedúci
|
|
||||||
|
|
||||||
- [Daniel Hládek](/authors/daniel-hladek)
|
|
||||||
- [Maroš Harahus](/authors/maros-harahus)
|
|
||||||
|
|
||||||
## Predmety
|
|
||||||
|
|
||||||
- [Diplomové práce 2024](/categories/dp2024)
|
|
||||||
- [Bakalárske práce 2024](/categories/bp2024)
|
|
||||||
|
|
||||||
## Vedecké projekty
|
|
||||||
|
|
||||||
- [Dialógový systém](/topics/chatbot)
|
|
||||||
- Rozpoznávanie nenávistnej reči (Hate Speech Detection)
|
|
||||||
- [Hate Speech Project Page](/topics/hatespeech)
|
|
||||||
- Rozpoznávanie pomenovaných entít
|
|
||||||
- [Projektová stránka](/topics/named-entity)
|
|
||||||
- [Anotujte korpus](/topics/named-entity/navod)
|
|
||||||
- [Ostatné projekty](/categories/projects)
|
|
||||||
|
|
||||||
## Ukončené projekty
|
|
||||||
|
|
||||||
- [Podpora slovenčiny v knižnici Spacy](/topics/spacy)
|
|
||||||
- [Slovenský BERT model](/topics/bert)
|
|
||||||
- [AI4Steel](/topics/steel)
|
|
||||||
- Korpus otázok a odpovedí
|
|
||||||
- [Projektová stránka](/topics/question)
|
|
||||||
- [Vytvorte otázky a odpovede](/topics/question/navod)
|
|
||||||
- [Validujte otázky a odpovede](/topics/question/validacie)
|
|
||||||
- [Vytvorte nezodpovedateľné otázky a odpovede](/topics/question/nezodpovedatelne)
|
|
||||||
|
|
||||||
## Uzavreté predmety
|
|
||||||
|
|
||||||
## 2023
|
|
||||||
|
|
||||||
- [Diplomové práce 2023](/categories/dp2023)
|
|
||||||
- [Bakalárske práce 2023](/categories/bp2023)
|
|
||||||
|
|
||||||
## 2022
|
|
||||||
|
|
||||||
- [Diplomové práce 2022](/categories/dp2022)
|
|
||||||
- [Bakalárske práce 2022](/categories/bp2022)
|
|
||||||
|
|
||||||
## 2021
|
|
||||||
|
|
||||||
- [Bakalárske práce 2021](/categories/bp2021)
|
|
||||||
- [Vedecký projekt 2021](/categories/vp2021)
|
|
||||||
- [Bakalárske práce 2021](/categories/bp2021)
|
|
||||||
- [Diplomové práce 2021](/categories/dp2021)
|
|
||||||
|
|
||||||
## 2020
|
|
||||||
|
|
||||||
- [Výsledky Tímového projektu 2020](/categories/tp2020)
|
|
||||||
- [Bakalárske práce 2020](/categories/bp2020)
|
|
@ -1,66 +0,0 @@
|
|||||||
---
|
|
||||||
title: Oliver Pejic
|
|
||||||
published: true
|
|
||||||
taxonomy:
|
|
||||||
category: [iaeste]
|
|
||||||
tag: [hatespeech,nlp]
|
|
||||||
author: Daniel Hladek
|
|
||||||
---
|
|
||||||
|
|
||||||
Oliver Pejic
|
|
||||||
|
|
||||||
IAESTE Intern Summer 2024, 12 weeks in August, September and October.
|
|
||||||
|
|
||||||
Goal:
|
|
||||||
|
|
||||||
- Help with the [Hate Speech Project](/topics/hatespeech)
|
|
||||||
- Help with evaluation of sentence transformer models using toolkit [MTEB](https://github.com/embeddings-benchmark/mteb)
|
|
||||||
|
|
||||||
Final Tasks:
|
|
||||||
|
|
||||||
- Prepare an MTEB evaluation task for [Slovak HATE speech](https://huggingface.co/datasets/TUKE-KEMT/hate_speech_slovak).
|
|
||||||
- Prepare an MTEB evaluation task for [Slovak question answering](https://huggingface.co/datasets/TUKE-KEMT/retrieval-skquad).
|
|
||||||
- [Machine translate](https://huggingface.co/google/madlad400-3b-mt) an SBERT evaluation set for multiple slavic languages.
|
|
||||||
- Write a short scientific paper with results.
|
|
||||||
|
|
||||||
Meeting 3.10.:
|
|
||||||
|
|
||||||
State:
|
|
||||||
|
|
||||||
- Prepared a pull request for Retrieval SK Quad.
|
|
||||||
- Prepared a pull request for Hate Speech Slovak.
|
|
||||||
|
|
||||||
Tasks:
|
|
||||||
|
|
||||||
- Make the pull request compatible with the MTEB Contribution guidelines. Discuss it when it is done.
|
|
||||||
- Submit pull requests to MTEB project.
|
|
||||||
- Machine Translate a database (HotpotQA, DB Pedia, FEVER) . Pick a database that is short, because translation might be slow.
|
|
||||||
|
|
||||||
Non priority tasks:
|
|
||||||
|
|
||||||
- Prepare databse and subnit it to HuggingFace Hub.
|
|
||||||
- Prepare a MTEB PR for the databse.
|
|
||||||
|
|
||||||
Meeting 3.9:
|
|
||||||
|
|
||||||
State: Studied MTEB framework and transformers.
|
|
||||||
|
|
||||||
Tasks:
|
|
||||||
|
|
||||||
- Prepare and try MTEB evaluation tasks for the database. For evaluation you can try me5-base model.
|
|
||||||
- Make a fork of MTEB and do necessary modification, including the documentation references for the task.
|
|
||||||
- Prepare 2 GITHUB pull requests for the databases, preliminary BEIR script given.
|
|
||||||
|
|
||||||
Future tasks:
|
|
||||||
|
|
||||||
- Prepare a machine translation system to create another slovak/multilingual evaluation task from English task.
|
|
||||||
|
|
||||||
Preparation (7.8.2024):
|
|
||||||
|
|
||||||
- Get familiar with [SentenceTransformer](https://sbert.net/) framework, study fundamental papers and write down notes.
|
|
||||||
- Get familiar with [MTEB](https://github.com/embeddings-benchmark/mteb) evaluation framework.
|
|
||||||
- Prepare a working environment on Google Colab or on school server or Anaconda.
|
|
||||||
- Get familiar with [existing finetuning scripts](https://git.kemt.fei.tuke.sk/dano/slovakretrieval).
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,104 +0,0 @@
|
|||||||
---
|
|
||||||
title: Sevval Bulburu
|
|
||||||
published: true
|
|
||||||
taxonomy:
|
|
||||||
category: [iaeste]
|
|
||||||
tag: [hatespeech,nlp]
|
|
||||||
author: Daniel Hladek
|
|
||||||
---
|
|
||||||
|
|
||||||
Sevval Bulburu
|
|
||||||
|
|
||||||
|
|
||||||
IAESTE Intern Summer 2023, two months
|
|
||||||
|
|
||||||
Goal: Help with the [Hate Speech Project](/topics/hatespeech)
|
|
||||||
|
|
||||||
Meeting 12.10.2023
|
|
||||||
|
|
||||||
[Github Repo with results](https://github.com/sevvalbulburu/Hate_Speech_Detection_Slovak)
|
|
||||||
|
|
||||||
State:
|
|
||||||
|
|
||||||
- Proposed and tried extra layers above BERT model to make a classifier in seriees of experiments. There is a single sigmoid neuron on the output.
|
|
||||||
- Manually adjusted the slovak HS dataset. Slovak dataset is not balanced. Tried some methods for "balancing" the dataset. By google translate - augmentation. Other samples are "generated" by translation into random langauge and translating back. This creates "paraphrases" of the original samples. It helps.
|
|
||||||
- Tried SMOTE upsampling, it did not work.
|
|
||||||
- Is date and user name an important feature?
|
|
||||||
- tried some grid search for hyperparameter of the neural network - learning rate, dropout, epoch size, batch size. Batch size 64 no good.
|
|
||||||
- Tried multilingal models for Slovak dataset (cnerg), result are not good.
|
|
||||||
|
|
||||||
Tasks:
|
|
||||||
|
|
||||||
- Please send me your work report. Please upload your scripts and notebooks on git and send me a link. git is git.kemt.fei.tuke.sk or github. Prepare some short comment about scripts.You can also upload the slovak datasetthere is some work done on it.
|
|
||||||
|
|
||||||
Ideas for a paper:
|
|
||||||
|
|
||||||
Possible names:
|
|
||||||
|
|
||||||
- "Data set balancing for Multilingual Hate Speech Detection"
|
|
||||||
- "BERT embeddings for HS Detection in Low Resource Languages" (Turkish and Slovak).
|
|
||||||
|
|
||||||
(Possible) Tasks for paper:
|
|
||||||
|
|
||||||
- Create a shared draft document, e.g. on Overleaf or Google Doc
|
|
||||||
- Write a good introduction and literature overview (Zuzka).
|
|
||||||
- Try 2 or 3 class Softmax Layer for neural network.
|
|
||||||
- Change the dataset for 3 class classification.
|
|
||||||
- Prepare classifier for Slovak, English, Turkish and for multiple BERT models. Try to use multilingual BERT model for baseline embeddings.
|
|
||||||
- Measure the effect of balancing the dataset by generation of additional examples.
|
|
||||||
- Summarize experiments in tables.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Meeting 5.9.2023
|
|
||||||
|
|
||||||
State:
|
|
||||||
|
|
||||||
- Proposed own Flask application
|
|
||||||
- Created Django application with data model https://github.com/hladek/hate-annot
|
|
||||||
|
|
||||||
Tasks:
|
|
||||||
|
|
||||||
Meeting 22.8.2023
|
|
||||||
|
|
||||||
State:
|
|
||||||
|
|
||||||
- Familiar with Python, Anaconda, Tensorflow, AI projects
|
|
||||||
- created account at idoc.fei.tuke.sk and installed anaconda.
|
|
||||||
- Continue with previous open tasks.
|
|
||||||
- Read a website and pick a dataset from https://hatespeechdata.com/
|
|
||||||
- Evaluate (calculate p r f1) existing multilingual model. E.G. https://huggingface.co/Andrazp/multilingual-hate-speech-robacofi with any data
|
|
||||||
- Get familiar with Django.
|
|
||||||
|
|
||||||
|
|
||||||
Notes:
|
|
||||||
|
|
||||||
- ssh bulbur@idoc.fei.tuke.sk
|
|
||||||
- nvidia-smi command to check status of GPU.
|
|
||||||
- Use WinSCP to Copy Files. Use anaconda virtual env to create and activate a new python virtual environment. Use Visual Studio Code Remote to delvelop on your computer and run on remote computer (idoc.fei.tuke.sk). Use the same credentials for idoc server.
|
|
||||||
- Use WSL2 to have local linux just to play.
|
|
||||||
|
|
||||||
Tasks:
|
|
||||||
|
|
||||||
- [ ] Get familiar with the task of Hate speech detection. Find out how can we use Transformer neural networks to detect and categorize hate speech in internet comments created by random people.
|
|
||||||
- [ ] Get familiar with the basic tools: Huggingface Transformers, Learn how to use https://huggingface.co/Andrazp/multilingual-hate-speech-robacofi in Python script. Learn something about Transformer neural networks.
|
|
||||||
|
|
||||||
- [x] get familiar with Prodi.gy annotation tool.
|
|
||||||
- [-] Set up web-based annotation environment for students (open, cooperation with [Vladimir Ferko](/students/2021/vladimir_ferko) ).
|
|
||||||
|
|
||||||
Ideas for annotation tools:
|
|
||||||
|
|
||||||
- https://github.com/UniversalDataTool/universal-data-tool
|
|
||||||
- https://www.johnsnowlabs.com/top-6-text-annotation-tools/
|
|
||||||
- https://app.labelbox.com/
|
|
||||||
- https://github.com/recogito/recogito-js
|
|
||||||
- https://github.com/topics/text-annotation?l=javascript
|
|
||||||
|
|
||||||
Future tasks (to be decided):
|
|
||||||
|
|
||||||
- Translate existing English dataset into Slovak. Use OPUS English Slovak Marian NMT model. Train Slovak munolingual model.
|
|
||||||
- Prepare existing Slovak Twitter dataaset, train evaluate a model.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,170 +0,0 @@
|
|||||||
---
|
|
||||||
title: Dárius Lindvai
|
|
||||||
published: true
|
|
||||||
taxonomy:
|
|
||||||
category: [dp2021,bp2019]
|
|
||||||
tag: [nn,interpunction,nlp]
|
|
||||||
author: Daniel Hladek
|
|
||||||
---
|
|
||||||
# Dárius Lindvai
|
|
||||||
Rok začiatku štúdia: 2016
|
|
||||||
|
|
||||||
Repozitár so [zdrojovými kódmi](https://git.kemt.fei.tuke.sk/dl874wn/dp2021)
|
|
||||||
|
|
||||||
Názov: Obnovenie interpunkcie pomocou hlbokých neurónových sietí
|
|
||||||
|
|
||||||
1. Vypracujte prehľad metód na obnovenie interpunkcie pomocou neurónových sietí.
|
|
||||||
2. Vyberte vhodnú metódu obnovenia interpunkcie pomocou neurónových sietí.
|
|
||||||
3. Pripravte množinu dát na trénovanie neurónovej siete, navrhnite a vykonajte sadu experimentov s rôznymi parametrami.
|
|
||||||
4. Vyhodnoťte experimenty a navrhnite možné zlepšenia.
|
|
||||||
|
|
||||||
|
|
||||||
## Diplomový projekt 2 2020
|
|
||||||
|
|
||||||
Stretnutie 25.1.2021
|
|
||||||
|
|
||||||
Stav:
|
|
||||||
|
|
||||||
- Vypracovaný report experimentov
|
|
||||||
- Prezentácia
|
|
||||||
|
|
||||||
Do ďalšieho stretnutia:
|
|
||||||
|
|
||||||
- Dopísať časť kde opíšete Vašu metódu
|
|
||||||
- Rozšíriť teoretickú časť - zistite a napíšte čo je Transformer, BERT, RNN a Adversarial (kontradiktórne učenie) learning.
|
|
||||||
|
|
||||||
|
|
||||||
Virtuálne stretnutie 20.11.2020
|
|
||||||
|
|
||||||
Stav:
|
|
||||||
|
|
||||||
- Urobené úlohy z ďalšieho stretnutia
|
|
||||||
- Práca na písomnej časti, ešte treba spracovať experimenty.
|
|
||||||
|
|
||||||
Do ďalšieho stretnutia:
|
|
||||||
|
|
||||||
- Finalizovať text.
|
|
||||||
|
|
||||||
|
|
||||||
Virtuálne stretnutie 6.11.2020
|
|
||||||
|
|
||||||
Stav:
|
|
||||||
|
|
||||||
- Vypracovaná tabuľka s 5 experimentami.
|
|
||||||
- vytvorený repozitár.
|
|
||||||
|
|
||||||
Na ďalšie stretnutie:
|
|
||||||
|
|
||||||
- nahrať kódy na repozitár.
|
|
||||||
- závislosťi (názvy balíčkov) poznačte do súboru requirements.txt.
|
|
||||||
- Prepracujte experiment tak aby akceptoval argumenty z príkazového riadka. (sys.argv)
|
|
||||||
- K experimentom zapísať skript na spustenie. V skripte by mali byť parametre s ktorými ste spustili experiment.
|
|
||||||
- dopracujte report.
|
|
||||||
- do teorie urobte prehľad metód punctuation restoration a opis Vašej metódy.
|
|
||||||
|
|
||||||
|
|
||||||
Virtuálne stretnutie 25.9.2020
|
|
||||||
|
|
||||||
Urobené:
|
|
||||||
|
|
||||||
- skript pre vyhodnotenie experimentov.
|
|
||||||
|
|
||||||
|
|
||||||
Úlohy do ďalšieho stretnutia:
|
|
||||||
- vytvorte nový repozitár so zdrojovými kódmi (nazvite ho dp2021)
|
|
||||||
- vykonať a vyhodnotiť experimenty
|
|
||||||
- Zvážiť publikovanie na http://conf.uni-obuda.hu/sami2021/paper.html
|
|
||||||
- napísať draft na min. 4 strany s teóriou, experimantami aj bibliografipou. Môže byť aj po slovensky, potom to preložíme do nagličtiny.
|
|
||||||
|
|
||||||
## Diplomový projekt 2020
|
|
||||||
|
|
||||||
[Výstupy](dp2021)
|
|
||||||
|
|
||||||
Úlohy na diplomový projekt:
|
|
||||||
|
|
||||||
- 1. Vybrať a pripraviť dátovú množinu na natrénovanie
|
|
||||||
- 2. Vybrať a implementovať neurónovú sieť
|
|
||||||
- 3. Vykonať sadu experimentov na overenie presnosti klasifikácie zvolenej neurónovej siete
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Zápis o činnosti
|
|
||||||
|
|
||||||
Virtuálne stretnutie 26.6.
|
|
||||||
|
|
||||||
Urobené:
|
|
||||||
|
|
||||||
- Trénovanie modelu BiLSTM+CFR a jeho vyhodnotenie Precision Recall pre každú triedu
|
|
||||||
|
|
||||||
Treba urobiť:
|
|
||||||
|
|
||||||
- Vyhodnotenie na testovacej množine
|
|
||||||
- Doplnenie skriptu pre prípravu dát
|
|
||||||
- Krátky záznam o experimentoch - stručný opis nastavenia, dát a záznam výsledkov.
|
|
||||||
|
|
||||||
Virtuálne stretnutie 14.5.2020:
|
|
||||||
|
|
||||||
Prebrali sme premenu [Pytorch Tensor na NumPy Maticu](https://pytorch.org/tutorials/beginner/blitz/tensor_tutorial.html)
|
|
||||||
- Pokračuje práca na Precision Recall - konfidenčná matica
|
|
||||||
|
|
||||||
Revízia 8.5.2020:
|
|
||||||
|
|
||||||
- Práca pokračuje.
|
|
||||||
- Precision-recall vypočítate z konfidenčnej matice [takto](https://towardsdatascience.com/multi-class-metrics-made-simple-part-i-precision-and-recall-9250280bddc2).
|
|
||||||
|
|
||||||
|
|
||||||
Revízia 17.4.2020:
|
|
||||||
|
|
||||||
- Upravené zdrojové kódy BiLSTM+CRF pre Punctuation Restoration
|
|
||||||
- *repozitár [dp2021](./dp2021/)*
|
|
||||||
|
|
||||||
Nové úlohy:
|
|
||||||
|
|
||||||
- Pripravte si trénovaciu a testovaciu množinu.
|
|
||||||
- Natrénujte neurónovú sieť na väčších dátach, použite server idoc.
|
|
||||||
- Vyhodnnotte presnosť vo forme Precision-Recall pre každú triedu
|
|
||||||
|
|
||||||
|
|
||||||
Stretnutie 9.3.2020:
|
|
||||||
|
|
||||||
Pozrieť si:
|
|
||||||
|
|
||||||
- https://github.com/sgrvinod/a-PyTorch-Tutorial-to-Sequence-Labeling
|
|
||||||
- Comparison of Recurrent Neural Networks for Slovak
|
|
||||||
Punctuation Restoration (poslané emailom)
|
|
||||||
|
|
||||||
Skúste upraviť kódy:
|
|
||||||
|
|
||||||
- https://pytorch.org/tutorials/beginner/nlp/advanced_tutorial.html
|
|
||||||
- repozitár https://git.kemt.fei.tuke.sk/dano/comma
|
|
||||||
|
|
||||||
na problém dopĺňania interpunkcie.
|
|
||||||
|
|
||||||
Na ďalšie stretnutie rozbehané kódy.
|
|
||||||
|
|
||||||
Stretnutie 20.2.2020
|
|
||||||
|
|
||||||
Úlohy na ďalšie stretnutie:
|
|
||||||
|
|
||||||
- Ako zmeniť postupnosť slov na postupnosť vektorov?
|
|
||||||
- [Slovo na číslo] (https://hackernoon.com/what-is-one-hot-encoding-why-and-when-do-you-have-to-use-it-e3c6186d008f)
|
|
||||||
- Ako použiť postupnosť vektorov na natrénovanie neurónovej siete?
|
|
||||||
- [Sequence Tagging, Vocab](https://pytorch.org/text/)
|
|
||||||
|
|
||||||
|
|
||||||
## Tímový projekt 2019
|
|
||||||
|
|
||||||
*Projektové stránky:*
|
|
||||||
|
|
||||||
- [Spracovanie prirodzeného jazyka](/topics/nlp)
|
|
||||||
- [Python](/topics/python)
|
|
||||||
|
|
||||||
*Úlohy na vypracovanie:*
|
|
||||||
- [rešerš](./timovy_projekt/resers) tak na 3 strany - čo najnovšie sa píše na tému "puctuation restoration"
|
|
||||||
- krátky program a [tutoriál](./timovy_projekt/tutorial) (program s rozsiahlym komentárom) v Pythone na využitie LSTM, napr. [ako](https://pytorch.org/tutorials/beginner/nlp/sequence_models_tutorial.html).
|
|
||||||
- [zaujímavý blog](http://jalammar.github.io/illustrated-transformer/)
|
|
||||||
|
|
||||||
*Výstup TP:*
|
|
||||||
|
|
||||||
- Písomná práca: [rešerš](./timovy_projekt/resers)
|
|
||||||
- Tutoriál: [tutoriál](./timovy_projekt/tutorial)
|
|
@ -1,24 +0,0 @@
|
|||||||
## Update 05.06.2020
|
|
||||||
- pridaný čas začiatku a čas ukončenia trénovania, aby bolo možné určit, ako dlho trénovanie trvalo
|
|
||||||
- upravený skript na úpravu textu do vhodnej podoby (skombinoval som môj vlastný skript s jedným voľne dostupným na internete, aby bola úprava textu presnejšia)
|
|
||||||
- pridaný tag na identifikáciu čísel v texte ("N"), čo by teoreticky mohlo zvýšiť presnosť modelu
|
|
||||||
- vyriešený výpočet precision, recall a f-score (problém som vyriešil tak, že som najprv zo skutočných hodnôt urobil tensor, ktorý som následne konvertoval na numpy pole)
|
|
||||||
|
|
||||||
## 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.
|
|
||||||
- Keď som skúšal použiť dáta, kde bol aj otáznik, ale namiesto otáznika model doplňoval bodku.
|
|
||||||
|
|
||||||
vysvetlenie zápisu dát:
|
|
||||||
- v texte som nahradil interpunciu slovami, resp. skratkami ('.' -> 'PER', ',' -> 'COM', '?' -> '.QUE')
|
|
||||||
- sekvencie slov som označil ako "S", nerozlišoval som slovné druhy
|
|
||||||
- interpunkčné znamienka som označil ako "C" (pre čiarku), "P" (pre bodku) a "Q" (pre otáznik)
|
|
||||||
|
|
||||||
vysvetlenie výstupu:
|
|
||||||
- Prvý tensor je predikcia modelu pred trénovaním.
|
|
||||||
- Druhý tensor je predikcia po trénovaní.
|
|
@ -1,24 +0,0 @@
|
|||||||
import os
|
|
||||||
|
|
||||||
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 + ' ')
|
|
||||||
elif(word == '<NUM>'):
|
|
||||||
word = word.replace(word, 'N')
|
|
||||||
output_file.write(word + ' ')
|
|
||||||
else:
|
|
||||||
word = word.replace(word, 'S')
|
|
||||||
output_file.write(word + ' ')
|
|
@ -1,73 +0,0 @@
|
|||||||
from __future__ import division, print_function
|
|
||||||
from nltk.tokenize import word_tokenize
|
|
||||||
|
|
||||||
import nltk
|
|
||||||
import os
|
|
||||||
from io import open
|
|
||||||
import re
|
|
||||||
import sys
|
|
||||||
|
|
||||||
nltk.download('punkt')
|
|
||||||
|
|
||||||
NUM = '<NUM>'
|
|
||||||
|
|
||||||
PUNCTS = {".": ".PER", ",": ".COM", "?": "?QUE", "!": ".PER", ":": ",COM", ";": ".PER", "-": ",COM"}
|
|
||||||
|
|
||||||
forbidden_symbols = re.compile(r"[\[\]\(\)\/\\\>\<\=\+\_\*]")
|
|
||||||
numbers = re.compile(r"\d")
|
|
||||||
multiple_punct = re.compile(r'([\.\?\!\,\:\;\-])(?:[\.\?\!\,\:\;\-]){1,}')
|
|
||||||
|
|
||||||
is_number = lambda x: len(numbers.sub("", x)) / len(x) < 0.6
|
|
||||||
|
|
||||||
def untokenize(line):
|
|
||||||
return line.replace(" '", "'").replace(" n't", "n't").replace("can not", "cannot")
|
|
||||||
|
|
||||||
def skip(line):
|
|
||||||
|
|
||||||
if line.strip() == '':
|
|
||||||
return True
|
|
||||||
|
|
||||||
last_symbol = line[-1]
|
|
||||||
if not last_symbol in PUNCTS:
|
|
||||||
return True
|
|
||||||
|
|
||||||
if forbidden_symbols.search(line) is not None:
|
|
||||||
return True
|
|
||||||
|
|
||||||
return False
|
|
||||||
|
|
||||||
def process_line(line):
|
|
||||||
|
|
||||||
tokens = word_tokenize(line)
|
|
||||||
output_tokens = []
|
|
||||||
|
|
||||||
for token in tokens:
|
|
||||||
|
|
||||||
if token in PUNCTS:
|
|
||||||
output_tokens.append(PUNCTS[token])
|
|
||||||
elif is_number(token):
|
|
||||||
output_tokens.append(NUM)
|
|
||||||
else:
|
|
||||||
output_tokens.append(token.lower())
|
|
||||||
|
|
||||||
return untokenize(" ".join(output_tokens) + " ")
|
|
||||||
|
|
||||||
skipped = 0
|
|
||||||
|
|
||||||
with open(sys.argv[2], 'w', encoding='utf-8') as out_txt:
|
|
||||||
with open(sys.argv[1], 'r', encoding='utf-8') as text:
|
|
||||||
|
|
||||||
for line in text:
|
|
||||||
|
|
||||||
line = line.replace("\"", "").strip()
|
|
||||||
line = multiple_punct.sub(r"\g<1>", line)
|
|
||||||
|
|
||||||
if skip(line):
|
|
||||||
skipped += 1
|
|
||||||
continue
|
|
||||||
|
|
||||||
line = process_line(line)
|
|
||||||
|
|
||||||
out_txt.write(line)
|
|
||||||
|
|
||||||
print("Skipped %d lines" % skipped)
|
|
@ -1,246 +0,0 @@
|
|||||||
import numpy as np
|
|
||||||
import torch
|
|
||||||
import torch.autograd as autograd
|
|
||||||
import torch.nn as nn
|
|
||||||
import torch.optim as optim
|
|
||||||
from sklearn import metrics
|
|
||||||
from datetime import datetime
|
|
||||||
|
|
||||||
torch.manual_seed(1)
|
|
||||||
|
|
||||||
def argmax(vec):
|
|
||||||
# return the argmax as a python int
|
|
||||||
_, idx = torch.max(vec, 1)
|
|
||||||
return idx.item()
|
|
||||||
|
|
||||||
|
|
||||||
def prepare_sequence(seq, to_ix):
|
|
||||||
idxs = [to_ix[w] for w in seq]
|
|
||||||
return torch.tensor(idxs, dtype=torch.long)
|
|
||||||
|
|
||||||
|
|
||||||
# Compute log sum exp in a numerically stable way for the forward algorithm
|
|
||||||
def log_sum_exp(vec):
|
|
||||||
max_score = vec[0, argmax(vec)]
|
|
||||||
max_score_broadcast = max_score.view(1, -1).expand(1, vec.size()[1])
|
|
||||||
return max_score + \
|
|
||||||
torch.log(torch.sum(torch.exp(vec - max_score_broadcast)))
|
|
||||||
|
|
||||||
class BiLSTM_CRF(nn.Module):
|
|
||||||
|
|
||||||
def __init__(self, vocab_size, tag_to_ix, embedding_dim, hidden_dim):
|
|
||||||
super(BiLSTM_CRF, self).__init__()
|
|
||||||
self.embedding_dim = embedding_dim
|
|
||||||
self.hidden_dim = hidden_dim
|
|
||||||
self.vocab_size = vocab_size
|
|
||||||
self.tag_to_ix = tag_to_ix
|
|
||||||
self.tagset_size = len(tag_to_ix)
|
|
||||||
|
|
||||||
self.word_embeds = nn.Embedding(vocab_size, embedding_dim)
|
|
||||||
self.lstm = nn.LSTM(embedding_dim, hidden_dim // 2,
|
|
||||||
num_layers=1, bidirectional=True)
|
|
||||||
|
|
||||||
# Maps the output of the LSTM into tag space.
|
|
||||||
self.hidden2tag = nn.Linear(hidden_dim, self.tagset_size)
|
|
||||||
|
|
||||||
# Matrix of transition parameters. Entry i,j is the score of
|
|
||||||
# transitioning *to* i *from* j.
|
|
||||||
self.transitions = nn.Parameter(
|
|
||||||
torch.randn(self.tagset_size, self.tagset_size))
|
|
||||||
|
|
||||||
# These two statements enforce the constraint that we never transfer
|
|
||||||
# to the start tag and we never transfer from the stop tag
|
|
||||||
self.transitions.data[tag_to_ix[START_TAG], :] = -10000
|
|
||||||
self.transitions.data[:, tag_to_ix[STOP_TAG]] = -10000
|
|
||||||
|
|
||||||
self.hidden = self.init_hidden()
|
|
||||||
|
|
||||||
def init_hidden(self):
|
|
||||||
return (torch.randn(2, 1, self.hidden_dim // 2),
|
|
||||||
torch.randn(2, 1, self.hidden_dim // 2))
|
|
||||||
|
|
||||||
def _forward_alg(self, feats):
|
|
||||||
# Do the forward algorithm to compute the partition function
|
|
||||||
init_alphas = torch.full((1, self.tagset_size), -10000.)
|
|
||||||
# START_TAG has all of the score.
|
|
||||||
init_alphas[0][self.tag_to_ix[START_TAG]] = 0.
|
|
||||||
|
|
||||||
# Wrap in a variable so that we will get automatic backprop
|
|
||||||
forward_var = init_alphas
|
|
||||||
|
|
||||||
# Iterate through the sentence
|
|
||||||
for feat in feats:
|
|
||||||
alphas_t = [] # The forward tensors at this timestep
|
|
||||||
for next_tag in range(self.tagset_size):
|
|
||||||
# broadcast the emission score: it is the same regardless of
|
|
||||||
# the previous tag
|
|
||||||
emit_score = feat[next_tag].view(
|
|
||||||
1, -1).expand(1, self.tagset_size)
|
|
||||||
# the ith entry of trans_score is the score of transitioning to
|
|
||||||
# next_tag from i
|
|
||||||
trans_score = self.transitions[next_tag].view(1, -1)
|
|
||||||
# The ith entry of next_tag_var is the value for the
|
|
||||||
# edge (i -> next_tag) before we do log-sum-exp
|
|
||||||
next_tag_var = forward_var + trans_score + emit_score
|
|
||||||
# The forward variable for this tag is log-sum-exp of all the
|
|
||||||
# scores.
|
|
||||||
alphas_t.append(log_sum_exp(next_tag_var).view(1))
|
|
||||||
forward_var = torch.cat(alphas_t).view(1, -1)
|
|
||||||
terminal_var = forward_var + self.transitions[self.tag_to_ix[STOP_TAG]]
|
|
||||||
alpha = log_sum_exp(terminal_var)
|
|
||||||
return alpha
|
|
||||||
|
|
||||||
def _get_lstm_features(self, sentence):
|
|
||||||
self.hidden = self.init_hidden()
|
|
||||||
embeds = self.word_embeds(sentence).view(len(sentence), 1, -1)
|
|
||||||
lstm_out, self.hidden = self.lstm(embeds, self.hidden)
|
|
||||||
lstm_out = lstm_out.view(len(sentence), self.hidden_dim)
|
|
||||||
lstm_feats = self.hidden2tag(lstm_out)
|
|
||||||
return lstm_feats
|
|
||||||
|
|
||||||
def _score_sentence(self, feats, tags):
|
|
||||||
# Gives the score of a provided tag sequence
|
|
||||||
score = torch.zeros(1)
|
|
||||||
tags = torch.cat([torch.tensor([self.tag_to_ix[START_TAG]], dtype=torch.long), tags])
|
|
||||||
for i, feat in enumerate(feats):
|
|
||||||
score = score + \
|
|
||||||
self.transitions[tags[i + 1], tags[i]] + feat[tags[i + 1]]
|
|
||||||
score = score + self.transitions[self.tag_to_ix[STOP_TAG], tags[-1]]
|
|
||||||
return score
|
|
||||||
|
|
||||||
def _viterbi_decode(self, feats):
|
|
||||||
backpointers = []
|
|
||||||
|
|
||||||
# Initialize the viterbi variables in log space
|
|
||||||
init_vvars = torch.full((1, self.tagset_size), -10000.)
|
|
||||||
init_vvars[0][self.tag_to_ix[START_TAG]] = 0
|
|
||||||
|
|
||||||
# forward_var at step i holds the viterbi variables for step i-1
|
|
||||||
forward_var = init_vvars
|
|
||||||
for feat in feats:
|
|
||||||
bptrs_t = [] # holds the backpointers for this step
|
|
||||||
viterbivars_t = [] # holds the viterbi variables for this step
|
|
||||||
|
|
||||||
for next_tag in range(self.tagset_size):
|
|
||||||
# next_tag_var[i] holds the viterbi variable for tag i at the
|
|
||||||
# previous step, plus the score of transitioning
|
|
||||||
# from tag i to next_tag.
|
|
||||||
# We don't include the emission scores here because the max
|
|
||||||
# does not depend on them (we add them in below)
|
|
||||||
next_tag_var = forward_var + self.transitions[next_tag]
|
|
||||||
best_tag_id = argmax(next_tag_var)
|
|
||||||
bptrs_t.append(best_tag_id)
|
|
||||||
viterbivars_t.append(next_tag_var[0][best_tag_id].view(1))
|
|
||||||
# Now add in the emission scores, and assign forward_var to the set
|
|
||||||
# of viterbi variables we just computed
|
|
||||||
forward_var = (torch.cat(viterbivars_t) + feat).view(1, -1)
|
|
||||||
backpointers.append(bptrs_t)
|
|
||||||
|
|
||||||
# Transition to STOP_TAG
|
|
||||||
terminal_var = forward_var + self.transitions[self.tag_to_ix[STOP_TAG]]
|
|
||||||
best_tag_id = argmax(terminal_var)
|
|
||||||
path_score = terminal_var[0][best_tag_id]
|
|
||||||
|
|
||||||
# Follow the back pointers to decode the best path.
|
|
||||||
best_path = [best_tag_id]
|
|
||||||
for bptrs_t in reversed(backpointers):
|
|
||||||
best_tag_id = bptrs_t[best_tag_id]
|
|
||||||
best_path.append(best_tag_id)
|
|
||||||
# Pop off the start tag (we dont want to return that to the caller)
|
|
||||||
start = best_path.pop()
|
|
||||||
assert start == self.tag_to_ix[START_TAG] # Sanity check
|
|
||||||
best_path.reverse()
|
|
||||||
return path_score, best_path
|
|
||||||
|
|
||||||
def neg_log_likelihood(self, sentence, tags):
|
|
||||||
feats = self._get_lstm_features(sentence)
|
|
||||||
forward_score = self._forward_alg(feats)
|
|
||||||
gold_score = self._score_sentence(feats, tags)
|
|
||||||
return forward_score - gold_score
|
|
||||||
|
|
||||||
def forward(self, sentence): # dont confuse this with _forward_alg above.
|
|
||||||
# Get the emission scores from the BiLSTM
|
|
||||||
lstm_feats = self._get_lstm_features(sentence)
|
|
||||||
|
|
||||||
# Find the best path, given the features.
|
|
||||||
score, tag_seq = self._viterbi_decode(lstm_feats)
|
|
||||||
return score, tag_seq
|
|
||||||
|
|
||||||
START_TAG = "<START>"
|
|
||||||
STOP_TAG = "<STOP>"
|
|
||||||
EMBEDDING_DIM = 5
|
|
||||||
HIDDEN_DIM = 4
|
|
||||||
|
|
||||||
# Make up some training data
|
|
||||||
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:
|
|
||||||
for word in sentence:
|
|
||||||
if word not in word_to_ix:
|
|
||||||
word_to_ix[word] = len(word_to_ix)
|
|
||||||
|
|
||||||
tag_to_ix = {"S": 0, "P": 1, "C": 2, "Q": 3, "N": 4, START_TAG: 5, STOP_TAG: 6}
|
|
||||||
|
|
||||||
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)
|
|
||||||
|
|
||||||
|
|
||||||
# Check predictions before training
|
|
||||||
with torch.no_grad():
|
|
||||||
precheck_sent = prepare_sequence(training_data[0][0], word_to_ix)
|
|
||||||
precheck_tags = torch.tensor([tag_to_ix[t] for t in training_data[0][1]], dtype=torch.long)
|
|
||||||
#print(model(precheck_sent))
|
|
||||||
|
|
||||||
|
|
||||||
# Print start time
|
|
||||||
start = datetime.now()
|
|
||||||
start_time = start.strftime("%H:%M:%S")
|
|
||||||
print("Start time = ", start_time)
|
|
||||||
|
|
||||||
for epoch in range(50):
|
|
||||||
for sentence, tags in training_data:
|
|
||||||
# Step 1. Remember that Pytorch accumulates gradients. We need to clear them out before each instance
|
|
||||||
model.zero_grad()
|
|
||||||
|
|
||||||
# Step 2. Get our inputs ready for the network, that is, turn them into Tensors of word indices.
|
|
||||||
sentence_in = prepare_sequence(sentence, word_to_ix)
|
|
||||||
targets = torch.tensor([tag_to_ix[t] for t in tags], dtype=torch.long)
|
|
||||||
|
|
||||||
# Step 3. Run our forward pass.
|
|
||||||
loss = model.neg_log_likelihood(sentence_in, targets)
|
|
||||||
|
|
||||||
# Step 4. Compute the loss, gradients, and update the parameters by calling optimizer.step()
|
|
||||||
loss.backward()
|
|
||||||
optimizer.step()
|
|
||||||
|
|
||||||
|
|
||||||
# Check predictions after training
|
|
||||||
with torch.no_grad():
|
|
||||||
precheck_sent = prepare_sequence(training_data[0][0], word_to_ix)
|
|
||||||
#print(model(precheck_sent))
|
|
||||||
|
|
||||||
|
|
||||||
# Error calculator
|
|
||||||
var = model(precheck_sent)
|
|
||||||
y_true = np.array(targets)
|
|
||||||
y_pred = np.array(var[1])
|
|
||||||
|
|
||||||
print(metrics.confusion_matrix(y_true, y_pred))
|
|
||||||
print(metrics.classification_report(y_true, y_pred, digits=3))
|
|
||||||
|
|
||||||
# Print finish time
|
|
||||||
finish = datetime.now()
|
|
||||||
finish_time = finish.strftime("%H:%M:%S")
|
|
||||||
print("Finish time = ", finish_time)
|
|
@ -1,100 +0,0 @@
|
|||||||
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
|
|
@ -1,49 +0,0 @@
|
|||||||
---
|
|
||||||
title: Novinky v oblasti “Punctuation Restoration”
|
|
||||||
published: true
|
|
||||||
taxonomy:
|
|
||||||
category: [tp2020]
|
|
||||||
tag: [interpunction,nlp]
|
|
||||||
author: Dárius Lindvai
|
|
||||||
---
|
|
||||||
# Novinky v oblasti “Punctuation Restoration”
|
|
||||||
|
|
||||||
Keďže interpunkcia a veľké písmená v slovách nemajú vplyv na výslovnosť slov, sú z výstupu **ASR** (*automatic speech recognition = automatické rozpoznávanie reči*) odstraňované, výsledkom čoho sú iba sekvencie slov alebo písmen. Systémy vykonávajúce doplňovanie **interpunkčných znamienok** a veľkých písmen sú potrebné najmä preto, lebo tieto výstupy bez interpunkcie a veľkých písmen väčšinou pre ľudí nie sú zrozumiteľné (v textovej forme). Interpunkcia a veľké písmená sú taktiež dôležité prvky aj pri **NLP** (*natural language processing = spracovanie prirodzeného jazyka*).
|
|
||||||
|
|
||||||
V súčasnosti existuje mnoho metód/spôsobov, akými je možné pristupovať k problematike doplňovania interpunkcie a obnovy veľkých písmen. V niektorých metódach je použitý princíp strojového prekladu, kde do modelu vstupoval text bez interpunkcie a model tento text následne “preložil” na text s interpunkciu. V iných metódach sú zasa použité CRF (*conditional random field = podmienené náhodné polia*). Avšak väčšina existujúcich metód/systémov rieši iba interpunkciu, čo však nestačí napr. pri NER (*named-entity recognition*) alebo POS (*part-of-speech*), kde je potrebné poznať hlavne to, kde sa nachádzajú veľké písmená.
|
|
||||||
|
|
||||||
V tomto článku predstavím dve metódy z roku 2019, v ktorých sú predstavené dva rôzne spôsoby, ako je možné pristupovať k problematike doplňovania interpunkcie. Prvá z nich je zameraná na tzv. transformátory a druhá z nich funguje na princípe tzv. „self-attention“.
|
|
||||||
|
|
||||||
### 1. FAST AND ACCURATE CAPITALIZATION AND PUNCTUATION FOR AUTOMATIC SPEECH RECOGNITION USING TRANSFORMER AND CHUNK MERGING
|
|
||||||
#### Rýchle a presné doplňovanie interpunkčných znamienok a obnovovanie veľkých písmen pre Automatické rozpoznávanie textu použitím transformátora a “zlučovania blokov textu” (chunk merging)
|
|
||||||
|
|
||||||
Metóda vytvorená kolektívom autorov okolo Binh Nguyena z Vietnamu predstavuje spôsob doplňovania interpunkcie a obnovy veľkých písmen pre ASR. Využíva princíp transformačných modelov (*transformer models*) a zlučovania blokov (*chunk-merging*) textu so schopnosťou doplňovať interpunkciu a obnovovať veľké písmená v jednom kroku.
|
|
||||||
|
|
||||||
Skladá sa z 3 komponentov, z ktorých prvý slúži na rozdeľovanie veľkých textových segmentov na menšie časti (*chunk-splitting*), ktoré sa však prekrývajú. To znamená, že takmer všetky vety (alebo slová/časti viet, to závisí aké kritérium bolo zvolené pri rozdeľovaní textu) sa po rozdelení objavia vo viacerých častiach (vysvetlené na príklade nižšie). Tieto časti textu sú po rozdelení dostatočne dlhé na to, aby mal druhý komponent k dispozícii dostatok kontextu zľava aj sprava a mohol tak vykonať čo najpresnejšiu predikciu. Posledný komponent rozhoduje, ktoré časti textu (prekrývajúce sa) budú odstránené a ktoré budú zachované a zlúčené naspäť do jedného celku (*chunk-merging*).
|
|
||||||
> Príklad na "chunk splitting": Máme určitý text -skupinu viet:
|
|
||||||
> - "... . Futbalisti FC Liverpool sa stretnú v osemfinále Ligy majstrov s Atleticom Madrid. Rozhodol o tom pondelňajší žreb v sídle UEFA vo švajčiarskom Nyone. ..."
|
|
||||||
>
|
|
||||||
> Ak na tieto vety aplikujeme algoritmus "chunk-splitting"-u, dostaneme podobný výstup:
|
|
||||||
> 1. veta: Futbalisti FC Liverpool sa stretnú v osemfinále Ligy majstrov s Atleticom Madrid.
|
|
||||||
> 2. veta: v osemfinále Ligy majstrov s Atleticom Madrid. Rozhodol o tom pondelňajší žreb
|
|
||||||
> 3. veta: Rozhodol o tom pondelňajší žreb v sídle UEFA vo švajčiarskom Nyone.
|
|
||||||
>
|
|
||||||
> Samozrejme, toto je len príklad na pochopenie "chunk-splittingu". Reálne môžu byť vety rozdeľované rôznymi spôsobmi.
|
|
||||||
|
|
||||||
Motiváciou autorov k navrhnutie tejto metódy sa stal fakt, že pokiaľ ide o kratšie rečové segmenty, štúdie v oblasti ASR dosahujú výborné výsledky (v poslednej dobe). Avšak pokiaľ ide o dlhšie rečové segmenty, stále existujú nedostatky v štandardizácii výsledného textového výstupu ASR, napríklad doplňovanie interpunkcie a obnova kapitalizácie (veľkých písmen). Tieto nedostatky bránia čitateľovi porozumieť výstup ASR a taktiež spôsobujú problémy pri modeloch pre spracovanie prirodzeného jazyka, napríklad NER, POS “tagging” alebo sémantické parsovanie (*semantic parsing*).
|
|
||||||
|
|
||||||
Experimenty, ktoré autori vykonali na Britskom národnom korpuse (*British national corpus*), preukázali, že predstavený model svojou presnosťou a rýchlosťou značne prevyšuje existujúce metódy a modely.
|
|
||||||
|
|
||||||
### 2. SELF-ATTENTION BASED MODEL FOR PUNCTUATION PREDICTION USING WORD AND SPEECH EMBEDDINGS
|
|
||||||
#### Model založený na “self-attention” zameraný na predikciu interpunkcie použitím slovných a rečových embeddingov
|
|
||||||
|
|
||||||
Ďalšia metóda, ktorej autormi sú Jiangyan Yi a Jianhua Tao z Číny používa na predikciu interpunkčných znamienok model založený na “*self-attention*”. V modeli sú použité “word and speech embeddings”, ktoré sú pred-trénované vo frameworku Word2Vec a Speech2Vec. Použitie tohto prístupu umožňuje modelu využívať akýkoľvek druh lexikálnych a akustických dát. Vysoká úspešnosť predošlých “self-attention” modelov v oblasti predikcie a doplňovania interpunkčných znamienok autorov inšpirovala k vytvoreniu tohto modelu.
|
|
||||||
|
|
||||||
Predošlé modely používali k činnosti akustické príznaky, lexikálne príznaky, alebo ich kombináciu. Využitie akustických príznakov textu sa javí ako efektívnejšie ako využitie samotných lexikálnych príznakov. Avšak v mnohých prípadoch ich nie je možné použiť v ASR, nakoľko ľudia pri hovorení zvyknú používať pauzy medzi slovami na miestach, kde by ich používať nemali. Kombinovanie týchto dvoch typov príznakov (akustické a lexikálne) čiastočne vyrieši tento problém. Veľa štúdií používa lexikálne dáta, ktoré však musia mať pridelené rečové údaje (bodky, čiarky, pauzy medzi slovami, a podobne), čo však spôsobuje komplikácie a limituje používanie čisto lexikálnych dát.
|
|
||||||
|
|
||||||
Výsledky experimentov, ktoré bolo vykonané na korpuse “English IWSLT2011”, ukazujú, že model založený na “self-attention”, ktorý používa “word and speech embeddings” dosahuje oveľa lepšie výsledky a väčšiu rýchlosť ako viacero modelov slúžiacich na doplňovanie interpunkcie.
|
|
||||||
|
|
||||||
[1] NGUYEN, B. a kol.: *Fast and Accurate Capitalization and Punctuation for Automatic Speech Recognition Using Transformer and Chunk Merging.* [online] [citované 07-08-2019] URL: <https://arxiv.org/abs/1908.02404>
|
|
||||||
|
|
||||||
[2] YI, J. a kol.: *Self-attention Based Model for Punctuation Prediction Using Word and Speech Embeddings.* [online] [citované 17-04-2019] URL: <https://ieeexplore.ieee.org/abstract/document/8682260>
|
|
||||||
|
|
@ -1,166 +0,0 @@
|
|||||||
---
|
|
||||||
title: PYTORCH - LSTM TUTORIÁL
|
|
||||||
published: true
|
|
||||||
taxonomy:
|
|
||||||
category: [tp2020]
|
|
||||||
tag: [python,lstm,nn,nlp,pytorch,anaconda]
|
|
||||||
author: Dárius Lindvai
|
|
||||||
---
|
|
||||||
# PYTORCH - LSTM TUTORIÁL
|
|
||||||
|
|
||||||
### Čo je to Pytorch?
|
|
||||||
|
|
||||||
[Pytorch](https://pytorch.org/) je open-source knižnica založená na knižnici Torch a určená primárne na účely strojového učenia (*machine learning*) a hĺbkového učenia (*deep learning*). Táto knižnica sa najčastejšie používa v kombinácii s jazykom **Python**, avšak je možné ju použiť aj s jazykom C++. Jej najväčšie využitie je v oblasti Spracovania prirodzeného jazyka (NLP). Je vyvíjaná hlavne výskumným tímom Facebooku pre umelú inteligenciu (FAIR = Facebook's AI Research lab).
|
|
||||||
|
|
||||||
Vlastnosti Pytorchu:
|
|
||||||
- je jednoduchý na naučenie a používanie,
|
|
||||||
- obsahuje rozsiahlu dokumentáciu a rôzne tutoriály, ktoré môžu začiatočníci vhodne využiť pri učení,
|
|
||||||
- poskytuje možnosť rýchleho počítania tzv. **tensorov** (forma výstupu v knižnici Pytorch podobná matici) použitím GPU.
|
|
||||||
|
|
||||||
### Čo je to LSTM?
|
|
||||||
|
|
||||||
Problematikou LSTM (Long Short-Term Memory networks) som sa zaoberal v mojej [Bakalárskej práci](http://opac.crzp.sk/?fn=detailBiblioForm&sid=2D0B46080A5AC858AA11B21AE978&seo=CRZP-detail-kniha). LSTM sú špeciálny typ **Rekurentných neurónových sietí** (RNN), schopné naučiť sa využívať dlhodobé kontextové súvislosti (napr. pri dopĺňaní chýbajúcej interpunkcie alebo veľkých písmen). Najväčšie využitie LSTM je v oblasti strojového učenia a hĺbkového učenia.
|
|
||||||
|
|
||||||
Vlastnosti LSTM:
|
|
||||||
- dokážu spracovávať nielen jednoduché dáta (napr. obrázky), ale aj celé sekvencie dát (napr. reč alebo video),
|
|
||||||
- sú vhodné na klasifikáciu, spracovanie a vytváranie predikcií na základe časových údajov (v Bakalárskej práci som sa venoval **Interpunkčným znamienkam**),
|
|
||||||
- LSTM boli navrhnuté tak, aby si na rozdiel od RNN vedeli poradiť s problémom, ktorý sa nazýva “[Exploding and vanishing gradient problems](https://medium.com/learn-love-ai/the-curious-case-of-the-vanishing-exploding-gradient-bf58ec6822eb)”.
|
|
||||||
|
|
||||||
|![LSTM](https://i1.wp.com/www.jessicayung.com/wp-content/uploads/2018/09/short_term_memory_by_toxicpaprika.png?w=630)|
|
|
||||||
|:--:|
|
|
||||||
|*Obr.1 Problém "krátkej" pamäte RNN*|
|
|
||||||
|
|
||||||
Tento tutoriál sa delí na 2. časti. V prvej časti ukážem návod ako si nainštalovať Pytorch a v druhej predvediem vzorový kód pomocou knižnice Pytorch na vyžitie LSTM.
|
|
||||||
|
|
||||||
## 1. Inštalácia knižnice Pytorch
|
|
||||||
Na inštaláciu Pytorchu existuje viacero možných spôsobov. Pracovať s ním je možné či už vo Windowse alebo aj v Linuxovom prostredí. Taktiež je možné vybrať si, či bude inštalácia vykonaná pomocou **Anacondy** alebo PIP. Ja som sa rozhodol pracovať v prostredí Ubuntu (keďže v tomto prostredí som pracoval aj na Bakalárskej práci. Preto teraz predstavím spôsob ako nainštalovať Pytorch v tomto prostredí pomocou Anacondy.
|
|
||||||
|
|
||||||
Pred inštaláciou Anacondy a Pytorchu je potrebné nainštalovať prostredie **Ubuntu 16.04 LTS**. Môžete si ho stiahnuť napr. z Microsoft Store.
|
|
||||||
|
|
||||||
### a. Inštalácia Anacondy
|
|
||||||
Pred samotnou inštaláciou Anacondy je potrebné overiť, či sú všetky balíčky (*packages*) aktualizované. Je to možné vykonať pomocou príkazu `apt-get`:
|
|
||||||
```bash
|
|
||||||
dl874wn@Darius-PC:~$ apt-get update -y
|
|
||||||
```
|
|
||||||
Následne je treba stiahnuť inštalačný súbor Anacondy. Jedným zo spôsobov ako to urobiť, je stiahnutie tohto súboru priamo cez terminál. Avšak pri tomto spôsobe je potrebné uistiť sa o bezpečnosti stránky, ktorá poskytuje inštalačný skript. Na stiahnutie súboru pomocou terminálu je možné použiť príkaz `curl`:
|
|
||||||
```bash
|
|
||||||
dl874wn@Darius-PC:~$ curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
|
|
||||||
```
|
|
||||||
Zadanie tohto príkazu vám zabezpečí stiahnutie najnovšej verzie Anacondy. Po stiahnutí súboru je možné spustiť inštalačný skript použitím príkazu `bash`:
|
|
||||||
```bash
|
|
||||||
dl874wn@Darius-PC:~$ bash Miniconda3-latest-Linux-x86_64.sh
|
|
||||||
```
|
|
||||||
Vrámci inštalácie Anacondy sa nainštaluje aj Python 3.7.4. Počas inštalácie je potrebné potvrdiť licenčné podmienky a umiestnenie, kam sa Python nainštaluje.
|
|
||||||
|
|
||||||
Po stiahnutí a nainštalovaní Anacondy ju už stačí iba spustiť. Pre spustenie bude stačiť refresh terminálu, čo je možné vykonať príkazom `source`:
|
|
||||||
```bash
|
|
||||||
dl874wn@Darius-PC:~$ source ~/.bashrc
|
|
||||||
```
|
|
||||||
|
|
||||||
### b. Inštalácia Pytorchu
|
|
||||||
Ďalším krokom je nainštalovanie Pytorchu. Inštalácia je veľmi jednoduchá a rýchla. Stačí zadať jednoduchý príkaz:
|
|
||||||
```bash
|
|
||||||
dl874wn@Darius-PC:~$ conda install pytorch torchvision cpuonly -c pytorch
|
|
||||||
```
|
|
||||||
Taktiež je potrebné zadať “**y**” po výzve terminálu. Po nainštalovaní bude treba odpovedať „**yes**“ na otázku, či chceme, aby bola Anaconda hneď incializovaná.
|
|
||||||
|
|
||||||
Na záver je ešte potrebné overiť, že Pytorch bol skutočne nainštalovaný. Toto overenie je možné vykonať sériou príkazov. Na začiatok je potrebné dostať sa do módu “Python REPL (a read-eval-print loop)”, čo je možné vykonať veľmi jednoducho - zadaním príkazu `python3` do terminálu:
|
|
||||||
```bash
|
|
||||||
(base) dl874wn@Darius-PC:~$ python3
|
|
||||||
Python 3.7.4 (default, Aug 13 2019, 20:35:49)
|
|
||||||
[GCC 7.3.0] :: Anaconda, Inc. on linux
|
|
||||||
Type “help”, “copyright”, “credits” or “license” for more information.
|
|
||||||
>>>
|
|
||||||
```
|
|
||||||
> Python REPL je jednoduché interaktívne prostredie, ktoré spracováva jednoduché užívateľské vstupy po jednom riadku a vracia výsledok (výstup). Užívateľ teda zadáva príkazy po jednom a program ich spracováva a vyhodnocuje postupne.
|
|
||||||
|
|
||||||
Keď sa už nachádzame v móde Python REPL, môžeme spustiť napr. tento jednoduchý skript, ktorý vygeneruje maticu 3x5 náhodných čísel (tensor) v intervale (0,1). Prvé číslo v zátvorke udáva počet riadkov a druhé počet stĺpcov.
|
|
||||||
```bash
|
|
||||||
>>> import torch
|
|
||||||
>>> x = torch.rand(3,5)
|
|
||||||
>>> print(x)
|
|
||||||
```
|
|
||||||
Výstup skriptu by mal vyzerať nasledovne:
|
|
||||||
```bash
|
|
||||||
tensor([[0.8490, 0.5107, 0.2124, 0.8478, 0.6296],
|
|
||||||
[0.9270, 0.8925, 0.0260, 0.3883, 0.4998],
|
|
||||||
[0.7393, 0.9261, 0.7133, 0.6712, 0.4431]])
|
|
||||||
>>>
|
|
||||||
```
|
|
||||||
Týmto skriptom sme overili funkčnosť Pytorchu a teda môžeme Python REPL opustiť stlačením klávesovej skratky **CTRL + D**. V prípade potreby môžete Anacondu deaktivovať príkazom `conda deactivate`, avšak ak budete chcieť znova pracovať s Pytorchom, je potrebné ju znova aktivovať.
|
|
||||||
```bash
|
|
||||||
(base) dl874wn@Darius-PC:~$ conda deactivate
|
|
||||||
dl874wn@Darius-PC:~$
|
|
||||||
```
|
|
||||||
## 2. Vzorový kód na využitie LSTM v Pytorchu
|
|
||||||
|
|
||||||
Vstup a výstup v LSTM v knižnici Pytorch je tvorený 3D tensormi. V tomto tutoriáli predvediem, ako tento vstup a výstup funguje.
|
|
||||||
|
|
||||||
Na začiatok je potrebné importovať pár relevantných knižníc.
|
|
||||||
Budeme pridávať základnú knižnicu **torch** a knižnicu **nn**, ktorá obsahuje základný balík Neurónových sietí (NN).
|
|
||||||
```python
|
|
||||||
import torch
|
|
||||||
import torch.nn as nn
|
|
||||||
```
|
|
||||||
Následne sa presunieme k vytváraniu LSTM vrstvy, ktoré funguje rovnako ako pri ostatných typoch vrstiev. LSTM vrste totiž budeme priradzovať argumenty. V tomto príklade budú použité 3 argumenty:
|
|
||||||
- vstupná dimenzia (*input dimension*): definuje veľkosť vstupu v každom časovom kroku, napr. ak má vstupná dimenzia veľkosť 5, vstup bude vyzerať podobne - `[5, 3, 8, 6, 2]`,
|
|
||||||
- skrytá dimenzia (*hidden dimension*): predstavuje veľkosť "cell state" a "hidden state" v každom časovom kroku,
|
|
||||||
- počet vrstiev: počet LSTM vrstiev "naskladaných" na seba.
|
|
||||||
|
|
||||||
```python
|
|
||||||
input_dim = 5 #velkost vstupnej dimenzie
|
|
||||||
hidden_dim = 10 #velkosť skrytej dimenzie
|
|
||||||
n_layers = 1 #pocet vrstiev
|
|
||||||
```
|
|
||||||
|
|
||||||
Tieto parametre potom uložíme do LSTM vrstvy nasledovne:
|
|
||||||
|
|
||||||
```python
|
|
||||||
lstm_layer = nn.LSTM(input_dim, hidden_dim, n_layers)
|
|
||||||
```
|
|
||||||
|
|
||||||
V ďalšom kroku si vytvoríme fiktívne dáta aby sme videli, ako funguje vstup na vrstve. Keďže sme veľkosť dimenzie definovali ako 5, potrebujeme vytvoriť tensor vo tvare `(1, 1, 5)`. Hodnoty v tensore reprezentujú `(veľkosť vzorky, dĺžka sekvencie, veľkosť vstupnej dimenzie)`.
|
|
||||||
Taktiež potrebujeme inicializovať "cell state" a "hidden state" jednotky LSTM. Tieto 2 parametre sú uložené vo "zväzku" vo formáte `(hidden state, cell state)`.
|
|
||||||
|
|
||||||
```python
|
|
||||||
batch_size = 1 #velkost vzorky
|
|
||||||
seq_len = 1 #dlzka sekvencie
|
|
||||||
|
|
||||||
inp = torch.randn(seq_len, batch_size, input_dim)
|
|
||||||
hidden_state = torch.randn(n_layers, batch_size, hidden_dim)
|
|
||||||
cell_state = torch.randn(n_layers, batch_size, hidden_dim)
|
|
||||||
hidden = (hidden_state, cell_state)
|
|
||||||
```
|
|
||||||
|
|
||||||
> Ak máme vstupnú sekvenciu (*seq_len*) napr. 100, veľkosť vzorky (*batch_size*) udáva, v akých dávkach sa bude sekvencia spracovaná a vyhodnotená. Ak máme napr. veľkosť vzorky 20, sekvencia bude spracovaná v 5 dávkach po 20.
|
|
||||||
|
|
||||||
Ak si chceme skontrolovať v akom tvare bude vyzerať tvar vstupnej vrstvy a skrytej vrstvy, môžeme to urobiť pomocou príkazov `print` a `shape`:
|
|
||||||
|
|
||||||
```python
|
|
||||||
print("Input shape:", inp.shape)
|
|
||||||
print("Hidden shape:", hidden_state.shape, ",", cell_state.shape)
|
|
||||||
```
|
|
||||||
|
|
||||||
Výstup bude vyzerať nasledovne:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
(base) dl874wn@Darius-PC:~$ python test.py
|
|
||||||
Input shape: torch.Size([1, 1, 5])
|
|
||||||
Hidden shape: torch.Size([1, 1, 10]) , torch.Size([1, 1, 10])
|
|
||||||
```
|
|
||||||
|
|
||||||
Na záver pridáme vstupy a skryté stavy (*hidden states*):
|
|
||||||
|
|
||||||
```python
|
|
||||||
out, hidden = lstm_layer(inp, hidden)
|
|
||||||
print("Output shape:", out.shape)
|
|
||||||
print("Hidden:", hidden)
|
|
||||||
```
|
|
||||||
|
|
||||||
Na výstupe by sa mal objaviť tvar výstupných tensorov a taktiež samotné tensory pre "cell state" a "hidden state":
|
|
||||||
|
|
||||||
```bash
|
|
||||||
Output shape: torch.Size([1, 1, 10])
|
|
||||||
Hidden: (tensor([[[-0.3184, 0.0795, -0.2122, -0.0699, -0.1824, -0.1231, -0.1314, 0.3096, -0.0371, 0.0488]]], grad_fn=<StackBackward>), tensor([[[-0.5415, 0.2349, -0.4794, -0.1918, -0.2433, -0.2443, -0.2989, 0.5557, -0.0896, 0.1062]]], grad_fn=<StackBackward>))
|
|
||||||
```
|
|
||||||
|
|
@ -1,178 +0,0 @@
|
|||||||
---
|
|
||||||
title: Dominik Nagy
|
|
||||||
published: true
|
|
||||||
taxonomy:
|
|
||||||
category: [dp2022,bp2019]
|
|
||||||
tag: [translation,nlp]
|
|
||||||
author: Daniel Hladek
|
|
||||||
---
|
|
||||||
# Dominik Nagy
|
|
||||||
|
|
||||||
*Rok začiatku štúdia*: 2016
|
|
||||||
|
|
||||||
## Diplomová práca 2022
|
|
||||||
|
|
||||||
[GIT repozitár](https://git.kemt.fei.tuke.sk/dn161mb/dp2022)
|
|
||||||
|
|
||||||
*Názov diplomovej práce*: Neurónový strojový preklad pomocou knižnice Fairseq
|
|
||||||
|
|
||||||
*Meno vedúceho*: Ing. Daniel Hládek, PhD.
|
|
||||||
|
|
||||||
*Zadanie diplomovej práce*:
|
|
||||||
|
|
||||||
1. Vypracujte teoretický prehľad metód neurónového strojového prekladu.
|
|
||||||
2. Podrobne opíšte vybranú metódu neurónového strojového prekladu.
|
|
||||||
3. Natrénujte viacero modelov pre strojový preklad pomocou nástroja Fairseq a vyhodnoťte ich.
|
|
||||||
4. Na základe výsledkov experimentov navrhnite zlepšenia.
|
|
||||||
|
|
||||||
|
|
||||||
Stretnutie 11.1.2022
|
|
||||||
|
|
||||||
- Urobené všetky úlohy z minulého stretnutia, okrem textu a gitu.
|
|
||||||
- Natrénované modely fairseq pre obojsmerný preklad angličtina slovenčina.
|
|
||||||
|
|
||||||
Úlohy:
|
|
||||||
|
|
||||||
- dajte všetky skripty do repozitára dp2022
|
|
||||||
- Napíšte si osnovu diplomovej práce.
|
|
||||||
- Vypracujte draft (hrubý text) diplomovej práce.
|
|
||||||
- V texte DP sumarizujte vykonané experimenty.
|
|
||||||
- Pripravte si prezentáciu na obhajoby.
|
|
||||||
- Skontrolovať či sa robí tokenizácia správne pri vyhodnotení.
|
|
||||||
|
|
||||||
Zásobník úloh:
|
|
||||||
|
|
||||||
- Pripravte článok (pre vedúceho).
|
|
||||||
- Urobte experiment s architektúrou MBART. Porovnajte Vaše výsledky s výsledkami v článku MBART (Liu et al. : Multilingual Denoising Pre-training for Neural Machine Translation).
|
|
||||||
|
|
||||||
|
|
||||||
Stretnutie 17.12.2021
|
|
||||||
|
|
||||||
Stav:
|
|
||||||
|
|
||||||
- rozbehané trénovanie na slovensko-anglickom (LinDat) paralelnom korpuse.
|
|
||||||
- model z angličtiny do slovenčiny.
|
|
||||||
- tokenizácia subword NMT.
|
|
||||||
- rozbehané trénovanie na GPU, bez anaconda.
|
|
||||||
|
|
||||||
Úlohy:
|
|
||||||
|
|
||||||
- [x] Cieľ je aby Vaše experimenty boli zopakovateľné. Pridajte všetky trénovacie skripty do git repozitára. Nepridávajte dáta. Pridajte skripty alebo návody na to ako pripraviť dáta.
|
|
||||||
- [x] Zostavte tabuľku kde zapíšete parametre trénovania a dosiahnuté výsledky.
|
|
||||||
- Napíšte prehľad aktuálnych metód strojového prekladu pomocou neurónových sietí kde prečítate viacero vedeckých článkov a ku každému uvediete názov a čo ste sa z neho dozvedeli. Vyhľadávajte kľúčové slovíčka: "Survey of neural machine translation". Chceme sa dozvedieť aj o transformeroch a neurónových jazykových modeloch.
|
|
||||||
- [x] vyskúšajte trénovanie aj s inými architektúrami. Ku každému trénovaniu si poznačte skript, výsledky a dajte to na git.
|
|
||||||
|
|
||||||
Zásobník úloh:
|
|
||||||
|
|
||||||
- [x] Výskúšajte preklad v opačnom smere.
|
|
||||||
- [x] Vyskúšanie inej metódy tokenizácie (BPE, sentencepiece, wordpiece - huggingface tokenizers).
|
|
||||||
|
|
||||||
Stretnutie 6.7.2021
|
|
||||||
|
|
||||||
Stav:
|
|
||||||
|
|
||||||
- Podarilo sa rozbehať setup pre trénovanie slovensko anglického prekladu na korpuse 10 viet pomocou fairseq.
|
|
||||||
|
|
||||||
Úlohy:
|
|
||||||
|
|
||||||
- Pokračujte v trénovaní na servri IDOC, použite skript na príápravu prostredia ktorý som Vám dal.
|
|
||||||
- Pripravte veľký slovensko-anglický paralelný korpus a natrénujte z neho model.
|
|
||||||
- Model vyhodnotťe pomocou metriky BLEU. Naštudujte si metriku BLEU.
|
|
||||||
|
|
||||||
## Príprava na Diplomový projekt 2 2021
|
|
||||||
|
|
||||||
Zásobník úloh:
|
|
||||||
|
|
||||||
- Využiť BERT model pri strojovom preklade zo slovenčiny
|
|
||||||
|
|
||||||
Stretnutie 17.2.2021
|
|
||||||
|
|
||||||
Stav:
|
|
||||||
|
|
||||||
- Plán ukončiť v roku 2022
|
|
||||||
- Vypracovaný tutoriál https://fairseq.readthedocs.io/en/latest/getting_started.html#training-a-new-model a https://fairseq.readthedocs.io/en/latest/tutorial_simple_lstm.html
|
|
||||||
|
|
||||||
Do ďalšieho stretnutia:
|
|
||||||
|
|
||||||
- Treba zlepšiť teoretickú prípravu a písanie.
|
|
||||||
- Pripraviť slovensko-anglický korpus do podoby vhodnej na trénovanie. Zistite v akej podobe je potrebné dáta mať.
|
|
||||||
- Natrénovať model fairseq pre strojový preklad zo slovenčiny.
|
|
||||||
- Zistite ako prebieha neurónový strojový preklad, čo je to neurónová sieť, čo je to enkóder, dekóder model a napíšte to vlastnými slovami. Napíšte aj odkiaľ ste to zistili.
|
|
||||||
- Prečítajte si https://arxiv.org/abs/1705.03122 a https://arxiv.org/abs/1611.02344 a napíšte čo ste sa dozvedeli.
|
|
||||||
|
|
||||||
## Diplomový projekt 2
|
|
||||||
|
|
||||||
|
|
||||||
Virtuálne stretnutie 25.9.
|
|
||||||
|
|
||||||
- Možnosť predĺženia štúdia
|
|
||||||
- Inak pokračovať v otvorených úlohách
|
|
||||||
|
|
||||||
Úlohy na ďalšie stretnutie:
|
|
||||||
|
|
||||||
- pozrieť a pripraviť česko-slovenský paralelný korpus, natrénovať a vyhodnotiť model
|
|
||||||
- pozrieť a pripraviť anglicko-slovenský paralelný korpus, natrénovať a vyhodnotiť model
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Diplomový projekt 1 2020
|
|
||||||
|
|
||||||
Literatúra:
|
|
||||||
|
|
||||||
[Neural Network Methods for Natural Language Processing](https://www.morganclaypool.com/doi/abs/10.2200/S00762ED1V01Y201703HLT037)
|
|
||||||
|
|
||||||
Úlohy na semester:
|
|
||||||
|
|
||||||
- Získať a pripraviť slovenský paralelný korpus pre preklad do angličtiny a češtiny
|
|
||||||
- Natrénovať a vyhodnotiť Fairseq Model
|
|
||||||
|
|
||||||
Virtuálne stretnutie 30.7.2020:
|
|
||||||
|
|
||||||
Dohoda na opakovaní predmetu.
|
|
||||||
|
|
||||||
|
|
||||||
Virtuálne stretnutie 14.5.2020:
|
|
||||||
|
|
||||||
Urobené: rozbehaný tutoriál fairseq pre trénovanie nemecko anglických dát
|
|
||||||
|
|
||||||
Úlohy na ďalšie stretnutie:
|
|
||||||
|
|
||||||
- pozrieť a pripraviť česko-slovenský paralelný korpus, natrénovať a vyhodnotiť model
|
|
||||||
- pozrieť a pripraviť anglicko-slovenský paralelný korpus, natrénovať a vyhodnotiť model
|
|
||||||
|
|
||||||
|
|
||||||
Stretnutie 6.3.2020.
|
|
||||||
|
|
||||||
Úloha na ďalšie stretnutie:
|
|
||||||
|
|
||||||
- spustiť Trénovanie Fairseq na idoc
|
|
||||||
- Pozrieť dostupné [jazykové zdroje](/topics/resources)
|
|
||||||
- Pozrieť článok [fairseq: A Fast, Extensible Toolkit for Sequence Modeling](https://www.aclweb.org/anthology/N19-4009/)
|
|
||||||
- Pozrieť prístup a článok https://github.com/pytorch/fairseq/blob/master/examples/joint_alignment_translation/README.md
|
|
||||||
|
|
||||||
|
|
||||||
## Tímový projekt 2019
|
|
||||||
|
|
||||||
*Písomná práca*: [Rešerš na tému "Sequnce to Sequence"](./timovy_projekt/README.md)
|
|
||||||
|
|
||||||
*Úlohy tímového projektu*:
|
|
||||||
|
|
||||||
- Vypracujte min. 4 stranový rešerš na tému: "Sequence to Sequence" (Encoder-Decoder, seq2seq, transformer, attention)
|
|
||||||
- citujte min. 10 najvýznamnejších bibliografických zdrojov
|
|
||||||
- Prečítajte si o [konvolučných sieťach](http://www.wildml.com/2015/11/understanding-convolutional-neural-networks-for-nlp/)
|
|
||||||
- Prečítajte si Sequence to Sequence Convolutional Neural Network for Automatic Spelling Correction
|
|
||||||
- Skúste si nainštalovať nástroj fairseq
|
|
||||||
- prejdite si tutoriál https://github.com/pytorch/fairseq/blob/master/examples/translation/README.md
|
|
||||||
|
|
||||||
### Poznámky
|
|
||||||
|
|
||||||
Projektové stránky:
|
|
||||||
|
|
||||||
- [Spracovanie prirodzeného jazyka](/topics/nlp)
|
|
||||||
- [Python](/topics/python)
|
|
||||||
- [Sequence to Sequence](/topics/seq2seq)
|
|
||||||
|
|
||||||
V prípade záujmu je možné pracovať na úlohe strojového prekladu.
|
|
||||||
|
|
||||||
Možné trénovacie dáta: https://www.clarin.eu/resource-families/parallel-corpora
|
|
||||||
|
|
@ -1,133 +0,0 @@
|
|||||||
---
|
|
||||||
title: Sequence-to-sequence
|
|
||||||
published: true
|
|
||||||
taxonomy:
|
|
||||||
category: [tp2020]
|
|
||||||
tag: [nn,seq2seq,translation,nlp]
|
|
||||||
author: Dominik Nagy
|
|
||||||
---
|
|
||||||
# Sequence-to-sequence
|
|
||||||
|
|
||||||
Hlboké neurónové siete (Deep Neural Networks – DNN) sú veľmi výkonné modely strojového
|
|
||||||
učenia, ktoré sú určené na riešenie zložitých problémov, ako je rozpoznávanie reči či vizuálnych objekov.
|
|
||||||
Hlboké neurónové siete môžu vykonávať ľubobovoľný paralelný výpočet na malý počet krokov. Veľké
|
|
||||||
DNN môžu byť trénované pokiaľ máme dostupné obrovské množstvo dát. Napriek svojej flexibilite a sile,
|
|
||||||
hlboké neurónové siete sa dajú aplikovať iba na problémy, ktorých vstupy môžu byť rozumne kódované
|
|
||||||
vektormi s fixným rozmerom. [1]
|
|
||||||
|
|
||||||
Sequence-to-sequence alebo postupnosť sekvencií je o trénovaní modelov na konverziu z jednej
|
|
||||||
domény na sekvencie do inej doméne ako napríklad preloženie viet z angličtiny do slovenčiny.
|
|
||||||
Postupnosť sekvencií mapuje jednu sekvenciu neurčenej dĺžky na inú sekvenciu, ktorej dĺžka je tiež
|
|
||||||
neznáma. [2]
|
|
||||||
|
|
||||||
Rekurentná Neurónová Sieť (po anglicky Recurrent Neural Network, ďalej už len RNN) je prirodená
|
|
||||||
generalizácia dopredných neurónových sietí pre sekvencie. Postupnosť vstupu (x 1 ,...,xT), štandardné RNN
|
|
||||||
vypočíta postupnosť výstupov (y 1 ,...,yT) iteráciu nasledujúcich rovníc:
|
|
||||||
|
|
||||||
### ℎ<sub>𝑡</sub> = 𝑠𝑖𝑔𝑚(𝑊<sup>ℎ𝑥</sup>𝑥<sub>𝑡</sub> + 𝑊<sup>ℎℎ</sup>ℎ<sub>𝑡−1</sub>)
|
|
||||||
|
|
||||||
|
|
||||||
### 𝑦<sub>𝑡</sub> = 𝑊<sup>𝑦ℎ</sup>ℎ<sub>t</sub>
|
|
||||||
|
|
||||||
RNN môže ľahko mapovať sekvencie na sekvencie vždy, keď je zarovnanie medzi vstupmi výstupmi
|
|
||||||
známe vopred. Nie je však jasné, ako aplikovať RNN na problémy, ktorých vstupné a výstupné sekvencie
|
|
||||||
majú rôzne dĺžky s komplikovanými a nemonotonickými vzťahmi. Najjednoduchšia stratégia pre
|
|
||||||
všeobecné sekvenčńé učenie je mapovať vstupnú sekvenciu na vektor s pevnou veľkosťou pomocou
|
|
||||||
jedného RNN a potom mapovať vektor na cieľovú sekvenciu s iným RNN.[2] [3]
|
|
||||||
|
|
||||||
## Convolutional neural networks
|
|
||||||
|
|
||||||
Konvolučné neurónové siete sú menej bežné pre sekvenčné modelovanie, napriek niekoľkým výhodám.
|
|
||||||
V porovnaní s opakujúcimi sa vrstvami, konvolácie vytvárajú reprezentáciu pre kontexty s pevnou
|
|
||||||
veľkosťou, avšak efektívna veľkosť kontextu siete sa dá ľahko zväčšiť naskladaním niekoľkých vrstiev na
|
|
||||||
seba. To umožňuje presne ovládať maximálnu dĺžku závislostí, ktoré sa majú modelovať. Konvolučné
|
|
||||||
siete nezávisia od výpočtov predchádzajúceho časového kroku, a preto umožňujú paralelizáciu nad
|
|
||||||
každým prvkom v sekvencii. Tento kontrast v RNN, ktorý udržiava skrytý stav celej minulosti, zabraňuje
|
|
||||||
paralelnému výpočtu v danej sekvencii [4]
|
|
||||||
|
|
||||||
|
|
||||||
# Encoder-decoder
|
|
||||||
|
|
||||||
Hlboké neurónové siete preukázali veľký úspech v rôznych aplikáciách, ako napríklad
|
|
||||||
rozpoznávanie objektov alebo rozpoznávanie reči. Nedávno sa objavil nový prístup k štatistickému
|
|
||||||
strojovému prekladu založený na neurónových sieťach. Tento nový prístup je inšpirovaný podľa
|
|
||||||
nedávneho trendu hlbokého reprezentatívneho učenia. Všetky modely neurónovej siete použité v [5]
|
|
||||||
pozostávajú z kódera a dekódera (encoder, decoder) Kóder extrahuje vektor s pevnou dĺžkou
|
|
||||||
reprezentujúce z vety s premenlivou dĺžkou a z tohto znázornenia dekóder generuje správny cieľový
|
|
||||||
preklad s premenlivou dĺžkou. Model neurónového strojového prekladu vyžaduje iba zlomok pamäte,
|
|
||||||
ktorú potrebuje model tradičného strojového prekladu. [6][7]
|
|
||||||
|
|
||||||
|
|
||||||
![Encoder-decoder](encoder_decoder.png)
|
|
||||||
|
|
||||||
1 Ilustrácia RNN Encoder-Decoder [5]
|
|
||||||
|
|
||||||
# Transformer a Attention
|
|
||||||
|
|
||||||
Opakujúce sa seq2seq modely, ktoré používajú encoder-decoder architektúru dosiahli veľký
|
|
||||||
pokrok v rozpoznávaní reči. Avšak, majú nevýhodu v rýchlosti tréningu. Vnútorné opakovanie obmedzuje
|
|
||||||
parareliláziu tréningu. Neopakujúci sa seq2seq model nazývaný Transformer sa spolieha na mechanizmy
|
|
||||||
Attention, aby sa naučil pozičným závislostiam, ktoré je možné trénovať rýchlejšie s väčšou
|
|
||||||
účinnosťou.[8] Attention model sa nesnaží preložiť vetu naraz, preklad prebieha postupne, preloží najprv
|
|
||||||
jednu časť vety a potom pokračuje na ďalšiu casť, ako človek.
|
|
||||||
|
|
||||||
Attention model by sa dal vysvetliť ako funckiu, ktorá mapuje dopyt a sadu páru kľúč-hodnota na výstup,
|
|
||||||
kde dopyt, hodnoty, kľúče a výstup sú vektory. Výstup sa počíta ako vážená suma (weighted sum)
|
|
||||||
hodnôt, kde váha priradená každej hodnote sa vypočíta poďla funcie kompatibility dopytu so
|
|
||||||
zodpovedajúcim kľúčom.[9]
|
|
||||||
|
|
||||||
|
|
||||||
![Scaled-Dot_Multi-Head](scaled-multi.png)
|
|
||||||
|
|
||||||
2 Scaled Dot-Product Attention a Multi-Head attention
|
|
||||||
|
|
||||||
## Scaled Dot-Product Attention
|
|
||||||
|
|
||||||
Vstup pozostáva z dopytov a kľúčov rozmeru _dk_ a hodnôt rozmerov _dv._ Vypočítajú sa „dot products“
|
|
||||||
všetkých dopytov s kľúčmi, vydelia sa s _√dk_ a použije sa funkcia „softmax” na získane váhy hodnôt. [9]
|
|
||||||
|
|
||||||
![Attention](attention.png)
|
|
||||||
|
|
||||||
## Multi-Head Attention
|
|
||||||
|
|
||||||
Silnou stránkou Multi-Head Attentionu je schopnosť spoločne sa venovať informáciám z rôznych
|
|
||||||
reprezentačných podpriestorov na rôznych pozíciách.[10] [9]
|
|
||||||
|
|
||||||
|
|
||||||
### 𝑀𝑢𝑙𝑡𝑖𝐻𝑒𝑎𝑑(𝑄,𝐾, 𝑉) = 𝐶𝑜𝑛𝑐𝑎𝑡(ℎ𝑒𝑎𝑑<sub>1</sub>, … , ℎ𝑒𝑎𝑑<sub>ℎ</sub>)𝑊<sup>O</sup>
|
|
||||||
|
|
||||||
### 𝑤ℎ𝑒𝑟𝑒 ℎ𝑒𝑎𝑑<sub>𝑖</sub> = 𝐴𝑡𝑡𝑒𝑛𝑡𝑖𝑜𝑛(𝑄𝑊<sub>𝑖</sub><sup>𝑄</sup>,𝐾𝑊<sub>𝑖</sub><sup>K</sup>,𝑉𝑊<sub>𝑖</sub><sup>V</sup>)
|
|
||||||
|
|
||||||
# Zoznam použitej literatúry
|
|
||||||
|
|
||||||
[1] I. Sutskever Google, O. Vinyals Google, and Q. V Le Google, “Sequence to Sequence Learning with
|
|
||||||
Neural Networks.”
|
|
||||||
|
|
||||||
[2] M. P. For, “Natural Language Processing in Action,” _Online_ , vol. 80, no. 1. p. 453, 2017.
|
|
||||||
|
|
||||||
[3] “Sequence to Sequence Learning with Neural Networks – arXiv Vanity.” [Online]. Available:
|
|
||||||
https://www.arxiv-vanity.com/papers/1409.3215/. [Accessed: 20-Dec-2019].
|
|
||||||
|
|
||||||
[4] J. Gehring, M. Auli, D. Grangier, D. Yarats, and Y. N. Dauphin, “Convolutional Sequence to
|
|
||||||
Sequence Learning.”
|
|
||||||
|
|
||||||
[5] K. Cho _et al._ , “Learning phrase representations using RNN encoder-decoder for statistical
|
|
||||||
machine translation,” in _EMNLP 2014 - 2014 Conference on Empirical Methods in Natural
|
|
||||||
Language Processing, Proceedings of the Conference_ , 2014, pp. 1724–1734.
|
|
||||||
|
|
||||||
[6] R. Pascanu, T. Mikolov, and Y. Bengio, “On the difficulty of training recurrent neural networks,” in
|
|
||||||
_30th International Conference on Machine Learning, ICML 2013_ , 2013, no. PART 3, pp. 2347–
|
|
||||||
2355.
|
|
||||||
|
|
||||||
[7] K. Cho, B. Van Merriënboer, D. Bahdanau, and Y. Bengio, “On the Properties of Neural Machine
|
|
||||||
Translation: Encoder-Decoder Approaches.”
|
|
||||||
|
|
||||||
[8] L. Dong, S. Xu, and B. Xu, _SPEECH-TRANSFORMER: A NO-RECURRENCE SEQUENCE-TO-SEQUENCE
|
|
||||||
MODEL FOR SPEECH RECOGNITION_..
|
|
||||||
|
|
||||||
[9] A. Vaswani _et al._ , “Attention Is All You Need.”
|
|
||||||
|
|
||||||
[10] J. Li, Z. Tu, B. Yang, M. R. Lyu, and T. Zhang, “Multi-Head Attention with Disagreement
|
|
||||||
Regularization.”
|
|
||||||
|
|
||||||
|
|
Before Width: | Height: | Size: 7.6 KiB |
Before Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 117 KiB |
@ -1,44 +0,0 @@
|
|||||||
---
|
|
||||||
title: Ediz Morochovič
|
|
||||||
published: true
|
|
||||||
taxonomy:
|
|
||||||
category: [bp2019]
|
|
||||||
tag: [ner,nlp]
|
|
||||||
author: Daniel Hladek
|
|
||||||
---
|
|
||||||
# Ediz Morochovič
|
|
||||||
|
|
||||||
Rok začiatku štúdia: 2016
|
|
||||||
|
|
||||||
# Bakalárska práca 2019
|
|
||||||
|
|
||||||
Názov bakalárskej práce: Štatistické rozpoznávanie pomenovaných entít
|
|
||||||
|
|
||||||
Meno vedúceho: Ing. Daniel Hládek, PhD.
|
|
||||||
|
|
||||||
Zadanie bakalárskej práce:
|
|
||||||
1. Vypracujte prehľad štatistických metód identifikácie pomenovaných entít v texte.
|
|
||||||
2. Podrobne opíšte zvolenú metódu identifikácie pomenovaných entít v texte
|
|
||||||
3. Zvoľte si vhodnú metodiku vyhodnotenia a na vhodnej testovacej množine navrhnite a vykonajte sadu experimentov.
|
|
||||||
4. Na základe výsledkov experimentov navrhnite možné zlepšenia.
|
|
||||||
|
|
||||||
|
|
||||||
# Bakalársky projekt 2019
|
|
||||||
|
|
||||||
Úlohy:
|
|
||||||
Nainštalujte si prostredie Anaconda https://www.anaconda.com/
|
|
||||||
Oboznámiť sa so zvoleným štatistickým systémom pre rozpoznávanie pomenovaných entít (https://www.nltk.org/), https://www.nltk.o/install.html, https://stanfordnlp.github.io/CoreNLP/, https://www.nltk.org/book/
|
|
||||||
Zistite použitú štatistickú metódu a podrobne ju opíšte
|
|
||||||
Vypracujte prehľad používaných štatistických metód (maximum entropy, conditional random fields, hidden markov models), min. 5 strán s min. 10 odkazmi na odborné články
|
|
||||||
Navrhnite experimenty a vykonajte ich s rôznymi parametrami systému
|
|
||||||
|
|
||||||
|
|
||||||
Písomná práca :
|
|
||||||
|
|
||||||
Výstupy bakalárskeho projektu:
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Poznámky:
|
|
||||||
|
|
||||||
|
|
@ -1,253 +1,10 @@
|
|||||||
---
|
# Meno: Jakub Maruniak
|
||||||
title: Jakub Maruniak
|
|
||||||
published: true
|
|
||||||
taxonomy:
|
|
||||||
category: [dp2021,bp2019]
|
|
||||||
tag: [spacy,ner,annotation,nlp]
|
|
||||||
author: Daniel Hladek
|
|
||||||
---
|
|
||||||
# Jakub Maruniak
|
|
||||||
|
|
||||||
*Rok začiatku štúdia*: 2016
|
|
||||||
|
|
||||||
*Návrh na názov DP*:
|
|
||||||
|
|
||||||
Anotácia a rozpoznávanie pomenovaných entít v slovenskom jazyku.
|
|
||||||
|
|
||||||
[CRZP](https://opac.crzp.sk/?fn=detailBiblioForm&sid=ECC3D3F0B3159C4F3217EC027BE4)
|
|
||||||
|
|
||||||
1. Vypracujte teoretický úvod, kde vysvetlíte čo je to rozpoznávanie pomenovaných entít a akými najnovšími metódami sa robí. Vysvetlite, ako pracuje klasifikátor pre rozpoznávanie pomenovaných entít v knižnici Spacy.
|
|
||||||
2. Pripravte postup na anotáciu textového korpusu pre systém Prodigy pre trénovanie modelu vo vybranej úlohe spracovania prirodzeného jazyka.
|
|
||||||
3. Vytvorte množinu textových dát v slovenskom jazyku vhodných na trénovanie štatistického modelu spracovania prirodzeného jazyka pomocou knižnice Spacy.
|
|
||||||
4. Natrénujte štatistický model pomocou knižnice Spacy a zistite, aký vplyv má veľkosť trénovacej množiny na presnosť klasifikátora.
|
|
||||||
|
|
||||||
*Spolupráca s projektom*:
|
|
||||||
|
|
||||||
- [Podpora slovenčiny v Spacy](/topics/spacy)
|
|
||||||
- [Anotácia textových dát](/topics/prodigy)
|
|
||||||
- [Rozpoznávanie pomenovaných entít](/topics/named-entity)
|
|
||||||
- [Spracovanie prir. jazyka](/topics/nlp)
|
|
||||||
- [Programovanie v jazyku Python](/topics/python)
|
|
||||||
|
|
||||||
|
|
||||||
## Diplomová práca 2021
|
|
||||||
|
|
||||||
|
|
||||||
Stretnutie 12.3.
|
|
||||||
|
|
||||||
Stav:
|
|
||||||
|
|
||||||
- Anotovanie dát, vykonané experimenty s trénovaním.
|
|
||||||
- Dosiahli sme presnosť cca 72 percent.
|
|
||||||
- Výsledky sú zhrnuté v tabuľke.
|
|
||||||
|
|
||||||
Úlohy:
|
|
||||||
|
|
||||||
- Píšte prácu.
|
|
||||||
- Uložte trénovacie skripty na GIT.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Diplomový projekt 2
|
|
||||||
|
|
||||||
Ciele:
|
|
||||||
|
|
||||||
- Anotovať sadu dát s použitím produkčnej anotačnej schémy, natrénovať a vyhodnotiť model.
|
|
||||||
|
|
||||||
Zásobník úloh:
|
|
||||||
|
|
||||||
- Použiť model na podporu anotácie
|
|
||||||
- Do konca ZS vytvoriť report vo forme článku.
|
|
||||||
|
|
||||||
Stretnutie 12.2.:
|
|
||||||
|
|
||||||
- Prebrali sme článok. Treba vyhodiť a popresúvať niektoré časti, inak v poriadku.
|
|
||||||
|
|
||||||
Do budúceho stretnutia:
|
|
||||||
|
|
||||||
- Vybrať vhodný časopis na publikovanie
|
|
||||||
- Využiť pri trénovaní ďalšie anotované dáta.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Stretnutie 20.1.
|
|
||||||
|
|
||||||
Preberanie draftu práce.
|
|
||||||
|
|
||||||
- Do článku vyradiť príliš všeobecné časti - napr. o strojovom učení.
|
|
||||||
- V úvode zadefinujte problém, pojmy a bežné spôsoby riešenia problému. Čo je korpus? Ako sa vyrába? Na čo a ako sa používa?
|
|
||||||
- V jadre predstavte Vaše riešenie. Ako vyzerá korpus? Ako ste ho urobili?
|
|
||||||
- Na konci definujte metodiku vyhodnotenia, vyhodnotte riešenie a navrhnite zlepšenia. Akú presnosť má model vytvorený s pomocou korpusu?
|
|
||||||
|
|
||||||
Virtuálne stretnutie 18.12.2021:
|
|
||||||
|
|
||||||
Stav:
|
|
||||||
|
|
||||||
- Vytvorené anotácie do databázy, cca 1700 jednotiek.
|
|
||||||
- Začiatok článku.
|
|
||||||
|
|
||||||
Virtuálne stretnutie 27.11.2020:
|
|
||||||
|
|
||||||
- Zatiaľ zostávame pri ručnej extrakcii dát z anotačnej schémy.
|
|
||||||
- Vypracovaná [tabuľka s experimentami](./dp2021/train_experiments)
|
|
||||||
- [Dáta a skripty](./dp2021/annotation)
|
|
||||||
|
|
||||||
Úlohy:
|
|
||||||
|
|
||||||
- Pracovať na ďalších anotáciách, zlepšiť presnosť modelu.
|
|
||||||
- Urobiť ďalšie experimenty.
|
|
||||||
- Začať pracovať na článku. Niečo podobné ako [Znalosti](https://hi.kkui.fei.tuke.sk/daz2019/), alebo [AEI](http://www.aei.tuke.sk/). šablóna ieee alebo llncs.
|
|
||||||
|
|
||||||
Stretnutie 20.1.2021
|
|
||||||
|
|
||||||
- Draft článku
|
|
||||||
|
|
||||||
Virtuálne stretnutie 13.11.2020:
|
|
||||||
|
|
||||||
- výsledky skopírované do [adresára](./dp2021)
|
|
||||||
- prečítané 3 články - porovnanie manuálnej anotácie a poloautomatickej.
|
|
||||||
- začiatok práce na skripte pre počítanie anotovaných entít, treba ešte vylepšiť aby vznikla tabuľka.
|
|
||||||
- anotačná schéma vyzerá byť v poriadku, niektoré články treba odfiltrovať (zoznam obrázkov, prázdna kategória, nadpis).
|
|
||||||
|
|
||||||
Úlohy do ďalšieho stretnutia:
|
|
||||||
|
|
||||||
- vytvoriť spôsob pre získanie dát z produkčnej anotačnej schémy. (pre vedúceho)
|
|
||||||
- vytvorte ďalšie anotácie.
|
|
||||||
- Spísať pravidlá pre validáciu. Aký výsledok anotácie je dobrý? Je potrebné anotované dáta skontrolovať?
|
|
||||||
- Vytvorte tabuľku kde uvediete presnosť modelu s rôznym množstvom anotovaných dát.
|
|
||||||
- Aký je najlepší spôsob vyhodnotnenia? Vytvoriť jednotnú testovaciu množinu. Druhý spôsob je použiť "10 fold cross validation" (Všetky dáta sa rozdelia na 10 častí, 9 sa využije pri trénovaní, 1 pri testovaní. Trénovanie sa opakuje 10 krát stále pre inú testovaciu množinu, výsledky sa spriemerujú).
|
|
||||||
|
|
||||||
|
|
||||||
Virtuálne stretnutie 30.10.2020:
|
|
||||||
|
|
||||||
Stav:
|
|
||||||
|
|
||||||
- Vylepšený návod
|
|
||||||
- Vyskúšaný export dát a trénovanie modelu z databázy. Problém pri trénovaní Spacy - iné výsledky ako cez Prodigy trénovanie
|
|
||||||
- Práca na textovej časti.
|
|
||||||
|
|
||||||
Úlohy do ďalšieho stretnutia:
|
|
||||||
- Vytvorte si repozitár s názvom dp2021 a tam pridajte skripty a poznámky.
|
|
||||||
- Pokračujte v písaní práce. Vykonajte prieskum literatúry "named entity corpora" aj poznámky.
|
|
||||||
- Vytvorte systém pre zistenie množstva a druhu anotovaných dát. Koľko článkov? Koľko entít jednotlivvých typov? Výsledná tabuľka pôjde do práce.
|
|
||||||
- Pripraviť sa na produkčné anotácie. Je schéma pripravená?
|
|
||||||
|
|
||||||
Virtuálne stretnutie 16.10.2020:
|
|
||||||
|
|
||||||
Stav:
|
|
||||||
- Spísané stručné poznámky k procesu anotácie
|
|
||||||
- Pokusne anotovaných niekoľko článkov
|
|
||||||
|
|
||||||
Úlohy na ďálšie stretnutie:
|
|
||||||
- Vylepšiť oficiálny návod na anotáciu NER https://zp.kemt.fei.tuke.sk/topics/named-entity/navod podľa poznámok a skúsenosti pri anotácii. Pridajte pravidlá pre učenie Accept a Reject článku. Ktorý paragraf je vhodný na anotáciu?
|
|
||||||
- Pripraviť skript na výber anotovaných dát z databázy a úpravu do podoby vhodnej pre trénovanie.
|
|
||||||
- Spísať pravidlá pre validáciu. Aký výsledok anotácie je dobrý? Je potrebné anotované dáta skontrolovať?
|
|
||||||
- Pokračujte v písaní DP.
|
|
||||||
|
|
||||||
Virtuálne stretnutie 9.10.2020:
|
|
||||||
|
|
||||||
Stav:
|
|
||||||
|
|
||||||
- Vyskúšané trénovanie modelu podľa repozitára spacy-skmodel
|
|
||||||
- Začiatok práce na textovej časti (vo Worde do šablóny ZP).
|
|
||||||
|
|
||||||
Úlophy na ďalšie stretnutie:
|
|
||||||
|
|
||||||
- Prečítajte si návod na anotáciu a navrhnite zlepšenia návodu. Cieľ je napísať presnú metodiku anotácie.
|
|
||||||
- Pokusne antujte niekoľko článkov, spíšte problémové miesta.
|
|
||||||
|
|
||||||
Stretnutie 25.9.2020:
|
|
||||||
|
|
||||||
Urobené:
|
|
||||||
|
|
||||||
Oboznámenie sa procesom anotácie NER
|
|
||||||
|
|
||||||
Úlohy na ďalšie stretnutie:
|
|
||||||
- Natrénovať a vyhodnotiť model podľa https://git.kemt.fei.tuke.sk/dano/spacy-skmodel
|
|
||||||
- začať pracovať na textovej časti podľa https://www.ieee.org/conferences/publishing/templates.html
|
|
||||||
|
|
||||||
|
|
||||||
Návrhny na zlepšenie:
|
|
||||||
|
|
||||||
Je potrebné rozbehať produkčnú anotáciu NER
|
|
||||||
|
|
||||||
|
|
||||||
## Diplomový projekt 1 2020
|
|
||||||
|
|
||||||
Výstupy (18.6.2020):
|
|
||||||
|
|
||||||
- [Anotačná schéma](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/src/branch/master/pages/students/2016/jakub_maruniak/dp2021/annotation)
|
|
||||||
- [nasadenie anotačnej schémy](http://skner.tukekemt.xyz)
|
|
||||||
- [Korpus 1300 viet z wikipédie](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/src/branch/master/pages/students/2016/jakub_maruniak/dp2021/annotation/ner/textfile.csv)
|
|
||||||
|
|
||||||
|
|
||||||
Úlohy na semester:
|
|
||||||
|
|
||||||
- Rozbehať anotačnú schému pre vyznačovanie slovenských pomenovaných entít
|
|
||||||
- Vybrať a pripraviť vhodné dáta na anotáciu
|
|
||||||
|
|
||||||
Stretnutie 30.6.2020:
|
|
||||||
|
|
||||||
- Dodaný korpus 1300 viet
|
|
||||||
- Je dobré dáta rozdeliť na vety (odporúčanie, ľahšie sa sleduje anotované množstvo).
|
|
||||||
|
|
||||||
Virtuálne stretnutie 15.5.2020:
|
|
||||||
|
|
||||||
- Rozbehaná slovenská anotačná schéma pre pomenované entity
|
|
||||||
- Problém so slovenským NER modelom z wiki dát
|
|
||||||
|
|
||||||
Úlohy:
|
|
||||||
|
|
||||||
- vytvoriť do repozitára annotation adresár ner so všetkým potrebným pre spustenie slovenskej ner schémy (skripty, vzorové textové dáta).
|
|
||||||
- vyriešiť problém so spacy modelom.
|
|
||||||
|
|
||||||
Revízia 21.4.:
|
|
||||||
|
|
||||||
Odkaz na projekt: https://git.kemt.fei.tuke.sk/KEMT/zpwiki/src/branch/master/pages/students/2016/jakub_maruniak/dp2021/annotation
|
|
||||||
|
|
||||||
|
|
||||||
Revízia 9.4. a 17.4.
|
|
||||||
|
|
||||||
Nové úlohy:
|
|
||||||
|
|
||||||
- vytvorte skript pre anotáciu slovenských pomenovaných entít.
|
|
||||||
- Pozrite si https://prodi.gy/docs/named-entity-recognition (aj video)
|
|
||||||
- Spustite schému "Manual annotation with suggestions from a model" (použite aj [príklady](https://git.kemt.fei.tuke.sk/dano/annotation)
|
|
||||||
- Ako zdroj dát použite https://git.kemt.fei.tuke.sk/dano/spacy-skmodel/src/branch/master/sources/skner/wikiann-sk.bio
|
|
||||||
- Urobte skript, ktorý zmení wiki dáta do [spacy formátu](https://raw.githubusercontent.com/explosion/prodigy-recipes/master/example-datasets/raw_shares-newsapi.jsonl)
|
|
||||||
- Uložte skript na GIT a pridajte odkaz do profilu
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Stretnutie 9.3.2020:
|
|
||||||
|
|
||||||
Vyvorený prístup do repozitára https://git.kemt.fei.tuke.sk/dano/annotation
|
|
||||||
|
|
||||||
Úlohy na ďalšie stretnutie:
|
|
||||||
|
|
||||||
- Oboznámte sa s so [systémom Docker](https://student.kemt.fei.tuke.sk/predmety/zct)
|
|
||||||
- Rozbehajte si anotáciu z repozitára
|
|
||||||
- Skúste upraviť proces tak aby bol vhodný na anotáciu slovenských pomenovaných entít
|
|
||||||
|
|
||||||
Návrh možných entít na anotáciu:
|
|
||||||
|
|
||||||
- OSOBA
|
|
||||||
- MIESTO alebo politická geografická entita
|
|
||||||
- ORGANIZACIA
|
|
||||||
- PRODUKT
|
|
||||||
- INE
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Tímový projekt 2019
|
## Tímový projekt 2019
|
||||||
|
|
||||||
#### Anotácia textových dát
|
#### Anotácia textových dát
|
||||||
|
|
||||||
*Úlohy tímového projektu*:
|
|
||||||
|
|
||||||
- Vypracujte min. 4. stranový rešerš na tému "Crowdsourcing"
|
- Vypracujte min. 4. stranový rešerš na tému "Crowdsourcing"
|
||||||
- citujte min. 10 najvýznamnejších bibliografických zdrojov
|
- citujte min. 10 najvýznamnejších bibliografických zdrojov
|
||||||
|
|
||||||
*Písomná práca*: [Rešerš](./timovy_projekt)
|
[Rešerš](./timovy_projekt)
|
||||||
|
|
||||||
|
@ -1,40 +0,0 @@
|
|||||||
## Diplomový projekt 2 2020
|
|
||||||
Stav:
|
|
||||||
- aktualizácia anotačnej schémy (jedná sa o testovaciu schému s vlastnými dátami)
|
|
||||||
- vykonaných niekoľko anotácii, trénovanie v Prodigy - nízka presnosť = malé množstvo anotovaných dát. Trénovanie v spacy zatiaľ nefunguje.
|
|
||||||
- Štatistiky o množstve prijatých a odmietnutých anotácii získame z Prodigy: prodigy stats wikiart. Zatiaľ 156 anotácii (151 accept, 5 reject). Na získanie prehľadu o množstve anotácii jednotlivých entít potrebujeme vytvoriť skript.
|
|
||||||
- Prehľad literatúry Named Entity Corpus
|
|
||||||
- Budovanie korpusu pre NER – automatické vytvorenie už anotovaného korpusu z Wiki pomocou DBpedia – jedná sa o anglický korpus, ale možno spomenúť v porovnaní postupov
|
|
||||||
- Building a Massive Corpus for Named Entity Recognition using Free Open Data Sources - Daniel Specht Menezes, Pedro Savarese, Ruy L. Milidiú
|
|
||||||
- Porovnanie postupov pre anotáciu korpusu (z hľadiska presnosti aj času) - Manual, SemiManual
|
|
||||||
- Comparison of Annotating Methods for Named Entity Corpora - Kanako Komiya, Masaya Suzuki
|
|
||||||
- Čo je korpus, vývojový cyklus, analýza korpusu (Už využitá literatúra – cyklus MATTER)
|
|
||||||
- Natural Language Annotation for Machine Learning – James Pustejovsky, Amber Stubbs
|
|
||||||
|
|
||||||
Aktualizácia 09.11.2020:
|
|
||||||
- Vyriešený problém, kedy nefungovalo trénovanie v spacy
|
|
||||||
- Vykonaná testovacia anotácia cca 500 viet. Výsledky trénovania pri 20 iteráciách: F-Score 47% (rovnaké výsledky pri trénovaní v Spacy aj Prodigy)
|
|
||||||
- Štatistika o počte jednotlivých entít: skript count.py
|
|
||||||
|
|
||||||
|
|
||||||
## Diplomový projekt 1 2020
|
|
||||||
|
|
||||||
- vytvorenie a spustenie docker kontajneru
|
|
||||||
|
|
||||||
|
|
||||||
```
|
|
||||||
./build-docker.sh
|
|
||||||
docker run -it -p 8080:8080 -v ${PWD}:/work prodigy bash
|
|
||||||
# (v mojom prípade:)
|
|
||||||
winpty docker run --name prodigy -it -p 8080:8080 -v C://Users/jakub/Desktop/annotation/work prodigy bash
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Spustenie anotačnej schémy
|
|
||||||
- `dataminer.csv` články stiahnuté z wiki
|
|
||||||
- `cd ner`
|
|
||||||
- `./01_text_to_sent.sh` spustenie skriptu *text_to_sent.py*, ktorý rozdelí články na jednotlivé vety
|
|
||||||
- `./02_ner_correct.sh` spustenie anotačného procesu pre NER s návrhmi od modelu
|
|
||||||
- `./03_ner_export.sh` exportovanie anotovaných dát vo formáte jsonl potrebnom pre spracovanie vo spacy
|
|
@ -1,16 +0,0 @@
|
|||||||
# > docker run -it -p 8080:8080 -v ${PWD}:/work prodigy bash
|
|
||||||
# > winpty docker run --name prodigy -it -p 8080:8080 -v C://Users/jakub/Desktop/annotation-master/annotation/work prodigy bash
|
|
||||||
|
|
||||||
FROM python:3.8
|
|
||||||
RUN mkdir /prodigy
|
|
||||||
WORKDIR /prodigy
|
|
||||||
COPY ./prodigy-1.9.6-cp36.cp37.cp38-cp36m.cp37m.cp38-linux_x86_64.whl /prodigy
|
|
||||||
RUN mkdir /work
|
|
||||||
COPY ./ner /work/ner
|
|
||||||
RUN pip install uvicorn==0.11.5 prodigy-1.9.6-cp36.cp37.cp38-cp36m.cp37m.cp38-linux_x86_64.whl
|
|
||||||
RUN pip install https://files.kemt.fei.tuke.sk/models/spacy/sk_sk1-0.0.1.tar.gz
|
|
||||||
RUN pip install nltk
|
|
||||||
EXPOSE 8080
|
|
||||||
ENV PRODIGY_HOME /work
|
|
||||||
ENV PRODIGY_HOST 0.0.0.0
|
|
||||||
WORKDIR /work
|
|
@ -1,47 +0,0 @@
|
|||||||
## Diplomový projekt 2 2020
|
|
||||||
|
|
||||||
- vytvorenie a spustenie docker kontajneru
|
|
||||||
|
|
||||||
|
|
||||||
```
|
|
||||||
./build-docker.sh
|
|
||||||
winpty docker run --name prodigy -it -p 8080:8080 -v C://Users/jakub/Desktop/annotation-master/annotation/work prodigy bash
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Spustenie anotačnej schémy
|
|
||||||
- `dataminer.csv` články stiahnuté z wiki
|
|
||||||
- `cd ner`
|
|
||||||
- `./01_text_to_sent.sh` spustenie skriptu *text_to_sent.py*, ktorý rozdelí články na jednotlivé vety
|
|
||||||
- `./02_ner_manual.sh` spustenie manuálneho anotačného procesu pre NER
|
|
||||||
- `./03_export.sh` exportovanie anotovaných dát vo formáte json potrebnom pre spracovanie vo spacy. Možnosť rozdelenia na trénovacie (70%) a testovacie dáta (30%) (--eval-split 0.3).
|
|
||||||
Pozn. aby --eval-split fungoval správne, je potrebné v inštalácii prodigy (cestu zistíme pomocou `prodigy stats`) v súbore `recipes/train.py` upraviť funkciu `data_to_spacy` (mal by byť riadok 327). V novej verzii by to malo byť opravené. Do riadku treba pridať parameter eval_split.
|
|
||||||
`json_data, eval_data, split = train_eval_split(json_data, eval_split)`
|
|
||||||
|
|
||||||
### Anotované databázy
|
|
||||||
- `./ner/skner/sknerv4.jsonl` - Aktuálna anotovaná databáza z https://skner.tukekemt.xyz/ (Celkovo cca 5000 článkov)
|
|
||||||
- `./ner/wikiart/wikiart2.jsonl` - Vlastná databáza, články rozdelené na vety (Celkovo cca 1300 viet)
|
|
||||||
- Presná štatistika o databázach bude doplnená
|
|
||||||
|
|
||||||
### Štatistika o anotovaných dátach
|
|
||||||
- `prodigy stats wikiart` - informácie o počte prijatých a odmietnutých článkov pre konkrétny dataset v prodigy
|
|
||||||
|
|
||||||
### Vizualizácia anotovaných dát
|
|
||||||
- `streamlit run visualizer.py visualize ./dataset.jsonl` - Vypíše anotácie zo zvolenej databázy na lokálnej adrese http://192.168.1.26:8501
|
|
||||||
|
|
||||||
### Trénovanie modelu
|
|
||||||
Založené na: https://git.kemt.fei.tuke.sk/dano/spacy-skmodel
|
|
||||||
- Na trénovanie NER využitá vstavaná funkcia spacy train
|
|
||||||
- Testované aj s custom skriptom na trénovanie - `custom_train.py` - približne rovnaké výsledky, neporovnateľne dlhší čas trénovania
|
|
||||||
|
|
||||||
|
|
||||||
### Scripts
|
|
||||||
`python scripts.py [command] [arguments]`
|
|
||||||
|
|
||||||
| Príkaz | Popis | Argumenty |
|
|
||||||
| ---------- | ------------------ | ------------------- |
|
|
||||||
| `count` | Vypíše štatistiky o databáze vo formáte JSONL z Prodigy.| dataset_path|
|
|
||||||
| `delete_annot` | Vytvorí samostatnú databázu s anotáciami iba od zvoleného anotátora.| annotator, dataset_path, new_dataset_path|
|
|
||||||
| `modelinfo`| Vypíše informácie o natrénovanom modeli (Precision, Recall a F-skóre), zároveň aj o jednotlivých entitách. | - |
|
|
@ -1 +0,0 @@
|
|||||||
docker build . -t prodigy
|
|
@ -1,152 +0,0 @@
|
|||||||
"""Scripts used for training and evaluation of NER models
|
|
||||||
Usage example:
|
|
||||||
$ python custom_train.py train ./model ./train.jsonl ./eval.jsonl -o ./output_dir -n 15
|
|
||||||
Requirements:
|
|
||||||
spacy>=2.2.3
|
|
||||||
https://github.com/explosion/projects/tree/master/ner-drugs
|
|
||||||
"""
|
|
||||||
import spacy
|
|
||||||
from spacy.cli.train import _load_pretrained_tok2vec
|
|
||||||
from timeit import default_timer as timer
|
|
||||||
from pathlib import Path
|
|
||||||
import srsly
|
|
||||||
from wasabi import msg
|
|
||||||
import random
|
|
||||||
import plac
|
|
||||||
import sys
|
|
||||||
import tqdm
|
|
||||||
|
|
||||||
|
|
||||||
def format_data(data):
|
|
||||||
result = []
|
|
||||||
labels = set()
|
|
||||||
for eg in data:
|
|
||||||
if eg["answer"] != "accept":
|
|
||||||
continue
|
|
||||||
ents = [(s["start"], s["end"], s["label"]) for s in eg.get("spans", [])]
|
|
||||||
labels.update([ent[2] for ent in ents])
|
|
||||||
result.append((eg["text"], {"entities": ents}))
|
|
||||||
return result, labels
|
|
||||||
|
|
||||||
|
|
||||||
@plac.annotations(
|
|
||||||
model=("The base model to load or blank:lang", "positional", None, str),
|
|
||||||
train_path=("The training data (Prodigy JSONL)", "positional", None, str),
|
|
||||||
eval_path=("The evaluation data (Prodigy JSONL)", "positional", None, str),
|
|
||||||
n_iter=("Number of iterations", "option", "n", int),
|
|
||||||
output=("Optional output directory", "option", "o", str),
|
|
||||||
tok2vec=("Pretrained tok2vec weights to initialize model", "option", "t2v", str),
|
|
||||||
)
|
|
||||||
def train_model(
|
|
||||||
model, train_path, eval_path, n_iter=10, output=None, tok2vec=None,
|
|
||||||
):
|
|
||||||
"""
|
|
||||||
Train a model from Prodigy annotations and optionally save out the best
|
|
||||||
model to disk.
|
|
||||||
"""
|
|
||||||
spacy.util.fix_random_seed(0)
|
|
||||||
with msg.loading(f"Loading '{model}'..."):
|
|
||||||
if model.startswith("blank:"):
|
|
||||||
nlp = spacy.blank(model.replace("blank:", ""))
|
|
||||||
else:
|
|
||||||
nlp = spacy.load(model)
|
|
||||||
msg.good(f"Loaded model '{model}'")
|
|
||||||
train_data, labels = format_data(srsly.read_jsonl(train_path))
|
|
||||||
eval_data, _ = format_data(srsly.read_jsonl(eval_path))
|
|
||||||
ner = nlp.create_pipe("ner")
|
|
||||||
for label in labels:
|
|
||||||
ner.add_label(label)
|
|
||||||
nlp.add_pipe(ner)
|
|
||||||
t2v_cfg = {
|
|
||||||
"embed_rows": 10000,
|
|
||||||
"token_vector_width": 128,
|
|
||||||
"conv_depth": 8,
|
|
||||||
"nr_feature_tokens": 3,
|
|
||||||
}
|
|
||||||
optimizer = nlp.begin_training(component_cfg={"ner": t2v_cfg} if tok2vec else {})
|
|
||||||
if tok2vec:
|
|
||||||
_load_pretrained_tok2vec(nlp, Path(tok2vec))
|
|
||||||
batch_size = spacy.util.compounding(1.0, 32.0, 1.001)
|
|
||||||
best_acc = 0
|
|
||||||
best_model = None
|
|
||||||
row_widths = (2, 8, 8, 8, 8)
|
|
||||||
msg.row(("#", "L", "P", "R", "F"), widths=row_widths)
|
|
||||||
for i in range(n_iter):
|
|
||||||
random.shuffle(train_data)
|
|
||||||
losses = {}
|
|
||||||
data = tqdm.tqdm(train_data, leave=False)
|
|
||||||
for batch in spacy.util.minibatch(data, size=batch_size):
|
|
||||||
texts, annots = zip(*batch)
|
|
||||||
nlp.update(texts, annots, drop=0.2, losses=losses)
|
|
||||||
with nlp.use_params(optimizer.averages):
|
|
||||||
sc = nlp.evaluate(eval_data)
|
|
||||||
if sc.ents_f > best_acc:
|
|
||||||
best_acc = sc.ents_f
|
|
||||||
if output:
|
|
||||||
best_model = nlp.to_bytes()
|
|
||||||
acc = (f"{sc.ents_p:.3f}", f"{sc.ents_r:.3f}", f"{sc.ents_f:.3f}")
|
|
||||||
msg.row((i + 1, f"{losses['ner']:.2f}", *acc), widths=row_widths)
|
|
||||||
msg.text(f"Best F-Score: {best_acc:.3f}")
|
|
||||||
if output and best_model:
|
|
||||||
with msg.loading("Saving model..."):
|
|
||||||
nlp.from_bytes(best_model).to_disk(output)
|
|
||||||
msg.good("Saved model", output)
|
|
||||||
|
|
||||||
|
|
||||||
@plac.annotations(
|
|
||||||
model=("The model to evaluate", "positional", None, str),
|
|
||||||
eval_path=("The evaluation data (Prodigy JSONL)", "positional", None, str),
|
|
||||||
)
|
|
||||||
def evaluate_model(model, eval_path):
|
|
||||||
"""
|
|
||||||
Evaluate a trained model on Prodigy annotations and print the accuracy.
|
|
||||||
"""
|
|
||||||
with msg.loading(f"Loading model '{model}'..."):
|
|
||||||
nlp = spacy.load(model)
|
|
||||||
data, _ = format_data(srsly.read_jsonl(eval_path))
|
|
||||||
sc = nlp.evaluate(data)
|
|
||||||
result = [
|
|
||||||
("Precision", f"{sc.ents_p:.3f}"),
|
|
||||||
("Recall", f"{sc.ents_r:.3f}"),
|
|
||||||
("F-Score", f"{sc.ents_f:.3f}"),
|
|
||||||
]
|
|
||||||
msg.table(result)
|
|
||||||
|
|
||||||
|
|
||||||
@plac.annotations(
|
|
||||||
model=("The model to evaluate", "positional", None, str),
|
|
||||||
data=("Raw data as JSONL", "positional", None, str),
|
|
||||||
)
|
|
||||||
def wps(model, data):
|
|
||||||
"""
|
|
||||||
Measure the processing speed in words per second. It's recommended to
|
|
||||||
use a larger corpus of raw text here (e.g. a few million words).
|
|
||||||
"""
|
|
||||||
with msg.loading(f"Loading model '{model}'..."):
|
|
||||||
nlp = spacy.load(model)
|
|
||||||
texts = (eg["text"] for eg in srsly.read_jsonl(data))
|
|
||||||
n_docs = 0
|
|
||||||
n_words = 0
|
|
||||||
start_time = timer()
|
|
||||||
for doc in nlp.pipe(texts):
|
|
||||||
n_docs += 1
|
|
||||||
n_words += len(doc)
|
|
||||||
end_time = timer()
|
|
||||||
wps = int(n_words / (end_time - start_time))
|
|
||||||
result = [
|
|
||||||
("Docs", f"{n_docs:,}"),
|
|
||||||
("Words", f"{n_words:,}"),
|
|
||||||
("Words/s", f"{wps:,}"),
|
|
||||||
]
|
|
||||||
msg.table(result, widths=(7, 12), aligns=("l", "r"))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
opts = {"train": train_model, "evaluate": evaluate_model, "wps": wps}
|
|
||||||
cmd = sys.argv.pop(1)
|
|
||||||
if cmd not in opts:
|
|
||||||
msg.fail(f"Unknown command: {cmd}", f"Available: {', '.join(opts)}", exits=1)
|
|
||||||
try:
|
|
||||||
plac.call(opts[cmd])
|
|
||||||
except KeyboardInterrupt:
|
|
||||||
msg.warn("Stopped.", exits=1)
|
|
@ -1 +0,0 @@
|
|||||||
python text_to_sent.py
|
|
@ -1,2 +0,0 @@
|
|||||||
prodigy ner.manual wikiart sk_sk1 ./textfile.csv --label PER,LOC,ORG,MISC
|
|
||||||
|
|
@ -1 +0,0 @@
|
|||||||
prodigy data-to-spacy ./train.json ./eval.json --lang sk --ner wikiart --eval-split 0.3
|
|
@ -1,368 +0,0 @@
|
|||||||
Rýchlosť svetla vo vákuu sa presne rovná 299 792 458 metrov za sekundu (1 079 252 848,8 km/h). Rýchlosť svetla sa značí písmenom c (údajne z latinského celeritas, čo znamená rýchlosť), ktoré je tiež známe ako Einsteinova konštanta. Táto presná hodnota nie je určená meraním ale definíciou, nakoľko samotná jednotka meter je definovaná z hľadiska rýchlosti svetla a sekundy. Rýchlosť svetla v inom prostredí (teda nie vo vákuu) je menšia ako c (čo definuje index lomu prostredia).
|
|
||||||
George Walker Bush (* 6. júl 1946, New Haven, Connecticut) je americký politik, súčasný a v poradí 43. prezident Spojených štátov amerických. Bush, člen Republikánskej strany, pochádza z prominentnej rodiny Bushovcov, do ktorej patrí tiež jeho starý otec (Prescott Bush, senátor USA), jeho otec (George H. W. Bush, bývalý prezident USA), a jeho brat (Jeb Bush, súčasný guvernér štátu Florida).
|
|
||||||
Pred tým, ako sa stal prezidentom, bol George W. Bush podnikateľom v oblasti ropného priemyslu a profesionálneho bejzbalu. Bol zvolený za 46. guvernéra Texasu, a vyhral nomináciu Republikánskej strany v prezidentských voľbách v roku 2000.
|
|
||||||
Mačka domáca (Felis silvestris f. catus) je už niekoľko storočí domácim zvieraťom. Po svojich predkoch zdedila vynikajúci zrak a sluch, k lovu dokonale prispôsobené telo. Ešte prednedávnom bola mačka neodmysliteľnou súčasťou každého vidieckeho domu. S rozvojom civilizácie je ale tohto vidieckeho prostredia čoraz menej a mačka stráca svoje postavenie úžitkového domáceho zvieraťa. V mestách sa pre svoju reprodukčnú schopnosť a pre potencionálne nebezpečenstvo prenosu toxoplazmózy a rozličných parazitov stáva nevítaným problémom. Na druhej strane je vďaka relatívne nenáročnej starostlivosti a schopnosti dodať príbytku teplo domova čoraz obľúbenejším domácim zvieraťom.
|
|
||||||
Mačkovité šelmy patria medzi cicavce. Prvé cicavce sa vyvinuli z plazov pred asi 200 miliónmi rokov. Pred približne 70 miliónmi rokov začali získavať cicavce dominantné postavenie, ktoré si udržali dodnes. Vyvinulo sa niekoľko mäsožravých čeľadí, kam patrí aj čeľaď Miacis.
|
|
||||||
Frankfurt nad Mohanom je s 651 087 obyvateľmi najväčším mestom v Hesensku a po Berlíne, Hamburgu, Mníchove a Kolíne nad Rýnom piatym najväčším mestom Nemecka.
|
|
||||||
Mestská zástavba zasahuje ďaleko za úzko vytýčené hranice mesta. Užšia mestská oblasť má približne 1,8 milióna obyvateľov a celý región Frankfurt/Rýn-Mohan je s vyše 5 miliónmi obyvateľov druhý najväčší metropolitný región Nemecka.
|
|
||||||
Ľudovít Štúr, v svojej dobe Ludevít Velislav Štúr (* 28. október 1815, Uhrovec – † 12. január 1856, Modra) bol najvýznamnejší predstaviteľ slovenského národného života v polovici 19. storočia, poslanec uhorského snemu za mesto Zvolen v rokoch 1848-1849, kodifikátor súčasného slovenského spisovného jazyka založeného na stredoslovenských nárečiach (okolo 1843), jeden z vedúcich účastníkov Slovenského povstania v rokoch 1848-1849, politik, jazykovedec, učiteľ, spisovateľ a novinár.
|
|
||||||
Venuša je druhá planéta slnečnej sústavy (v poradí od Slnka), po Slnku a po Mesiaci najjasnejší objekt viditeľný zo Zeme.
|
|
||||||
"Jej dráha sa nachádza vo vnútri dráhy Zeme, to znamená, že nikdy sa na oblohe nevzdiali ďaleko od Slnka. Maximálna uhlová výchylka Venuše od Slnka môže byť až 48°. So Slnkom a Mesiacom patrí medzi jediné tri nebeské telesá, ktorých svetlo vrhá na Zem tiene viditeľné voľným okom. Je pomenovaná po rímskej bohyni Venuši. Je to terestriálna planéta, čo do veľkosti a skladby veľmi podobná Zemi; niekedy ju preto nazývame „sesterskou planétou“ Zeme. Aj keď orbity všetkých ostatných planét sú elipsovité, orbita Venuše je jediná takmer kružnica, so stredom Slnka iba o 0,7% mimo skutočný stred Venušinej obežnej dráhy."
|
|
||||||
Sopka alebo vulkán je geomorfologický útvar vytvorený magmou vystupujúcou na zemský povrch. Na našej planéte sa sopky vyskytujú pozdĺž hraníc litosférických dosiek a v takzvaných horúcich škvrnách.
|
|
||||||
Názov vulkán je odvodený od názvu sopky Vulcano v Tyrrhenskom mori, prenesene od rímskeho boha Vulkána. Veda, skúmajúca sopečnú činnosť sa nazýva vulkanológia.
|
|
||||||
Iné formy sú bahnové sopky (tieto, až na pár výnimiek nesúvisia so sopečnou činnosťou) a ľadové sopky (vyskytujú sa na niektorých mesiacoch slnečnej sústavy – Europa, Enceladus, Triton, Titan).
|
|
||||||
Sir Winston Leonard Spencer-Churchill (* 30. november 1874 zámok Blenheim, Woodstock – † 24. január 1965, Londýn) bol britský politik, premiér Spojeného kráľovstva v rokoch 1940-1945. Tiež spisovateľ (Nobelova cena za literatúru 1953), historik, žurnalista, vojak a zákonodarca. Je považovaný za jedného z najvýznamnejších štátnikov 20. storočia.
|
|
||||||
Churchillove celé priezvisko znelo Spencer-Churchill, ale po vzore svojho otca Lorda Randolph Churchilla vo verejnom živote používal len priezvisko Churchill. Jeho knihy vychádzajú pod menom Winston S. Churchill alebo Winston Spencer Churchill, pretože pod menom Winston Churchill publikoval už iný autor.
|
|
||||||
India, dlhý tvar Indická republika, je druhá najľudnatejšia krajina na svete.
|
|
||||||
Zaberá väčšiu časť Južnej Ázie a jej pobrežná čiara má viac ako 7 000 kilometrov. Susedí s Pakistanom na západe, Čínou, Nepálom a Bhutánom na severovýchode, Bangladéšom a Mjanmarskom na východe a v Indickom oceáne ležiacimi Maldivami na juhozápade, Srí Lankou na juhu a Indonéziou na juhovýchode. India považuje aj Afganistan za štát, s ktorým hraničí.
|
|
||||||
S počtom obyvateľov vyše jednej miliardy je druhou najľudnatejšou krajinou na svete a rozlohou jej prislúcha siedme miesto. Je domovom niekoľkých starovekých civilizácií a centrom dôležitých historických obchodných ciest.
|
|
||||||
India je známa svojimi bohatými náboženskými tradíciami. Štyri najrozšírenejšie náboženstva sveta – hinduizmus, budhizmus, džinizmus a sikhizmus – majú svoje korene v Indii.
|
|
||||||
Ako bývalá kolónia Britská India do roku 1947 sa India počas posledných dvadsiatich rokov výrazne rozvíjala, obzvlášť v ekonomickej a vojenskej sfére, v regionálnom aj globálnom meradle.
|
|
||||||
Sauropoda je skupina veľkých bylinožravých dinosaurov. Vyznačovali sa predĺženým krkom, štvornohou chôdzou, malou veľkosťou lebky a dlhým chvostom. Vyskytovali sa od konca triasu do úplného konca druhohôr po celom svete.
|
|
||||||
Sauropody vznikli koncom triasu. Kedy sa tak stalo, presne nevieme, keďže nie je jasné, ktorých zástupcov Sauropodomorpha už môžeme považovať za primitívne sauropody. Prvé milióny rokov, koncom triasu až začiatkom jury, sauropody spolunažívali s príbuznou skupinou Prosauropoda. Obe skupiny zastupovali zovňajškom veľmi podobné živočíchy, s podobnými proporciami a rozmermi. Už v tomto čase predstavovali sauropody veľké a mohutné živočíchy (7-10 m dlhé s váhou niekoľkých ton).
|
|
||||||
"Ľuľok zemiakový (Solanum tuberosum), v bežnej reči len zemiak, je viacročná hľuznatá plodina z čeľade ľuľkovitých. Zemiaky patria medzi najvýznamnejšie poľnohospodárske plodiny; väčší význam pre ľudskú výživu majú len pšenica, ryža a kukurica. Za svoju obľubu vďačia nenáročnosti na prírodné podmienky a predovšetkým mimoriadne vysokým hektárovým výnosom. Ich široké uplatnenie v európskom poľnohospodárstve na začiatku 19. storočia ochránilo Európu od cyklických hladomorov a „epidémií“ skorbutu. Český botanik a buditeľ Jan Svatopluk Presl ich vo svojom Rostlinopise považuje za „najväčší úžitok, ktorý ľudstvo z objavenia Ameriky malo“ a určite nebol ďaleko od pravdy, aspoň vo svojej dobe."
|
|
||||||
Johann Sebastian Bach (* 21. marec 1685, Eisenach – † 28. júl 1750, Lipsko) bol nemecký skladateľ barokovej hudby a svojho času slávny organista a čembalista. Dnes je uznávaný ako najväčší majster zvuku, ktorý na stáročia ovplyvnil celý ďalší vývoj hudby, a ktorého diela sú rozšírené po celom svete tak v pôvodnej forme, ako aj v nespočetných variáciách.
|
|
||||||
Planetárna hmlovina je astronomický objekt skladajúci sa z približne guľovej žiariacej zmesi plynov tvorenej niektorými typmi hviezd na konci ich života. Tento pojem nemá žiadnu súvislosť s planétami: názov pochádza z v minulosti predpokladanej podobnosti so vzhľadom obrích planét. Jav netrvá dlho, iba niekoľko tisíc rokov z typického života hviezdy dosahujúceho niekoľko miliárd rokov. V našej Galaxii poznáme asi 1 500 týchto objektov.
|
|
||||||
Planetárne hmloviny sú dôležitými astronomickými objektami, pretože hrajú kľúčovú úlohu v chemickom vývoji galaxie. Vracajú totiž materiál do medzihviezdneho priestoru a obohacujú ho tak o ťažké prvky, produkty nukleárnej syntézy. V iných galaxiách sú planetárne hmloviny jedinými pozorovateľnými objektami poskytujúcimi informácie o chemickom zložení.
|
|
||||||
Uhlík (lat. Carboneum) je chemický prvok v Periodickej tabuľke prvkov, ktorý má značku C a protónové číslo 6. Uhlík tvorí základný stavebný kameň všetkých organických zlúčenín a tým aj všetkých živých organizmov. Zlúčeniny uhlíku sú aj jedným zo základov svetovej energetiky, fosílne palivá ako zemný plyn a uhlie slúžia ako energetický zdroj na výrobu elektriny a vykurovanie, produkty spracovania ropy sú nevyhnutné pre pohon spaľovacích motorov. Výrobky chemického priemyslu na báze uhlíka sú súčasťou každodenného života či ide o o plastické hmoty, umelé vlákna, náterové hmoty alebo liečivá.
|
|
||||||
Piešťany (maď. Pöstyén, nem. Pistyan, poľ. Pieszczany) sú najväčšie kúpeľné mesto na Slovensku, sídlo okresu a mnohých vedeckých inštitúcií. Medzinárodné stredisko liečby reumatických chorôb. Významné regionálne centrum kultúry, školstva, športu a rekreácie. Hospodárstvo mesta je závislé na liečebnej starostlivosti, turistickom ruchu, elektrotechnickom, strojárskom a potravinárskom priemysle. Preteká ním rieka Váh. Má nížinné, teplé a suché podnebie.
|
|
||||||
V okolí sa nachádzajú významné archeologické lokality. Prvá písomná zmienka pochádza z roku 1113. Výrazný rozvoj v 19. storočí súvisí s rozvojom kúpeľnej starostlivosti. V druhej polovici 20. storočia vďaka budovaniu priemyslu zdvojnásobilo počet obyvateľov na súčasných 29 957.
|
|
||||||
Teória platňovej tektoniky (alebo nesprávne doskovej tektoniky alebo globálnej tektoniky) sa rozvinula pre potreby objasnenia geologického fenoménu pohybu kontinentov a v súčasnosti je uznávaná väčšinou odborníkov pracujúcich v tejto oblasti. Táto teória hovorí o tom, že najvrchnejšia časť zemského telesa je tvorená dvoma vrstvami: vrchná litosféra je pevná. Pod ňou sa nachádza astenosféra, ktorá je plastická. Litosféra „pláva“ na astenosfére a je rozlámaná na viacero veľkých či menších platní (alebo krýh), nazývaných aj tektonické platne. Tieto platne sa voči ostatným pohybujú, pričom dochádza k ich stretom. Pri stretoch nastávajú rôzne geologické fenomény: zemetrasenia, sopečná činnosť, vznik pohorí, vznik riftových zón a morských priekop.
|
|
||||||
Platňová tektonika sa vyvinula zo štúdia dvoch geologických procesov: pohybu kontinentov, pozorovaného už začiatkom 20. storočia a rozchádzania sa oceánskeho dna (pozorovaného v 60. rokoch 20. storočia). Samotná teória bola vypracovaná koncom šesťdesiatych rokov a jej široká akceptácia geologickou verejnosťou spôsobila revolúciu v geologických vedách (podobne ako objavenie periodického zákona v chémii, kvantovej mechaniky vo fyzike a objavenie DNA v biológii).
|
|
||||||
Bitka o Stalingrad (21. august 1942 - 2. február 1943) bola jednou z najvýznamnejších ozbrojených zrážok na východnom fronte počas druhej svetovej vojny. Začala sa po tom, čo sa nemecká 6. armáda pokúsila obsadiť ľavý breh rieky Volgy v južnej časti ZSSR, no jej postup uviazol v pouličných bojoch v meste Stalingrad. 19. novembra 1942, v dobe kedy nemecký postup ustrnul, prešli na krídlach do protiútoku sovietske sily, ktoré v meste obkľúčili celú 6. armádu a časti ďalších nemeckých a rumunských jednotiek. Nemecké pokusy oslobodiť 6. armádu neboli úspešné a tá v kritickej situácii, po dva a pol mesiaci, prestala klásť odpor a kapitulovala. Celkové straty v dôsledku bojov sa odhadujú na 1,5 milióna padlých. Porážka znamenala nielen prechod nemeckých vojsk na východnom fronte do defenzívy, ale urýchlila i vnútorný rozpad síl Osi
|
|
||||||
Claudio Zuan Antonio Monteverdi (tiež Monteverde 15. máj 1567, Cremona – † 29. november 1643, Benátky) bol taliansky hudobný skladateľ, jeden z najvýznamnejších komponistov svojej doby.
|
|
||||||
Štýlovo patrí jeho dielo do obdobia prelomu renesancie a baroka. Monteverdi svojimi hudobnými inováciami významne prispel k zrodu barokového štýlu. Bol autorom mnohých profánnych a sakrálnych diel, významný je najmä ako dovŕšiteľ formy madrigalu (skomponoval deväť zbierok madrigalov) a jeden zo zakladateľov opery (napríklad Orfeus, Ariadna, Korunovácia Popey).
|
|
||||||
Jasoň červenooký (lat. Parnassius apollo Linnaeus, 1758) je druh motýľa z čeľade vidlochvostovité (Papilionidae). Je to vzácny a chránený druh motýľa, ktorý je jedným z najznámejších druhov hmyzu v Európe. Patrí spoločne s viac ako šesťdesiatimi ďalšími druhmi motýľov do rodu jasoň (Parnassius Latreille, 1802).
|
|
||||||
Jasoň patrí k najväčším denným motýľom Európy. Je bielo sfarbený, s hyalínnym tmavým lemom predných krídel. Na predných krídlach má okrem tohto lemu ešte 10 čiernych škvŕn. Na zadných krídlach má okrem rôzne naznačeného čierneho lemu krídel ešte štyri červené, čierno lemované škvrny, v ktorých sa zvyčajne nachádza ešte biela bodka. Pri brušku z análnej strany býva ešte niekoľko čiernych (jedna až tri), niekedy červeno vyplnených škvrniek. Tykadlá sú šedočierne, krátke a na konci ukončené čiernym kyjakovitým zhrubnutím. Povrch tela je hlavne u samčekov pokrytý oranžovo – hnedými chĺpkami. Má tri páry plnohodnotných nôh. Tento štandardný vzhľad sa môže u niektorých jedincov rôzne meniť, čo dalo základ vzniku a popisu rôznych individuálnych odchýliek a foriem.
|
|
||||||
Londýnske metro (angl. London Underground, v hovorovej reči the Tube) je najstarší podzemný dopravný systém na svete. Prvý podzemný úsek bol odovzdaný do prevádzky už v druhej polovici 19. storočia, konkrétne v roku 1863. V súčasnosti má 12 liniek, metro obsluhuje 275 staníc a vyše 408 kilometrov liniek. Počas jedného dňa Londýnske metro prepraví 3,4 milióna cestujúcich.
|
|
||||||
Od roku 2003 je londýnske metro súčasťou organizácie Transport for London (TfL), ktorá zabezpečuje aj autobusovú dopravu.
|
|
||||||
Prvé vlaky začali premávať 10. januára 1863 na Metropolitan Railway (Metropolitná železnica) medzi stanicami Paddington a Farringdon, ktorej väčšia časť je dnes súčasťou Hammersmith & City Line. O necelé dve dekády, v roku 1880, prepravilo londýnske metro už 40 miliónov pasažierov ročne.
|
|
||||||
Bridž (z angl. bridge) je kartová hra pre štyroch hráčov, kde hráči sediaci oproti sebe tvoria pár nazývaný linka. Hrá sa s jednou sadou francúzskych kariet bez žolíkov. Má postavenie športovej hry.
|
|
||||||
Bridž je odvodený zo staršej hry whist, ktorej rôzne obmeny existovali už v 16. storočí. V roku 1925 Harold S. Vanderbilt vychádzajúc hlavne z francúzskeho plafondu publikoval pravidlá novej hry, ktorú nazval „contract bridge“. Táto obmena bridžu pretrvala takmer v nezmenenej podobe až do dnešných čias.
|
|
||||||
Tak ako sa za kráľa doskových hier považuje šach, za kráľa kartových hier je považovaný bridž. Rozdiel medzi bridžom a mariášom z hľadiska náročnosti je zhruba taký, ako medzi šachom a dámou. Medzinárodný olympijský výbor zaradil bridž medzi uznané športy.
|
|
||||||
Poľsko, dlhý tvar Poľská republika, je štát nachádzajúci sa v strednej časti Európy. Poľsko susedí s Bieloruskom, Českom, Litvou, Nemeckom, Ruskom, Slovenskom, Ukrajinou. Na severe tvorí prirodzenú hranicu Baltské more.
|
|
||||||
Názov Poľsko sa odvodzuje od názvu kmeňa Poľania, ktorý žil vo Veľkopoľsku (časť Poľska). Slovo Polanie sa dá preložiť ako obývajúci otvorené polia. Je možné pripustiť, že hlavnou náplňou toho kmeňa bolo roľníctvo, na rozdiel od iných vtedajších kmeňov, napr. Vislanov či Mazovčanov, obývajúcich lesnaté oblasti.
|
|
||||||
Zobrazovanie magnetickou rezonanciou (skr. MR alebo MRI - z anglického „magnetic resonance imaging“) je moderná rádiologická metóda, ktorá umožňuje diagnostikovať patologické zmeny v ľudskom organizme bez toho, aby bolo nutné narušiť jeho integritu (operáciou či inou invazívnou metódou). Pacient je vložený do veľmi silného a homogénneho magnetického poľa, do jeho tela je vyslaný krátky rádiofrekvenčný impulz a po jeho skončení sa sníma slabý signál, ktorý vytvára pacientovo telo, a ktorý sa následne použije na rekonštrukciu samotného obrazu.
|
|
||||||
"Za prvý priekopnícky článok o zobrazovaní magnetickou rezonanciou sa považuje „Image formation by Induced Local Interaction; Examples Employing Magnetic Resonance“ v marcovom čísle časopisu Nature z 16. marca 1973 ktorého autorom bol Paul Lauterbur ..."
|
|
||||||
Vancouver je pobrežné mesto nachádzajúce sa na juhozápade kanadskej provincie Britská Kolumbia. Je pomenované podľa anglického kapitána a prieskumníka, ktorý sa volal George Vancouver.
|
|
||||||
Vancouver je najväčšie metropolitné centrum v západnej Kanade a tretie najväčšie v celej Kanade. Je to jedno z miest tvoriacich Regionálny okres Metro Vancouver - Regional District Metro Vancouver a jedno z miest väčšej geografickej oblasti známej ako Lower Mainland. Nachádza sa tu prístav svetového významu.
|
|
||||||
V meste žije 611 000 obyvateľov na ploche 114,67 km² a v celej metropolitnej oblasti žije 2,2 miliónov obyvateľov na území 2 878,52 km². Je značne etnicky rôznorodé, keďže 52 % jeho obyvateľov a 43 % obyvateľov metropolitnej oblasti nemá za svoj materinský jazyk angličtinu.
|
|
||||||
"Mesiac je vesmírne teleso obiehajúce okolo Zeme a je jej jediným prirodzeným satelitom. Nemá iné formálne meno ako ""Mesiac"", aj keď sa občas nazýva Luna (latinský výraz pre ""mesiac""). Jeho symbolom je kosák (Unicode: ☾). Okrem slova lunárny sa k odkazu na Mesiac používa aj kmeň selen- (podľa gréckej bohyne Mesiaca Seléné) (selenocentrický, Seleniti, atď.)."
|
|
||||||
Priemerná vzdialenosť medzi Mesiacom na Zemou je 384 403 km. Priemer Mesiaca je 3 476 kilometrov. V roku 1969 pristáli Neil Armstrong a Buzz Aldrin ako prví ľudia na Mesiaci.
|
|
||||||
Pavel Jozef Šafárik (Safáry / Schaffáry/ Schafary/ Saf(f)arik / Šafarík/ Szafarzik, po česky Pavel Josef Šafařík, v modernej slovenčine Pavol Jozef Šafárik, po nemecky Paul Joseph Schaffarik, po latinsky Paulus Josephus Schaffarik, po maďarsky Pál József Saf(f)arik) (* 13. máj 1795, Kobeliarovo – † 26. jún 1861, Praha) bol slovenský básnik, historik, etnograf, slavista a univerzitný profesor. Založil vedeckú slavistiku. Svoje diela písal prevažne po nemecky alebo po česky.
|
|
||||||
Metallica je americká heavymetalová skupina založená roku 1981 v Los Angeles. Skupina sa vznikla na základe inzerátu v novinách, ktorý podal bubeník Lars Ulrich. Jadro skupiny tvoria bubeník Lars Ulrich, spevák a sprievodný gitarista James Hetfield, a sólový gitarista Kirk Hammett. Na poste basového gitaristu sa vystriedalo viacero muzikantov, v súčasnosti je ním Robert Trujillo.
|
|
||||||
Metallica doposiaľ vydala deväť štúdiových albumov, dva živé albumy, dve EP, dvadsaťdva videoklipov a štyridsaťtri singlov. Skupina získala sedem cien Grammy a ako jedinej kapele v histórii sa jej podarilo bodovať v albumovom rebríčku Billboard 200 na prvom mieste s piatimi po sebe nasledujúcimi albumami. Album Metallica (1991), z ktorého sa v USA predalo viac než 15 miliónov kópií (22 mil. celosvetovo), je 25. najpredávanejším albumom v USA.
|
|
||||||
Percento je stotina z celku. Je to spôsob ako vyjadriť časť celku (čiže zlomok) pomocou celého čísla. Názov pochádza z per cento, znamenajúceho (pripadajúci) na sto.
|
|
||||||
"Znak „%“ je štylizovaný symbol dvoch núl, v pôvodnej podobe (asi roku 1425) bol využitý podobný symbol (iba s vodorovnou čiarkou namiesto šikmej) pre skrátenie zápisu P cento; písmeno P neskôr vypadlo a používal sa samostatný symbol s vodorovnou čiarkou (asi roku 1650)."
|
|
||||||
Zemetrasenie je vonkajší prejav náhleho uvoľnenia nahromadenej mechanickej energie v litosfére (v kôre a vo vrchnom plášti). Vyše 90 % zemetrasení je spôsobených tektonickými pohybmi Zeme, zvyšok pripadá na vulkanizmus, zrútenie veľkých podzemných dutín (napr. stropov jaskýň) alebo skalných masívov, ako aj na činnosť človeka (banská činnosť, explózie, atď...).
|
|
||||||
Zemetrasenia sa zaznamenávajú seizmometrami umiestnenými v tzv. seizmologických staniciach. Ročne je takto zaznamenaných na Zemi niekoľko miliónov zemetrasení, no len nepatrná časť z nich (približne 30 000) má aj účinky, postrehnuteľné zmyslami človeka.
|
|
||||||
Černobyľská havária sa stala 26. apríla 1986, v černobyľskej atómovej elektrárni na Ukrajine (vtedy časť Sovietskeho zväzu). Ide o najhoršiu jadrovú haváriu v histórii jadrovej energetiky. V priebehu riskantného pokusu vtedy došlo k prehriatiu a následne explózii reaktora a do vzduchu sa uvoľnil rádioaktívny mrak, ktorý postupoval cez západnú časť Sovietskeho zväzu, Východnú Európu a Škandináviu. Boli kontaminované rozsiahle oblasti Ukrajiny, Bieloruska a Ruska, čo si vyžiadalo evakuáciu a presídlenie asi 200 000 ľudí. Približne 60 % rádioaktívneho spadu skončilo v Bielorusku. Nehoda zvýšila obavy o bezpečnosť sovietskeho jadrového priemyslu, spomalila na mnoho rokov jeho expanziu a zároveň nútila sovietsku vládu prehodnotiť mieru utajovania. Nástupnícke štáty po rozpade Sovietskeho zväzu – Rusko, Ukrajina a Bielorusko dodnes nesú bremeno pokračujúcich nákladov na dekontamináciu a liečenie ochorení spôsobených černobyľskou haváriou...
|
|
||||||
"Usain Bolt (ju'seːn; * 21. august 1986, Trelawny Parish) prezývaný aj Lightning Bolt (doslova Svetelný blesk) je jamajský atlét (šprintér). Venuje sa behu na 100, 200 a príležitostne aj 400 metrov. Je trojnásobný olympijský medailista. Všetky tieto medaily získal na letných olympijských hrách 2008 v Pekingu. Meria 196 cm a váži 86 kg, svojím rýchlym behom však vyvrátil tvrdenia, že šprintér nemôže byť vysoký."
|
|
||||||
Narodil sa 21. augusta 1986 v Trelawny Parish, kde aj vyrastal. Jeho matka sa volá Jennifer, otec Welesley, sestra Sherine a nevlastný brat Sadeeki. Mama ho viedla k viere v Boha, a aj v súčasnosti sa pred každým pretekom prežehná a ukáže prstom hore. Podľa svojho vyjadrenia v detstve nemyslel na nič iné než na šport. Navštevoval školy Waldensia Primary a All-age School. Práve na škole prvýkrát zistil, že má talent na šprint. V dvanástich rokoch sa stal najrýchlejším bežcom školy v behu na 100 m. Usain však tomu nepripisoval veľkú vážnosť. Po ukončení štúdia na predchádzajúcich školách začal študovať na William Knibb Memorial High School. Aj tu sa sústredil na iné športy, ale tréner kriketu si všimol jeho rýchlosť a odporučil mu, aby začal trénovať atletiku.
|
|
||||||
"Slnečná sústava je planetárna sústava hviezdy Slnko, do ktorej patrí aj Zem. Skladá sa zo Slnka a všetkých telies, ktoré obiehajú okolo neho; (planét, trpasličích planét, planétok, komét, mesiacov, meteoroidov, medziplanetárneho plynu a prachu), rovnako ako aj prostredia, v ktorom sa tento pohyb uskutočňuje. Zem je treťou planétou slnečnej sústavy. Slnečná sústava je súčasťou oveľa väčšieho komplexu pozostávajúceho z množstva hviezd a medzihviezdnej hmoty – Galaxie."
|
|
||||||
Všetky telesá slnečnej sústavy sa pohybujú po dráhach, ktoré sa nazývajú kužeľosečky. Sú to kružnica, elipsa, parabola a hyperbola. Pri svojom obehu okolo Slnka sa telesá riadia Keplerovými zákonmi, aj keď nimi nie je možné opísať pohyb všetkých telies slnečnej sústavy úplne presne, pretože okrem gravitačného poľa na ne pôsobia ešte aj iné sily, ako napr. odpor prostredia. Gravitačné pôsobenie Slnka udržiava veľké telesá slnečnej sústavy na obežných dráhach (pohybujú sa v uzavretých krivkách – elipsy a kružnice), menšie telesá sa môžu okrem uzavretých kriviek pohybovať aj po otvorených krivkách (po parabolách a hyperbolách).
|
|
||||||
"Barok je označenie historického obdobia a umeleckého slohu, ktorý mu dominoval. Tento sloh má pôvod okolo roku 1600 v Ríme a v Európe prevládal v 17. a vo veľkej časti 18. storočia. Jeho prvé náznaky a diela vytvorené v tomto slohu možno nájsť i pred rokom 1600, rovnako ako jeho vplyv ojedinele pretrvával i na začiatku 19. storočia, pričom sa miešal najmä s obdobím rokoka, ktoré bolo jeho vyvrcholením a má len málo odlišných znakov. Barok možno považovať za medzistupeň medzi renesanciou a moderným vekom; mohol by sa javiť ako ďalšia fáza vývinu umenia. Najreprezentatívnejším teoretickým traktátom boli Životy súčasných maliarov, sochárov a architektov (Vite de' pittori, scultori e architetti moderni; vydané v roku 1672 v Ríme) od Giana Pietra Belloriho."
|
|
||||||
Heavy metal (skrátene tiež „metal“) je druh rockovej hudby, ktorý sa ako vymedzený hudobný štýl objavil na prelome 60. a 70. rokov vo Veľkej Británii a Spojených štátoch. Korene má v hardrockových kapelách, ktoré kombinovaním blues a rocku vytvorili nový hudobný štýl, charakteristický používaním elektrických gitár a bicích, a takisto hlasitým a skresleným zvukom. Podľa servera Allmusic.com, „zo všetkých nespočetných foriem rock and rollu, heavy metal je najextrémnejší, či už z hľadiska hlasitosti, mužnosti alebo teatrálnosti.“ Existuje množstvo variácií heavy metalu, no všetky sa opierajú o hlučné, skreslené gitary, opakujúce sa riffy, a jednoduché, rytmické tempo.
|
|
||||||
Špeciálna teória relativity je fyzikálna teória publikovaná v roku 1905 Albertom Einsteinom. Nahradzuje Newtonove predstavy o priestore a čase a zahrňuje teóriu elektromagnetického poľa reprezentovanú Maxwellovými rovnicami. Teória sa nazýva špeciálnou, lebo opisuje iba zvláštny prípad Einsteinovho princípu relativity, kde sa vplyv gravitácie môže zanedbať. O desať rokov neskôr publikoval Einstein všeobecnú teóriu relativity, ktorá zahrňuje aj gravitáciu.
|
|
||||||
"Úhor európsky alebo úhor riečny (staršie úhor obyčajný, ešte staršie úhor sťahovavý; lat. Anguilla anguilla) je druh rýb z čeľade úhorovité (Anguillidae). Jeho typickým znakom je pretiahnuté, valcovité telo pripomínajúce skôr hada než rybu. Na rozdiel od väčšiny ostatných sladkovodných rýb nemá brušnú plutvu a chrbtová, chvostová a análna plutva splývajú do jedného celistvého lemu. V sladkých vodách je jeho sfarbenie tmavé a koža sa javí bez šupín, v období nástupu trenia sa však jeho farba mení na kovovo striebornú."
|
|
||||||
Spôsob rozmnožovania úhorov bol pre ľudstvo po storočia záhadou. Najväčší posun v tomto smere nastal na konci 19. a v prvej polovici 20. storočia, kedy boli objavené jeho larvy a miesto trecieho aktu v Sargasovom mori. Dodnes však nie je biológia úhora známa v potrebnej úplnosti.
|
|
||||||
Space Shuttle je americký pilotovaný kozmický raketoplán používaný na lety do vesmíru vládnou organizáciou NASA. Mal sa stať jednou zo súčastí projektovaného komplexného kozmického dopravného systému STS (Space Transportation System), ktorý však nebol realizovaný.
|
|
||||||
Raketoplán vyprojektovala a postavila päť plne prevádzkyschopných exemplárov firma Rockwell International, Space Systems Group (teraz Boeing North American), Palmdale, Kalifornia (USA). Lety sú riadené z riadiaceho strediska MCC (Mission Control Center) v Johnsonovom kozmickom stredisku (NASA Lyndon B. Johnson Space Center) v Houstone, Texas (USA) pre NASA Office of Space Flight, Washington (USA).
|
|
||||||
Marián Hossa (* 12. január 1979, Stará Ľubovňa) je slovenský reprezentant v ľadovom hokeji. V súčasnosti pôsobí v NHL v klube Chicago Blackhawks na pozícii pravého krídla. Je považovaný za jedného z najlepších útočníkov NHL a taktiež za jedného z najrýchlejších korčuliarov tejto súťaže. Reprezentoval Slovensko na viacerých medzinárodných podujatiach, vrátane dvoch Zimných olympijských hier v Salt Lake City a v Turíne.
|
|
||||||
Marián Hossa sa narodil 12. januára 1979 v Starej Ľubovni. Jeho otec je František Hossa, bývalý tréner slovenskej hokejovej reprezentácie a mladší brat Marcel Hossa, ktorý v súčasnosti pôsobí v lotyšskom hokejovom klube Dinamo Riga. Ukončil Stredné odborné učiliste železničné v Trenčíne.
|
|
||||||
Eukaryoty (po lat. Eukaryota alebo ako doména aj Eukarya) alebo jadrové organizmy alebo nukleobionty sú organizmy, ktorých bunky (tzv. eukaryotické bunky) majú hlavnú genetickú informáciu uloženú v bunkovom jadre izolovanom od okolitého prostredia (cytoplazmy) fosfolipidovou membránou. Všetky mnohobunkové organizmy v užšom zmysle slova, ako napríklad všetky rastliny, huby a živočíchy, ale aj niektoré jednobunkové organizmy (prvoky) sú eukaryoty. Eukaryoty sú jedným zo základných taxónov (nazývaných niekedy domény, nadríše alebo impériá) živých organizmov.
|
|
||||||
Košice sú metropolou východného Slovenska a s približne 234 000 obyvateľmi druhým najväčším mestom v štáte. Mesto je centrom Košicko-prešovskej aglomerácie, čo je najväčšia aglomerácia na Slovensku a kde žije 555 800 obyvateľov.
|
|
||||||
Košice sú centrom celého Východného Slovenska a sídlom Košického kraja a regionálnej samosprávy - Košického samosprávneho kraja.
|
|
||||||
Mesto je strediskom významných kultúrnych inštitúcií aj s celoslovenskou pôsobnosťou, medzi ktoré patria Štátne divadlo Košice, Štátna filharmónia Košice, Slovenské technické múzeum, Východoslovenské múzeum, Východoslovenská galéria a Štátna vedecká knižnica. Sú označované za kultúrne centrum rómskej menšiny na Slovensku. Najväčšiu menšinu na území mesta tvorí maďarská menšina s podielom 3,78 % (podľa sčítania obyvateľstva v roku 2001), pre ktorej potreby bol zriadený maďarský konzul (diplomacia)wkonzulát.
|
|
||||||
Chlór (Chlorum) (gr. chlóros - žltozelený) je chemický prvok v Periodickej tabuľke prvkov, ktorý má značku Cl a protónové číslo 17. Je to toxický veľmi reaktívny plyn, druhej triedy halogénov, ktorý sa ochotne zlučuje s väčšinou prvkov periodickej tabuľky.
|
|
||||||
Bol objavený v roku 1774 Carlom Wilhelmom Scheelom, ale súčasné pomenovanie mu dal až v roku 1810 anglický chemik sir Humphry Davy. Voľný chlór je prudký jed.
|
|
||||||
Michelagniolo di Ludovico di Buonarroto Simoni alebo Michelangelo Buonarroti (* 6. marec 1475, Caprese – † 18. február 1564, Rím) bol taliansky sochár, maliar, architekt a básnik, ktorého dielom vyvrcholila renesancia a začal sa barok. Je autorom freskovej výzdoby Sixtínskej kaplnky vo Vatikáne a slávnej mramorovej sochy Dávida.
|
|
||||||
Narodil sa v Caprese ako druhý z piatich synov Florenťana Lodovica di Leonardo Buonarroti-Simoni (v tej dobe bol Lodovico starosta obcí Chiusi a Caprese) a Francesci di Neri di Miniato del Sera. V tom istom roku sa rodina presťahovala späť do Florencie.
|
|
||||||
Saturn je šiesta planéta Slnečnej sústavy v poradí od Slnka, po Jupiteri druhá najväčšia z planét. Je známa i z prehistorického obdobia. Pomenovaný bol podľa rímskeho boha Saturna, ktorý je obdobou gréckeho Krona. Astronomický symbol pre Saturn je ♄.
|
|
||||||
Saturn patrí medzi joviálne planéty, to znamená, že nemá pevný povrch, ale len hustú atmosféru, ktorá postupne prechádza do plášťa. Atmosféra je tvorená prevažne vodíkom, ktorý tvorí 96,3 % jej objemu. Viditeľný povrch planéty tvorí svetložltá vrstva mrakov s nejasnými pásmi rôznych odtieňov, ktoré sú rovnobežné s rovníkom. Teplota v hornej oblačnej vrstve dosahuje -140 °C. Objem planéty je 764-krát väčší ako objem Zeme, má však zo všetkých planét najmenšiu hustotu: len 0,6873 g/cm³ a ako jediná planéta v slnečnej sústave je ľahší než voda. Saturn je známy najmohutnejšou sústavou prstencov zo všetkých planét slnečnej sústavy. Jeho hlavné prstence, ktoré sú označené veľkými písmenami možno pozorovať zo Zeme už aj malým ďalekohľadom. Okolo planéty obieha tiež početná rodina mesiacov, z ktorých najväčší je Titan, jediný mesiac v slnečnej sústave s hustou atmosférou.
|
|
||||||
Čierna diera alebo gravitačný kolapsar je koncentráciou hmoty so skoro nekonečnou hustotou, jej gravitačná sila zabraňuje úniku akýchkoľvek častíc s výnimkou efektu nazývaného kvantové tunelovanie. Z toho vyplýva, že nič, ani svetlo nemôže uniknúť gravitácii čiernej diery, preto sa nazýva „čierna“. Pojem čierna diera sa stal zaužívaným, aj keď teória nespomína žiadnu „dieru“ v normálnom slova zmysle, ale oblasť vesmíru, z ktorej nič neunikne.
|
|
||||||
Existenciu čiernych dier predpokladá Einsteinova teória relativity. Podľa klasickej všeobecnej relativity, žiadna hmota ani informácia nemôže prúdiť z vnútra čiernej diery k vonkajšiemu pozorovateľovi. Napríklad nie je možné dostať von žiadnu z jej častí, ani odrazené svetlo od zdroja podobného fotografickému blesku, alebo získať akúkoľvek informáciu o látke, ktorá vstúpila do čiernej diery. Kvantovomechanické efekty však dovoľujú látke energiu vyžarovať z čiernych dier v podobe röntgenového žiarenia, aj keď sa predpokladá, že žiarenie nezávisí od toho, čo do čiernej diery padlo v minulosti.
|
|
||||||
Existencia čiernych dier vo vesmíre je dobre podložená astronomickými pozorovaniami, hlavne zo štúdia supernov, röntgenového žiarenia z aktívneho galaktického jadra a správania hmoty a žiarenia okolo nej.
|
|
||||||
Kukurica siata (Zea mays ssp. mays) je kultúrna plodina pôvodne domestikovaná Indiánmi na území dnešného Mexika. Je to rastlina z čeľade lipnicovitých. Názov „kukurica“ je novotvarom vytvoreným českým botanikom Janom Svatoplukom Preslom.
|
|
||||||
Kukurica je stará rastlina. Spôsob jej domestikácie je jednou zo záhad genetiky. Predpokladá sa, že kukurica vznikla vývojom a selekciou z teosintu (skupina amerických tráv z rodu Zea), s ktorým si však dnes kultúrna kukurica nie je vzhľadovo príliš podobná. Na rozdiel od ostatných kultúrnych plodín nie sú známe žiadne medzistupne medzi divokým predchodcom kukurice a kultúrnou plodinou.
|
|
||||||
Spitzerov vesmírny ďalekohľad je kozmické observatórium, štvrté a posledné z veľkých observatórií NASA. Je určené na pozorovanie objektov v infračervenej oblasti spektra. Ide o najväčší infračervený teleskop, aký bol kedy vypustený do vesmíru. Urobil množstvo objavov, medzi ktoré patrí napr. priame zachytenie svetla exoplanét HD 209458 b a TrES-1, potvrdenie teórie, že galaxia Mliečna cesta je v skutočnosti špirálová galaxia s priečkou, alebo zmapovanie atmosféry exoplanéty HD 189733 b. S jeho pomocou bola vytvorená fotografická mozaika Mliečnej cesty skladajúca sa z 800 tisíc samostatných snímok.
|
|
||||||
John Ronald Reuel Tolkien (* 3. január 1892 – † 2. september 1973) bol anglický spisovateľ, autor knihy The Hobbit (v slovenčine „Hobit“) a jej pokračovania The Lord of the Rings (v slovenčine „Pán prsteňov“), jeho najznámejšej knihy.Bol významným jazykovedcom, znalcom anglosaštiny (starej angličtiny) a starej nórčiny. Na Univerzite v Oxforde pôsobil v rokoch 1925–1945 ako profesor anglosaštiny, v rokoch 1945–1959 potom ako profesor anglického jazyka a literatúry. Spolu s najbližším priateľom C. S. Lewisom sa schádzal v literárnom diskusnom klube Inklings (doslova „Atramentovci“).
|
|
||||||
Tolkienove dielo zahŕňa aj množstvo kníh z pozostalosti o histórii fiktívneho sveta Stredozeme, v ktorej sa Hobit a Pán prsteňov odohrávajú. Pre neutíchajúcu popularitu a vplyv jeho diel je Tolkien považovaný za otca modernej high fantasy. Ostatné Tolkienove publikované fantasy diela sú rozprávky a príbehy, ktoré pôvodne rozprával svojim deťom a netýkajú sa Stredozeme.
|
|
||||||
Usadená hornina alebo sedimentárna hornina je hornina, ktorá vznikla premiestnením, uložením a následným spevnením zvetraných úlomkov (fyzikálny proces), alebo vyzrážaním z roztokov (chemický proces), alebo usadením zvyškov biologickej aktivity (biologický proces). Tieto tri procesy zvyčajne pôsobia v prírodnom prostredí všetky naraz, pričom charakter výsledného sedimentu ovplyvňuje dominantný proces.
|
|
||||||
Usadené horniny sa vyskytujú na zemskom povrchu, kde je ich objem dominantný v porovnaní s inými typmi hornín (vyvretých a premenených). Kým celkový objem sedimentov v zemskom telese je približne 5 %, na povrchu pokrývajú až 75 % a v moriach a oceánoch takmer 100 % ich dna.
|
|
||||||
Ian Fleming (* 28. máj 1908 – † 12. august 1964) bol námorný dôstojník, novinár, bankový úradník a počas druhej svetovej vojny pobočník šéfa tajnej služby v britskom námorníctve. Najznámejší je ale ako tvorca Jamesa Bonda. Ian pochádzal zo známej, váženej a dosť bohatej rodiny. Jeho starý otec bol puritánsky Škót a známy bankár. Otec, plukovník Fleming, padol na fronte v roku 1917 a nekrológ do Timesov za tohto vojaka a člena parlamentu písal sir Winston Churchill.
|
|
||||||
Havária raketoplánu Columbia bola havária, ktorá nastala 1. februára 2003 v závere vedeckej misie STS-107. Bola už druhou haváriou amerického raketoplánu. Stroj sa rozpadol pri vstupe do atmosféry a zahynulo všetkých sedem členov posádky. Spolu s haváriou Challengeru sa zaraďuje medzi najtragickejšie udalosti pilotovanej kozmonautiky. Na rozdiel od tragédie raketoplánu Challenger, nastala havária Columbie nie pri štarte, ale pri jej pristávaní, v okamihu, keď už do bezpečného pristátia ostávalo iba 16 minút. Sled udalostí smerujúcich k havárii sa však začal odohrávať už pri štarte, keď sa v čase 15:40:21 UT odtrhla časť tepelnej izolácie nádrže ET a zasiahla ľavé krídlo raketoplánu na jeho nábežnej hrane.
|
|
||||||
Diaľnica A1 chorv. Autocesta A1, hovor. Dalmatina je najdlhšia, najvýznamnejšia a počas letnej sezóny i najvyťaženejšia chorvátska diaľnica. Po jej trase vedú dve európske cesty: E65 na úseku Záhreb-Bosiljevo a Žuta Lokva-Ravča a E71 na úseku Záhreb-Dugopolje (Split). Diaľnica A1 je dôležitou súčasťou Jadransko-iónskej diaľnice, ktorá v budúcnosti prepojí letoviská na pobreží Jadranského a Iónskeho mora. Z celkovej plánovanej dĺžky 569,3 km je v súčasnosti v prevádzke 457,5 km medzi Záhrebom a Ravčou, pričom diaľnica spája mestá Karlovac, Gospić, Zadar, Šibenik, Split a Makarska. Vo výstavbe je úsek Ravča-Ploče dlhý 20,3 km, ktorý by mal byť po Vrgorac otvorený v roku 2011.
|
|
||||||
Špeciálna teória relativity je fyzikálna teória publikovaná v roku 1905 Albertom Einsteinom. Nahradzuje Newtonove predstavy o priestore a čase a zahŕňa teóriu elektromagnetického poľa reprezentovanú Maxwellovými rovnicami. Teória sa nazýva špeciálnou, lebo opisuje iba zvláštny prípad Einsteinovho princípu relativity, kde sa vplyv gravitácie môže zanedbať. O desať rokov neskôr publikoval Einstein všeobecnú teóriu relativity, ktorá zahrňuje aj gravitáciu.
|
|
||||||
Iguanodon (v preklade zub leguána) je pomenovanie vyhynutého rodu mohutných bylinožravých vtákopanvých dinosaurov, typický vyspelejší iguanodont. Žil pred 135 až 115 miliónmi rokov v spodnej kriede a hojne obýval oblasti súčasnej Severnej Ameriky, rovnako aj západnej Európy. Typickým znakom iguanodonov boli veľké tŕne na palcoch predných končatín.
|
|
||||||
Prvého iguanodona objavil v roku 1822 a popísal o tri roky neskôr anglický geológ Gideon Mantell. Po rode Megalosaurus to bol druhý formálne pomenovaný dinosaurus. Spolu s megalosaurom a hylaeosaurom to bol tiež jeden z rodov, ktoré pôvodne definovali skupinu Dinosauria. Vedecké poznatky o rode Iguanodon sa priebežne vyvíjali podľa toho, ako sa objavovali nové informácie vyplývajúce z nálezov fosílií. Niektoré z nich, medzi nimi aj dve takmer kompletné kostry, umožnili vedcom vytvoriť informačné hypotézy týkajúce sa mnohých aspektov života týchto zvierat, vrátane stravy a sociálneho správania.
|
|
||||||
Gottfried Wilhelm Leibniz (* 1. júl 1646, Lipsko – † 14. november 1716, Hannover) bol nemecký filozof, predstaviteľ novovekého racionalizmu, fyzik, matematik, diplomat, jeden z posledných polyhistorov a iniciátorov ekumenických snáh. Leibnizovi išlo o hľadanie kompromisu medzi apriórnou vedou, teológiou a empirizmom.
|
|
||||||
Leibniz prišiel s pokusom odlišným spôsobom ako Spinoza prekonať descartovský dualizmus.
|
|
||||||
STS-107 bola poslednou misiou raketoplánu Columbia so štartom 16. januára 2003 o 15:39:00 UT a plánovaným pristátím 1. februára 2003, počas ktorého došlo k poškodeniu tepelnej ochrany na krídle. Príčinou poškodenia tepelného štítu bol kus izolačnej peny, ktorý odpadol z externej palivovej nádrže ešte počas štartu raketoplánu. Do raketoplánu vnikla žeravá plazma a spôsobila jeho deštrukciu, pri ktorej zahynuli všetci siedmi členovia posádky.
|
|
||||||
Cieľom letu boli predovšetkým vedecké biologické experimenty v mikrogravitácii. Dôraz sa kládol na lekárske experimenty, ale realizované boli aj pokusy z oblasti technologického a materiálového výskumu. V nákladovom priestore raketoplánu sa nachádzalo laboratórium Spacehab, model RDM (Double Research Module – doslova dvojitý výskumný modul) slúžiace na experimenty v mikrogravitácii a externá prístrojová plošina FREESTAR (Fast Reaction Experiments Enabling Science Technology Applications and Research).
|
|
||||||
Urán je siedma planéta od Slnka, tretia najväčšia a štvrtá najhmotnejšia planéta v slnečnej sústave. Patrí medzi plynné obry a spolu s Neptúnom aj medzi tzv. ľadové obry. Meno má po gréckom bohovi nebies Uranovi, čo je ojedinelé – ostatné planéty sú pomenované po rímskych bohoch. Symboly planéty Urán sú znak ♅ (používaný v astrológii) alebo (používaný v astronómii). Je to najbližšia planéta k Zemi, ktorá nebola ľuďom známa už od staroveku. Aj napriek tomu, že Urán je možné za priaznivých podmienok pozorovať voľným okom na nočnej oblohe, antickí astronómovia ho kvôli pomalej rýchlosti a nízkej jasnosti nepovažovali za planétu, ale za hviezdu. Objav Urána ohlásil William Herschel 13. marca 1781, čím prvýkrát v modernej dobe posunul známe hranice slnečnej sústavy.
|
|
||||||
Chemickým zložením sa Urán podobá Neptúnu. Obe planéty majú rozdielne celkové zastúpenie prvkov oproti Jupiteru či Saturnu. Urán však má podobné zloženie atmosféry ako Jupiter či Saturn. Tvoria ju prevažne plynné formy vodíka a hélia, ale obsahuje aj výrazný podiel vody, amoniaku a metánu so stopami ďalších uhľovodíkov. Atmosféra Urána je najchladnejšou v slnečnej sústave, minimálne teploty sa pohybujú okolo 49 K. Jej štruktúra je vrstevnatá: v najnižších poschodiach sa nachádzajú mraky vody, vo vrchných poschodiach mraky tvorené hlavne metánom.
|
|
||||||
Dóm svätej Alžbety je najväčší kostol na Slovensku s plochou 1 200 m² a kapacitou vyše 5 000 ľudí, a zároveň „najvýchodnejšia“ gotická katedrála v Európe.
|
|
||||||
Nachádza sa v strede Hlavnej ulice v Košiciach, pričom ju formuje do tvaru šošovky. Je hlavným chrámom Košickej rímskokatolíckej arcidiecézy a farským kostolom Farnosti svätej Alžbety v Košiciach. Vonkajšia dĺžka dómu je 60 m, šírka 36 m, výška severnej veže 59 m, hlavnej lode 24 m a bočných lodí 12 m. Stavba vrcholnej gotiky mala značný vplyv na staviteľskú činnosť v okolitých mestách Prešov, Bardejov, Sabinov, Rožňava a ovplyvnila aj výstavbu ďalších chrámov v Poľsku a Sedmohradsku (Sibiu, Brašov a Kluž).
|
|
||||||
Košická gotická katedrála sa začala stavať na konci 14. storočia a ukončenie výstavby sa datuje do roku 1508. Má svätyňu s päťdielnym uzáverom, dve veže, poschodovú sakristiu na severnej strane a dve kaplnky a predsieň na južnej strane. Jedinečná je vnútorná dispozícia chrámu, kde hlavnú loď a štyri bočné lode kríži v polovici ich dĺžky jedna priečna loď rovnakej výšky a šírky ako hlavná loď, s ktorou vytvára grécky kríž. Tým v strede katedrály vzniká objemný centrálny priestor a v exteriéri tri rovnocenné štíty s bohato dekorovanými portálmi, ktoré patria k vrcholom stredovekého kamenárskeho umenia v strednej Európe. Komplex Dómu a priľahlých stavieb Kaplnky svätého Michala a Urbanovej veže bol vyhlásený za národnú kultúrnu pamiatku v roku 1970.
|
|
||||||
Dejiny Košíc sú dejinami druhého najväčšieho mesta Slovenskej republiky, metropoly Východného Slovenska, niekdajšieho hlavného mesta Horného Uhorska, hlavného strediska protihabsburských stavovských povstaní a zároveň sídelného mesta sedmohradských kniežat, protitureckej pevnosti, medzinárodnej kupeckej metropoly a druhého slobodného kráľovského mesta stredovekého Uhorska.
|
|
||||||
Košice sa vyvinuli z trhovej osady slovanského pôvodu v kotli rieky Hornád (na náplavovom kúželi sútoku rieky Hornád a Čermeľského potoka) na styku Slovenského rudohoria a výbežku Panónskej panvy – ktorému neskôr mesto samo dalo meno – Košickej kotliny. Villa Cassa bola najdôležitejšou osadou v regióne s veľkým farským kostolom, o ktorom prvá písomná zmienka pochádza z roku 1230. Okrem pôvodného staroslovenského a maďarského obyvateľstva výraznejšie pribúdali v 13. storočí k národnostnej štruktúre mesta nemeckí osadníci, ktorým boli udeľované lokačné privilégiá už pred rokom 1249. V roku 1290 dostali Košice mestské práva a ako sídlo Kráľovskej komory sa stali najdôležitejším mestom Horného Uhorska.
|
|
||||||
V čase ohrozenia meštianskych slobôd a diaľkového obchodu šľachtickým rodom Omodejovcov v rokoch 1311 – 1312 Košičania vystúpili na svoju obranu a pomohli kráľovi Karolovi Róbertovi oligarchov zlikvidovať. Košice sa stali oporou kráľovskej moci a boli im udelené mnohé hospodárske a právne výhody. Vrcholom kráľovskej priazne bolo Veľké privilégium Ľudovíta Veľkého pre mesto Košice z roku 1347 a udelenie erbu Košíc z roku 1369 – prvého erbu pre právnickú osobu v Európe vôbec.
|
|
||||||
Bratislavský hrad je súbor stavieb v historickom areáli zaberajúcom vrchol návršia na juhozápadnom ostrohu malokarpatského chrbta na ľavom brehu Dunaja v Bratislave. Hradu dominuje monumentálna stavba bývalého kráľovského paláca tvoriaca neodmysliteľnú panorámu hlavného mesta Slovenska. Svojím zástojom v dejinách Veľkej Moravy, Uhorska, Česko-Slovenska a moderného Slovenska predstavuje Bratislavský hrad významný pamätník spoločensko-historického vývoja v tejto oblasti.
|
|
||||||
Hradný areál zaberá temeno nevysokého vŕšku (maximálna výška 213 m n. m.) týčiaceho sa na ľavobrežnom výbežku nad Dunajom. Do hradu možno v súčasnosti vstúpiť tromi bránami. Najznámejšou a v smere od Starého Mesta najfrekventovanejšou je východná Žigmundova brána. Prístup k nej vedie uličkami z podhradia (Beblavého ulicou príp. ulicou Zámocké schody).
|
|
||||||
Nové Zámky sú mesto na Slovensku, ktoré je centrom Novozámockého okresu v Nitrianskom kraji. Nové Zámky sa nachádzajú na brehu rieky Nitra, v strednej časti Podunajskej nížiny.
|
|
||||||
Nové Zámky sa nachádzajú v strednej časti Podunajskej nížiny, ktorá je súčasťou Malej dunajskej kotliny. Mestom preteká rieka Nitra, 6 km východne tečie rieka Žitava a na severe od mesta preteká potok Chrenovka. Väčšia časť mestských kultúrnych pamiatok bola zničených počas druhej svetovej vojny.
|
|
||||||
Oblasť mesta bola obývaná už v mladšej kamennej dobe. Na jeho území sa vyskytli archeologické nálezy keramiky želiezovského typu. Obyvatelia z tohto osídlenia sa zaoberali poľnohospodárstvom a chovom domácich zvierat.
|
|
||||||
Nemecko, dlhý tvar Nemecká spolková republika, skr. NSR, (nem. Bundesrepublik Deutschland, BRD) je spolkový štát v strednej Európe. Susedí s Dánskom, Poľskom, Českom, Rakúskom, Švajčiarskom, Francúzskom, Luxemburskom, Belgickom a Holandskom. Na severe tvoria prirodzenú hranicu Severné more a Baltské more.
|
|
||||||
Hlavným mestom a sídlom vlády je Berlín, niektoré ministerstvá sa nachádzajú aj v Bonne. Politický systém je federálny a organizovaný ako parlamentná demokracia: Podľa definície v ústave (v Nemecku označovanej ako Základný zákon) je Nemecko demokratický a sociálny spolkový štát. Tento štát pozostáva zo 16, čiastočne suverénnych krajín.
|
|
||||||
Po skončení 2. svetovej vojny v roku 1945 bolo územie Nemecka rozdelené na štyri okupačné zóny, ktoré obsadili víťazní Spojenci USA, Spojené kráľovstvo, Francúzsko a Sovietsky zväz. Z okupačných zón vznikli dva nemecké štáty: Nemecká spolková republika a Nemecká demokratická republika. K opätovnému zjednoteniu Nemecka došlo až v roku 1990. Nemecko je zakladajúcim členom Európskej únie.
|
|
||||||
Janko Kráľ (* 24. apríl 1822, Liptovský Mikuláš – † 23. máj 1876, Zlaté Moravce), častokrát označovaný ako básnik-búrlivák, bol slovenský národný buditeľ a jeden z najvýznamnejších a najradikálnejších básnikov štúrovskej generácie.
|
|
||||||
Prvé verše začal písať počas štúdií na bratislavskom lýceu. Spočiatku písal v češtine, neskôr začal používať spisovnú slovenčinu a bol jeden z prvých básnikov, ktorí používali Štúrovu slovenčinu (prvá báseň v Štúrovej slovenčine – Duma bratislavská je práve od Janka Kráľa).
|
|
||||||
Do povedomia verejnosti vstúpil ako autor balád a piesní, no jeho tvorba bola oveľa širšia. Jeho balady, vychádzajúce zo žriediel ľudovej slovesnosti, ktorými sa preslávil, ukázali novú cestu slovenskej poézii.
|
|
||||||
Kráľove básne sú poznačené jeho pesimizmom, ale aj demokratizmom a fatalizmom, prerastajúcim do mesianizmu či až chiliastického mysticizmu. Svojou tvorbou sa radí medzi básnikov z obdobia romantizmu.
|
|
||||||
Bitka pri Termopylách bola jedna z bitiek tretej výpravy Peržanov proti Grékom počas grécko-perzských vojen, medzi spolkom starovekých gréckych mestských štátov, vedeným spartským kráľom Leónidom I. a Achajmenovskou ríšou Xerxa I. Odohrala sa počas troch dní zároveň s bitkou pri myse Artemision, 11. augusta, (príp. 7. augusta alebo 8. – 10. septembra) 480 pred Kr., v úzkom pobrežnom priesmyku zvanom Termopyly.
|
|
||||||
Tak ako starovekí, aj moderní autori spomínajú bitku pri Termopylách ako príklad vlasteneckého boja a obrany domova. Boj obrancov sa používa ako príklad výhod výcviku, dobrej výzbroje a umného využitia vlastností terénu, čo znásobuje účinnosť boja. Tiež sa stal symbolom príkladnej odvahy proti veľkej presile.
|
|
||||||
Bitka pri Termopylách je zrejme najslávnejšou bitkou v starovekých dejinách Európy a opakovane sa na ňu odkazuje v rôznych kultúrnych dielach, od starovekých až po súčasné. Vyskytuje sa v nespočetných príkladoch v slovesnosti, poézii a piesňach, literatúre, filme, televízii a v hrách. Objavuje sa v mnohých knihách a článkoch, ktoré sa zaoberajú jej vojenským významom. Filmy The 300 Spartans (1962) a 300 (2006) boli vytvorené viac či menej na základe skutočných udalostí.
|
|
||||||
Katedrála svätého Martina je pôvodne gotická sakrálna stavba v historickej zóne Bratislavy. Je najvýznamnejším a najväčším kostolom v Bratislave (tretím najväčším na Slovensku) a od roku 2008 diecéznym chrámom bratislavskej arcidiecézy (do tohto roku bol konkatedrálou bratislavsko-trnavskej arcidiecézy). Je jednou z najvýraznejších bratislavských dominánt a po hrade druhým najvyhľadávanejším turistickým objektom hlavného mesta Slovenska.
|
|
||||||
Katedrála svätého Martina je trojloďová stavba halového typu s centrálnou loďou, dvoma postrannými loďami a predstavaným presbytériom. Stavba je orientovaná v smere západ-východ. Na západnej strane je stavba ukončená vstavanou hranolovitou vežou. Z pôdorysu stavby vystupujú tri prístavby – na severnej strane kaplnka sv. Jána Almužníka a kaplnka sv. Anny, na južnej strane tzv. južná predsieň. Halová stavba i sakristia sú zastrešené sedlovou strechou pokrytou hlinenou škridlou.
|
|
||||||
Stavba prešla počas svojej existencie zložitým stavebným vývojom. Miesto, na ktorom súčasný chrám stojí, bolo od nepamäti centrom spoločenského a cirkevného diania v meste. Okrem vlastnej architektúry, vzácnych plastík a interiérového gotického a barokového vybavenia je chrám zaujímavý aj v súvislosti s dôležitými udalosťami národných a uhorských dejín.
|
|
||||||
Malá Fatra je jadrové pohorie na severe Slovenska v Žilinskom kraji. Je súčasťou krajinného celku Fatransko-tatranskej oblasti, ktorá je súčasťou Vnútorných Západných Karpát. Po Vysokých, Nízkych Tatrách a Oravských Beskydách je štvrtým najvyšším pohorím s bohatou a pomerne zachovalou západokarpatskou prírodou. Významnú časť pohoria v krivánskej časti Malej Fatry zaberá Národný park Malá Fatra.
|
|
||||||
Malá Fatra patrí do Fatransko-tatranskej oblasti Západných Karpát. Pôdorys pohoria Malá Fatra predstavuje nepravidelnú elipsu (poetickejšie „krídla motýľa“) s celkovou vzdušnou dĺžkou 52 km a najväčšou šírkou 16 km. Charakteristickým znakom je hlavný hrebeň, ktorý sa kľukatí a vytvára rázsochy oddeľujúce hlboké doliny. V mieste nazývanom Strečniansky priesmyk je pohorie rozdelené riekou Váh na dva geomorfologické podcelky.
|
|
||||||
Na sever od rieky sa nachádza Krivánska Malá Fatra, ktorej veľká časť s rozlohou 22 630 ha je od 1. apríla 1988 národným parkom. Pomenovaná je podľa najvyššieho vrcholu – Veľkého Kriváňa (1 708,7 m n. m.).Na juh od Váhu sa nachádza Lúčanská Malá Fatra, ktorá je pomenovaná podľa jej najvyššieho vrcholu – Veľkej lúky (1 475 5 m n. m.). Lúčanská Fatra je na východe ohraničená riekou Turiec a na západe riekou Rajčianka.
|
|
||||||
Jozef Miloslav Hurban (* 19. marec 1817, Beckov – † 21. február 1888, Hlboké) bol prvý predseda Slovenskej národnej rady, slovenský spisovateľ, novinár, politik a organizátor kultúrneho života slovenského národného hnutia, evanjelický kňaz a vedúca osobnosť slovenského povstania 1848 – 1849.
|
|
||||||
Do národnobuditeľskej, literárnej a kultúrno-organizačnej činnosti sa zapojil v roku 1835. Spolu s Ľudovítom Štúrom, ktorý na neho osobne vplýval, sa stal najaktívnejším členom Společnosti česko-slovanskej a neskôr po jej zrušení i Ústavu reči a literatúry československej. 24. apríla 1836 sa zúčastnil stretnutia štúrovskej mládeže na Devíne, kde prijal slovanské meno Miloslav. V rokoch 1837 – 1840 bol aktívnym členom tajného spolku Vzájomnosť. V roku 1837 vystúpil s tézou o kmeňovej svojbytnosti Slovákov.
|
|
||||||
V júli 1843 sa na jeho fare v Hlbokom uskutočnilo jeho stretnutie so Ľudovítom Štúrom a Michalom Miloslavom Hodžom, na ktorom sa na základe spoločnej dohody rozhodli o prijatí stredoslovenského nárečia za základ celonárodného spisovného slovenského jazyka, ktorý mal slúžiť na zjednotenie národnobuditeľského hnutia, no taktiež ako prostriedok osvety, vzdelanosti a kultúry pre široké vrstvy národa. Vďaka tomu už v druhom vydaní almanachu Nitra v roku 1844 uviedol novú spisovnú slovenčinu, hoci Štúrova kodifikačná gramatika vyšla až o dva roky neskôr. V tom istom roku sa tiež stal zakladajúcim a najaktívnejším členom celoslovenského literárneho a kultúrneho spolku Tatrín.
|
|
||||||
Chrám svätého Jakuba je gotická sakrálna stavba v okresnom meste Levoča v Prešovskom kraji. Spolu s neďaleko stojacou renesančnou mestskou radnicou tvorí dominantu Námestia Majstra Pavla. Je farským kostolom levočskej rímskokatolíckej farnosti.
|
|
||||||
Svojou architektúrou reprezentuje vrcholné dielo gotického stavebného umenia na Slovensku. Jeho zrod môžeme dať do súvisu s veľkým umeleckým prúdom, ktorý sa do strednej Európy začal šíriť v 13. storočí. Architektúra stavby s cennými a výtvarne náročnými dielami sa stala vzorom pre mnohé sakrálne stavby na Spiši. Pozoruhodné a vzácne dielo Majstra Pavla v umeleckej harmónii dopĺňajú nástenné maľby, vytvorené pod vplyvom českej maľby z luxemburského obdobia ako aj diela, v ktorých možno badať vplyv nemeckej výtvarnej školy.
|
|
||||||
Je najväčšou sakrálnou stavbou na Spiši a druhou najväčšou na Slovensku (po košickom Dóme svätej Alžbety). Svojím cenným interiérovým vybavením (kolekcia gotických krídlových oltárov, vzácny mobiliár, viacero jedinečných umeleckých diel) sa radí medzi najcennejšie historické pamiatky u nás. Dôkazom toho je nielen mimoriadna návštevnosť chrámu ale tiež skutočnosť, že aj vďaka nemu bola Levoča v roku 1993 zapísaná do Zoznamu Svetového dedičstva UNESCO (ako súčasť súboru Levoča, Spišský hrad a pamiatky okolia).
|
|
||||||
Esperanto je najrozšírenejší medzinárodný plánový jazyk. Názov je odvodený od pseudonymu, pod ktorým v roku 1887 zverejnil lekár L. L. Zamenhof základy tohto jazyka. Zámerom tvorcu bolo vytvoriť ľahko naučiteľný a použiteľný neutrálny jazyk, vhodný na použitie v medzinárodnej komunikácii. Cieľom nebolo nahradiť národné jazyky, čo bolo neskôr aj deklarované v Boulonskej deklarácii.
|
|
||||||
Hoci žiaden štát neprijal esperanto ako úradný jazyk, používa ho komunita s odhadovaným počtom hovoriacich 100 000 až 2 000 000, z čoho približne 1 000 osôb tvoria rodení hovoriaci. Získalo aj isté medzinárodné uznania, napríklad dve rezolúcie UNESCO či podporu známych osobností verejného života. V súčasnosti sa esperanto využíva pri cestovaní, medzinárodných stretnutiach a kultúrnych výmenách, kongresoch, vedeckých diskusiách, v pôvodnej aj prekladovej literatúre, divadle a kine, hudbe, tlačenom aj internetovom spravodajstve, rozhlasovom a televíznom vysielaní.
|
|
||||||
"Slovná zásoba esperanta pochádza predovšetkým zo západoeurópskych jazykov, zatiaľ čo jeho skladba a tvaroslovie ukazujú na silný slovanský vplyv. Morfémy sú nemenné a je možné ich kombinovať takmer bez obmedzení do rozmanitých slov; esperanto má teda mnoho spoločného s analytickými jazykmi, ako je čínština, zatiaľ čo vnútorná stavba jeho slov pripomína jazyky aglutinačné, ako je japončina, swahilčina alebo turečtina."
|
|
||||||
Marcus Tullius Cicero (* 3. január 106 pred Kr., Arpinium – † 7. december 43 pred Kr., Formie) bol rímsky štátnik, rečník a filozof, autor početných politicko-teoretických, filozofických aj rečníckych spisov. Cicero je považovaný za jedného z najväčších rímskych rečníkov a prozaikov a za jedného z najvýznamnejších starých Rimanov vôbec.
|
|
||||||
Cicero je vnímaný vo všeobecnosti ako jeden z najvšestrannejších vzdelancov, ktorých svetu dala rímska kultúra. Počas svojho života sa Cicero preslávil ako vynikajúci rečník a úspešný právnik, dnes je však oceňovaný predovšetkým ako filozof, humanista a autor politických prác. Jeho filozofické dielo otvorilo Rimanom dvere ku gréckej filozofii. Cicero sám pre ňu vytvoril latinskú slovnú zásobu. Forma latinského jazyka, ktorou Cicero písal, je považovaná za vzor klasickej latinčiny. Dochovaná objemná korešpondencia, z veľkej časti adresovaná jeho blízkemu priateľovi Titovi Pomponiovi Atticovi, slúžila po nasledujúce storočia ako vzor písania listov pre vzdelané vrstvy v Európe. Podľa životopisca Cornelia Nepota obsahovala táto korešpondencia také bohatstvo informácii „o zmýšľaní predných mužov, chybách vojvodcov a búrení vo vláde“, že mohla nahradiť historiografické dielo.
|
|
||||||
Počas búrlivej druhej polovice 1. storočia pred Kr. poznačenej občianskymi vojnami, vzostupmi a pádmi diktátorov, Cicero obhajoval návrat k tradičnej republike. V skutočnom živote sa však nechával unášať raz k jednej raz k druhej politickej strane podľa panujúcej politickej situácie. Gaius Asinius Pollio, významný štátnik a historik Ciceronovej doby, sa o ňom vyjadril: „Kiež by bol schopný zniesť bohatstvo s väčším sebazáporom a nepriateľstvo s väčšou vytrvalosťou!“
|
|
||||||
Spišský hrad je hradná zrúcanina zaberajúca vrchol travertínovej kopy Spišský hradný vrch, tvoriaca dominantu širokého okolia na hlavnom cestnom ťahu spájajúcom východoslovenské regióny Spiš a Šariš. Hrad je národnou kultúrnou pamiatkou a od roku 1993 je ako súčasť pamiatkového súboru Levoča, Spišský hrad a pamiatky okolia zapísaný v Zozname Svetového dedičstva UNESCO.
|
|
||||||
Z polohy hradu priamo vyplývala jeho obranná funkcia. Súčasne mala hradná posádka kontrolovať neďaleké obchodné cesty na Spiš zo všetkých smerov. Hrad bol strediskom Spišskej župy a sídlom správcu kráľovských majetkov na Spiši.
|
|
||||||
Priestory hradu, vysunutej expozícii Spišského múzea, sú verejnosti prístupné. Sprístupnené sú viaceré objekty – na dolnom nádvorí náučná trasa, ktorej súčasťou (popri sprístupnených častiach ochranného hradobného múru) sú zachované a rekonštruované základy kruhovej pevnosti Jiskrových vojsk, ďalej barbakan západnej brány stredného nádvoria zo 14. storočia, základy pravekej stavby kultového charakteru, ako aj základy časti hospodárskych budov zo 17. storočia. V roku 1985 sa sprístupnila v stavebnom komplexe renesančnej arkádovej chodby a západných gotických palácov na hornom hrade historická expozícia, prezentujúca doklady o osídlení hradného brala od najstarších čias až po výstavbu hradu, a na dokumentáciu politickej a vojenskej moci šľachty, s dôrazom na obrannú bojovú techniku hradu v 15. – 16. storočí a na feudálnu justíciu.
|
|
||||||
Milan Rastislav Štefánik (* 21. júl 1880, Košariská, okres Myjava – † 4. máj 1919, Ivanka pri Dunaji) bol slovenský astronóm, politik a generál francúzskej armády. V rokoch 1914 – 1918 organizoval česko-slovenské légie v Srbsku, Rumunsku, Rusku, Taliansku a v roku 1918 protisovietsku intervenciu na Sibíri. Taktiež bol členom Národnej rady v Paríži a prvý česko-slovenský minister vojny.
|
|
||||||
Dňa 4. mája 1919 nastúpil Štefánik na letisku Campoformido pri Udine do lietadla typu Caproni 450 (č. 11 495), sprevádzaný dvoma talianskymi letcami, poručíkom Giottom Mancinelliom Scottim a seržantom Umbertom Merlinom, a mechanikom-rádiotelefrafistom Gabrielom Aggiustom. Cieľom jeho cesty bolo letisko vo Vajnoroch pri Bratislave. Lietadlo však nepristálo, pretože keď sa už blížilo k miestu pristátia, náhle sa zrútilo neďaleko Ivanky pri Dunaji. M. R. Štefánik a všetci členovia posádky boli na mieste mŕtvi.
|
|
||||||
Je pochovaný v mohyle na Bradle, vrcholnom diele architekta Dušana Jurkoviča.
|
|
||||||
Ropa je horľavá kvapalina tvorená zmesou uhľovodíkov, najmä alkánov, nafténov a menej aj arénov a polárnych zlúčenín (živice, asfaltény a iné). Najmä anglická literatúra dodáva, že ropa môže byť okrem kvapalného skupenstva aj plynná alebo tuhá.
|
|
||||||
Je dôležitou nerastnou surovinou a významnou ekonomickou komoditou. Hodnota ropy stúpa po chemickej úprave, kedy sa z nej vyrábajú kvapalné palivá, rozpúšťadlá a mazadlá. Vznikla pravdepodobne rozkladom zvyškov uhynutých rastlín a živočíchov. Nachádza sa vo vrchných vrstvách zemskej kôry, kde je väčšinou viazaná na usadené horniny najčastejšie v oblasti kontinentálnych šelfov. Je základnou surovinou petrochemického priemyslu. Náleziská ropy (rezervoáre) sa najčastejšie nachádzajú pod nepriepustnými vrstvami, v hĺbkach až do 8 km pod zemským povrchom. Ropa pri ťažbe alebo vyviera pod tlakom - ťažba samotokom, alebo sa čerpá - mechanizovaná ťažba. Vyskytuje sa spoločne so zemným plynom a vodou. Z hľadiska slovenskej legislatívy je radená medzi vyhradené suroviny.
|
|
||||||
Enigma bola prenosným elektromechanickým šifrovacím strojom pracujúcim na princípe otáčajúcich sa rotorov. Používala sa v niekoľkých modifikovaných verziách najmä nemeckými ozbrojenými silami pred vypuknutím a počas druhej svetovej vojny. Šifra Enigmy bola Nemcami považovaná za neprelomiteľnú a absolútne bezpečnú, no už v roku 1932 ju prelomili poľskí kryptológovia, ktorých poznatky využili po vypuknutí vojny spojenecké vojská. Informácia o prelomení kódu bola jednou z najtajnejších. O údele Poliakov sa otvorene začalo hovoriť až v roku 1973.
|
|
||||||
Prvé pokusy prelomenia šifry Enigmy vykonávali Francúzi, Angličania a Poliaci už koncom dvadsiatych rokov, ale bez výsledkov. Hlavným problémom rozšifrovania bolo, na svoje časy prevratné, uplatnenie polyalfabetických šifier, v ktorých každé písmeno viditeľného textu je zašifrované pomocou inej permutácie abecedy, čo dovoľuje ukryť jazykové vlastnosti šifrogramu. V lámaní šifier hrajú hlavnú úlohu lingvisti, ktorí v procese kryptoanalýzy vychytávali charakteristické znaky jazyka, také ako častosť opakovania sa písmen, dĺžka výrazov a podobne.
|
|
||||||
Veľkonočný ostrov je ostrov v južnej časti Tichého oceánu patriaci Čile. Leží asi 3 300 km od pobrežia Južnej Ameriky. Je jedným z najviac izolovaných obývaných ostrovov na svete - najbližší obývaný susedný ostrov je ostrov Pitcairn vzdialený 2 075 km. Prvý oficiálne zaznamenaný európsky kontakt s ostrovom je z piateho apríla 1722 (Veľkonočná nedeľa), keď holandský moreplavec Jacob Roggeven v službách Východoindickej obchodnej spoločnosti (Trading West India Company) iba náhodne ostrov objavil a pomenoval ho Veľkonočným ostrovom.
|
|
||||||
Vďaka sochám moai je ostrov známy v celom svete. Sochy boli vytesané v lome na úpätí krátera Rano Raraku. Väčšina sôch zostala v lome a na ceste ku kamenným plošinám nazývaných ahu. V šesťdesiatych rokoch minulého storočia zemetrasenie takmer všetky sochy pováľalo. Nanovo ich postavili Čiľania a Japonci. Nemecký misionár Sebastian Englert očísloval a skatalogizoval 638 sôch, Archeologický prieskum z rokov 1969 – 1976 uvádza 887 sôch. Napriek rozsiahlemu výskumu sôch na ich pravý účel a presné obdobie ich vzniku stále nie sú medzi odborníkmi jednoznačné názory.
|
|
||||||
Vitráže Katedrály svätého Martina v Bratislave sú dôležitou umelecko-historickou pamiatkou najvýznamnejšej sakrálnej stavby Bratislavy. Dnešné vitrážové okná katedrály, pochádzajúce až z obdobia regotizácie chrámu v sedemdesiatych rokoch 19. storočia, predstavujú významný umelecko-historický doklad svojej doby a ako také tvoria tvoria významnú časť chrámovej výzdoby.
|
|
||||||
Celkový počet vitráži radí Katedrálu svätého Martina medzi objekty s ich početne najbohatším zastúpením spomedzi sakrálnych objektov na Slovensku. Celkovo chrám presvetľuje dvadsaťtri vitrážových okien. Spomedzi jednotlivých priestorov je ich najviac vo svätyni a v oboch bočných lodiach – po deväť. Organová empora a južná predsieň majú po jednom okne a tri sa nachádzajú v kaplnke svätej Anny.
|
|
||||||
Vznik okenných vitráží v dóme má úzku spojitosť s obdobím puristickej prestavby chrámového interiéru v druhej polovici 19. storočia. Jej iniciátorom bol dómsky farár a kanonik Bratislavskej kapituly Karol Heiller (farárom v rokoch 1848 – 1889) a Spolok na reštaurovanie bratislavského Dómu (Pressburger Domrestaurirungsverein), ktorý vznikol v roku 1863 na Heillerov popud, a ktorému od počiatku jeho existencie predsedal. Za aktivitami spolku, ktorého poprednými členmi boli mnohé významné osobnosti súdobej Bratislavy, je nielen vznik historizujúcich vitráží ale aj radikálne zmeny vo výzdobe interiéru dómu.
|
|
||||||
Josif Vissarionovič Stalin (* 18. december 1878, Gori – † 5. marec 1953, Kuncevo pri Moskve) bol sovietsky stranícky a štátny činiteľ gruzínskeho pôvodu, generalissimus Sovietskeho zväzu.
|
|
||||||
"Po Októbrovej revolúcii 1917 ľudový komisár pre národnosti (do roku 1923) a robotnícko-roľníckej inšpekcie (1922). V čase občianskej vojny člen Rady robotníckej a roľníckej obrany; v roku 1922 zvolený za generálneho tajomníka Ústredného výboru strany, po Leninovej smrti strhol postupne všetku moc na seba. Podriadil si orgány bezpečnosti a najmä tajnú políciu, pomocou ktorej likvidoval skutočnú aj domnelú opozíciu, násilne budovaná autorita prerástla do kultu osobnosti. Stalinovej podozrievavosti padli za obeť tisíce straníckych a vojenských činiteľov (tresty smrti, pracovné tábory)."
|
|
||||||
Od mája 1941 predseda Rady ľudových komisárov ZSSR, počas 2. svetovej vojny na čele Štátneho výboru obrany a vrchný veliteľ. Ako hlava sovietskej vlády účastník zasadaní najvyšších predstaviteľov protihitlerovskej koalície. Po víťazstve vo vojne upevnil autoritu ZSSR v medzinárodnej politike a z krajín oslobodených Červenou armádou vybudoval sovietsky blok. Ku koncu jeho vlády sa ZSSR zásluhou nukleárnych zbraní a raketovej techniky stal superveľmocou.
|
|
||||||
Veľká Morava bol západoslovanský štát existujúci medzi rokmi 833 a začiatkom 10. stor. (asi 907). Jeho centrálne územie zodpovedalo dnešnej Morave a Slovensku spolu so susediacim severným a stredným Maďarskom. Bol to prvý väčší slovanský štát vôbec. Dnešné Slovensko a dnešné Česko (tým, že sa dnešná Morava stala v roku 1019 súčasťou Českého kniežatstva) ju považujú za včasného predchodcu svojej štátnosti.
|
|
||||||
V oblasti architektúry sa zachovali zvyšky početných, často kamenných, stavieb. K najvýznamnejším nálezískam patria Mikulčice, Uherské Hradiště, Nitru, Bratislavu, Devín, Břeclav – Pohansko, Ducové. V oblasti Nitry a Mikulčíc a Uherského Hradišťa sa nachádzali veľké sídliskové aglomerácie. Sakrálne stavby možno rozdeliť na kvadratické (napr. Martinský vrch v Nitre, Mikulčice), rotundovité (napr. Kostolec pri Ducovom, rotunda v Nitrianskej Blatnici), trikonchálne (Devínsky hrad). Menšie stavby mali charakter vlastníckych kostolov (napr. Ducové, Nitrianska Blatnica), väčšie sa nachádzali v centrách, predpokladá sa existencia kláštorov (Nitra – Zobor). Prostý ľud žil v osadách nadzemných zrubových stavbách a v polozemniciach, lokálni vládcovia na dvorcoch a hradiskách.
|
|
||||||
Veľkomoravskú vzdelanosť reprezentuje predovšetkým veľkomoravské učilište (873 – 885), kultúrny jazyk na Veľkej Morave a staroslovienske písomníctvo: Kyjevské listy, Proglas, preklad Biblie, z právnych prameňov Zakon sudnyj ljudem (Súdny zákon pre laikov (ľud)), Nomokánon, Ustanovenia svätých otcov, Anonymná homília (Napomenutia vladárom) a podobne.
|
|
||||||
Žilina je krajské a okresné mesto na Slovensku na sútoku riek Váh, Kysuca a Rajčanka. Počtom obyvateľov (84 295 osôb) je štvrtým najväčším mestom na Slovensku. Je administratívnym, hospodárskym a kultúrnym centrom severozápadného Slovenska.
|
|
||||||
Do Žilinskej kotliny prišli Slovania v konečnej fáze sťahovania národov v 5. – 6. storočí po Kr. Vytlačili všetko pôvodné obyvateľstvo. Prvý sídliskový objekt – polozemnica sa slovanskou keramikou sa našiel na Frambore. Z nasledujúceho storočia pochádzajú ďalšie štyri objekty. V 9. storočí stál sídliskový objekt z obdobia Veľkej Moravy na Bôriku pri bývalom letnom kine a v jeho okolí už bolo viacero podobných osád dvorcového charakteru.
|
|
||||||
Prvá písomná zmienka o Žiline pochádza z roku 1208, kedy Žilinu tvorilo niekoľko slovenských osád rozptýlených 0,5 – 2 km od Kostola sv. Štefana (v latinsky písanej listine nitrianskeho župana Tomáša sa územie Žiliny nazýva terra de Selinan čiže „Zem Žiliny/Žilinská“). Najväčšia z osád sa pravdepodobne nachádzala na mieste súčasného historického jadra Žiliny. Jej súčasťou bol aj kostol s polkruhovou apsidou nachádzajúci sa na mieste súčasného Farského kostola (Kostola Najsvätejšej Trojice), ktorého základy vytŕčajú spod súčasnej stavby.
|
|
||||||
Vpád vojsk Varšavskej zmluvy do Česko-Slovenska, komunistickou stranou označovaný za vstup spojeneckých vojsk, známy aj ako operácia Dunaj, bol vojenský vpád vojsk piatich socialistických krajín Varšavskej zmluvy na čele so Sovietskym zväzom. Invázne vojská, ktoré na územie ČSSR vstúpili 21. augusta 1968, obsadili väčšinu strategických miest po celej krajine. Operácie sa zúčastnilo asi pol milióna mužov a okolo 5 000 tankov. Operácii velil sovietsky armádny generál I. G. Pavlovskij.
|
|
||||||
Verejnosť v priebehu prvého týždňa vyjadrovala silný odpor k takémuto konaniu spriatelených krajín, sama však nebola schopná konať. Dôsledkom vpádu bolo potlačenie česko-slovenského pokusu o reformu socializmu, obrodného procesu známeho ako Pražská jar. Došlo k zatknutiu a internácii vedúcich česko-slovenských predstaviteľov Dubčeka, Smrkovského, Černíka a ďalších. Invázne jednotky Sovietskej armády zostali v krajine až do roku 1991.
|
|
||||||
Staroveký Egypt bola civilizácia staroveku v severovýchodnej časti Afriky. Rozkladala sa pozdĺž spodného toku rieky Níl, približne v rozsahu, ktorý má dnes územie modernej Egyptskej arabskej republiky.
|
|
||||||
Egyptský štát vznikol približne okolo roku 3000 pred Kr. (podľa konvenčnej chronológie) politickým zjednotením Horného a Dolného Egypta prvými panovníkmi. Jeho dejiny prechádzajú radom stabilných ríší, rozdelených nestabilnými časovými úsekmi, ktoré sa nazývajú prechodné obdobia: Stará ríša starej bronzovej doby, Stredná ríša strednej bronzovej doby a Nová ríša neskorej bronzovej doby. Nepretržite sa rozvíjal takmer tri a pol tisícročia.
|
|
||||||
Egypt dosiahol vrchol počas Novej ríše v ramessovskom období, keď súperil s Chetitskou a Asýrskou ríšou a so štátom Mitanni. Jeho vplyv siahal od Sýrskej púšte na východe, k saharským oázam na západe. Najjužnejšou hranicou ríše bol v tomto období štvrtý nílsky katarakt. Po tomto období začal pomaly upadať. Čelil rôznym inváziám a niekoľkokrát ho okupovali cudzinci (napr. kanaánski Hyksósi, Líbyjci, Núbijci, Asýrčania, Peržania a macedónski Gréci) prevažne v období Tretieho prechodného a Neskorého obdobia. Nakoniec po smrti Alexandra Veľkého jeho satrapa Ptolemaios založil ako Ptolemaios Soter vlastnú ptolemaiovskú dynastiu, ktorá vládla krajine do roku 30 pred Kr., keď sa Egypt stal rímskou provinciou.
|
|
||||||
Devínsky hrad sú zrúcaniny gotického, neskôr slohovo prestavovaného hradu, vypínajúce sa majestátne nad rovnomennou obcou, mestskou časťou Bratislavy (okres Bratislava IV). Zaberajú takmer celé temeno hradnej skaly nad sútokom Dunaja a Moravy.
|
|
||||||
Hrad má jedny z najpohnutejších ale aj najbohatších dejín spomedzi hradných sídel na Slovensku. S existenciou niekdajšieho hradiska sa spája prítomnosť keltského a neskôr rímskeho etnika na našom území. Hrad bol svedkom slávy aj pádu Veľkej Moravy, prvého štátneho útvaru našich slovanských predkov, a bol dôležitou súčasťou sústavy pohraničných pevností Uhorského kráľovstva. Spolu s neďalekým Bratislavským hradom tvorí dvojicu významných reprezentantov našej národnej histórie.
|
|
||||||
Od počiatku novodobých dejín je trvalým symbolom všeslovanskej vzájomnosti a národnej hrdosti Slovákov. Význam hradu našiel odozvu aj v početných umeleckých dielach.
|
|
||||||
Pompeje sú archeologická lokalita na mieste niekdajšieho antického mesta, ležiaca na pobreží Tyrrhenského mora v južnom Taliansku v regióne Kampánia. 24. augusta roku 79 mesto zasiahla, čiastočne zničila a pochovala pod 4 až 6 metrovou vrstvou popola a pemze erupcia sopky Vezuv.
|
|
||||||
Pompeje ležia v jednej z najúrodnejších starovekých oblastí Apeninského polostrova v Kampánii v provincii Neapol. Zo západnej strany obmýva Pompeje more, na východnej strane sú pahorky a na severnej svahy Vezuvu. Po výstavbe Appiovej cesty boli Pompeje spojené s Rímom a južnými časťami Apeninského polostrova, po mori mali spojenie s ostatnými územiami na brehu Stredozemného mora.
|
|
||||||
Objav Pompejí ako aj iných miest v oblasti, v ktorej sa život zastavil výbuchom Vezuvu v auguste roku 79, predstavoval zásadný a rozhodujúci krok v získavaní poznatkov a svete starovekého Ríma na vrchole jeho rozkvetu. Vykopávky v oblasti Vezuvu vyniesli na svetlo nedotknutý obraz života, ktorý nenarušili nasledujúce stáročia. Dôležitosť achelogických nálezov spočíva tiež v tom, že predstavujú hmatateľný príklad rímskej kultúry, ktorá civilizovala všetok vtedajší známy svet, a ktorá v konečnom dôsledku stála na počiatku dnešnej, modernej civilizácie.
|
|
||||||
Merkúr je najbližšia planéta slnečnej sústavy k Slnku a zároveň najmenšia planéta slnečnej sústavy.
|
|
||||||
Merkúr je malá kamenná planéta s povrchom posiatym impaktnými krátermi. Nemá hustú atmosféru, ktorá by dokázala regulovať povrchovú teplotu. Z toho dôvodu jej rozdiel kolíše v rozmedzí +440 °C počas dňa a −180 °C v noci. Napriek tomu, že je Merkúr najbližšie k Slnku, nedrží teplotný rekord medzi planétami slnečnej sústavy. Ten patrí Venuši, ktorá je od Slnka síce ďalej, ale panuje na nej silný skleníkový efekt.
|
|
||||||
Jeho priemer je 38 % priemeru Zeme, čo je 1,4-krát viac ako priemer Mesiaca. Merkúr má vysokú hustotu a slabé, no predsa prítomné magnetické pole. Vytvára ho masívne kovové jadro vo vnútri planéty. Merkúr obieha okolo Slnka najrýchlejšie zo všetkých planét, no jeho rotácia je, naopak, veľmi pomalá. Nemá žiadny mesiac.
|
|
||||||
Pre svoj najrýchlejší pohyb po oblohe zo všetkých planét bol Rimanmi pomenovaný podľa posla bohov Merkúra. Planéta je známa už od staroveku, hoci sa voľným okom ťažšie pozoruje. Keďže sa jeho dráha nachádza vo vnútri dráhy Zeme, nikdy sa na oblohe nevzdiali od Slnka o viac ako 28°, a preto ho možno pozorovať len ráno, krátko pred východom, alebo večer, krátko po západe Slnka. Aj tak môže byť niekedy pomerne nápadným objektom na večernej alebo rannej oblohe.
|
|
||||||
Nórske more (nór. Norskehavet) je okrajové more Atlantického oceánu, ktoré býva niekedy zaraďované k Severnému ľadovému oceánu. Tvorí dôležité spojenie medzi otvoreným severným Atlantikom a Severným ľadovým oceánom. More leží medzi Nórskom, Islandom, súostrovím Špicbergy a ostrovom Jan Mayen a má rozlohu 1,383 milióna km2. Na rozdiel od Severného mora, nadväzujúceho na juhu, a Barentsovho mora na severovýchode nie je šelfovým morom, ale dosahuje hĺbku až 4 000 metrov. Jeho dno je veľmi členité a bohaté na ložiská ropy a zemného plynu, pobrežné vody slúžia ako neresiská mnohým druhom rýb.
|
|
||||||
Dévanágarí (sans. देवनागरी dēvanāgarī, alebo nágarí (sans. नागरी nāgarī) je písmo typu abugida, ktoré sa používa v Indii, Nepále, Tibete a v juhovýchodnej Ázii. Je potomkom guptovského písma, spolu s písmami siddham a šáradá. Východné varianty guptovského písma sa volali nāgarī a prvé ich stopy dokázateľne pochádzajú z 8. storočia po Kr. Okolo roku 1200 ich začalo vytláčať písmo siddham, ktoré prežilo dodnes ako nosič textov tantrického budhizmu vo východnej Ázii, a písmo šáradá, ktoré sa používalo paralelne v Kašmíre. Dévanágarí sa píše zľava doprava, nerozoznáva veľké znaky od malých a má charakteristickú horizontálnu čiaru, ktorá prechádza hornou časťou znakov a spája ich. Dévanágarí je hlavným písmom hindčiny, maráthčiny a nepálčiny. Od 19. storočia je najčastejším písmom na zápis sanskrtu a jazyka páli.
|
|
||||||
Anastasiya Kuzmina (* 28. august 1984, Ťumeň, Sovietsky zväz, dnes Rusko) je slovenská biatlonistka ruského pôvodu. Je dvojnásobnou olympijskou víťazkou v biatlone. Takisto získala na zimných olympijských hrách aj jednu striebornú medailu.
|
|
||||||
Na ZOH 2010 vo Vancouveri vyhrala zlatú medailu v rýchlostných pretekoch na 7,5 km a striebornú v stíhacích pretekoch na 10 km. Víťazstvo z rýchlostných pretekov následne obhájila na Hrách 2014 v Soči. Slovensko reprezentuje od decembra 2008.
|
|
||||||
Sečovce sú mesto na Dolnom Zemplíne, súčasť okresu Trebišov, Košického kraja, Slovenskej republiky. Intravilán mesta sa rozprestiera na úpätí Slanských vrchov, v nadmorskej výške 110 až 160 m. n. m. juhovýchodne od Dargovského priesmyku prechádzajúc z Podslanskej pahorkatiny do Východoslovenskej nížiny. V západovýchodnom smere mestom preteká potok Trnávka, ktorý je hlavným zdrojom pre vodnú nádrž Sečovce. Pre oblasť Sečoviec je charakteristické mierne teplé a suché podnebie s chladnou zimou.
|
|
||||||
Archeologické nálezy dokazujú osídlenie priestoru Sečoviec v paleolite. Predpokladá sa, že Sečovce ako obec existujú nepretržite od 9. storočia, pričom prvá písomná zmienka pochádza z roku 1245.Od roku 1414 sa spomínajú ako mestečko. V 17. storočí sa vďaka rozkvetu remeselníctva a obchodu vyprofilovali na dôležité administratívne a obchodné centrum v Zemplínskej župe. V období od polovice 19. storočia do roku 1928 a v rokoch 1949 – 1960 boli Sečovce sídlom okresu.
|
|
||||||
Ježiš Kristus je ústrednou postavou kresťanstva. Ježiš verejne pôsobil asi od roku 28 ako pocestný kazateľ v oblasti dnešného Izraela a západného brehu Jordánu. Hlásal skorý príchod Božieho kráľovstva a vyzýval k obráteniu a pokániu. Okolo roku 30 ho Rimania v Jeruzaleme ukrižovali.
|
|
||||||
Meno Ježiš pochádza z gréckeho mena Iésus (Ἰησοῦς) polatinčeného v stredovekých verziách Biblie. Iésús sa uvádza v gréckej Septuaginte ako prepis hebrejského mena Jehošua alebo skrátene Ješua (Jahve je spasenie, Spasiteľ, Záchranca). Kresťania považujú Ježiša za Židmi očakávaného Mesiáša, Spasiteľa ľudstva a Božieho Syna.
|
|
||||||
Okrem Biblie existuje niekoľko prameňov, ktoré spomínajú existenciu osoby Ježiša Krista. Žiaden z ich autorov však nebol jeho súčasníkom. Najdôležitejšie z nich sú texty židovského dejepisca Jozefa Flávia, ktorý vo svojich spisoch okrem iného tvrdí: „V tomto čase tam bol Ježiš, múdry človek, ak je vôbec legitímne ho nazývať človekom“. Existuje tiež názor, že táto pasáž bola do diela pridaná neskôr nejakým príliš horlivým kresťanským opisovačom, keďže pasáž je prokresťanská a Flávius bol Žid.
|
|
||||||
Freddie Mercury (* 5. september 1946, Stone Town, Zanzibar – † 24. november 1991, Kensington, Londýn, Anglicko) bol britský producent, spevák a skladateľ, ktorý sa preslávil hlavne ako líder rockovej skupiny Queen. Bol slávny vďaka svojmu okázalému vystupovaniu a charakteristickému spevu v rozsahu štyroch oktáv. Okrem práce so skupinou Queen mal za sebou aj sólové projekty a občas spolupracoval ako producent a hosťujúci hudobník iných umelcov.
|
|
||||||
Zomrel iba jeden deň po zverejnení svojej diagnózy dňa 24. novembra 1991, na bronchopneumóniu po oslabení imunity infikovaním vírusom AIDS. Mercury posmrtne v roku 1992 dostal ocenenie Brit Award za výnimočný prínos pre hudbu. V tom istom roku bol na štadióne v londýnskom Wembley na jeho počesť usporiadaný obrovský koncert.
|
|
||||||
V roku 2001 bol Mercury spolu s ostatnými členmi kapely Queen uviedený do Rokenrolovej siene slávy, od roku 2002 má táto kapela svoju hviezdu na Hollywoodskom chodníku slávy, v roku 2003 sa dostali do Siene slávy hudobných skladateľov, v roku 2004 boli uvedení do Siene slávy Spojeného kráľovstva.
|
|
||||||
Slovenská republika bol štátny útvar v časti územia dnešného Slovenska v rokoch 1939 – 1945, hlavne počas druhej svetovej vojny. Bol to prvý samostatný štát Slovákov v moderných dejinách. Jeho existencia bola silne podmienená snahami Adolfa Hitlera o rozdrobenie Česko-Slovenska. Dnešná Slovenská republika (napriek zhodnému názvu) nie je jeho právnym ani ideologickým nástupcom.
|
|
||||||
Vznikla na území dnešného Slovenska (bez oblastí, ktoré patrili po prvej Viedenskej arbitráži Maďarsku a spočiatku aj bez drobných území pripojených k Poľsku) 14. marca 1939 po predchádzajúcom Hitlerovom rozhovore (dohode resp. pohrození) s Jozefom Tisom a Ferdinandom Ďurčanským 13. marca 1939 v Berlíne. Dovedna nový štát medzinárodne uznalo 27 štátov, medzi nimi bol aj Sovietsky zväz.
|
|
||||||
Najtesnejšie vzťahy mal Slovenský štát v dôsledku okolností svojho vzniku s Nemeckou ríšou. Nemecká ríša bola medzi prvými štátmi, ktoré uznali de facto et de iure Slovenský štát. Nemecko sa zároveň postavilo do pozície ochrancu zvrchovanosti Slovenska.
|
|
||||||
Vpád vojsk Varšavskej zmluvy do ČSSR (krycí názov operácia Dunaj) bol vojenský vpád vojsk štyroch krajín Varšavskej zmluvy na čele so Sovietskym zväzom (ZSSR, Maďarsko, Poľsko, Bulharsko). Vojská NDR sa síce na inváziu tiež pripravili, ale v poslednej chvíli bola ich účasť odvolaná z Moskvy. Invázne vojská, ktoré na územie ČSSR vstúpili 21. augusta 1968, obsadili väčšinu strategických miest. Operácie sa zúčastnilo asi pol milióna vojakov a okolo 5 000 tankov pod sovietskym velením.
|
|
||||||
Verejnosť v priebehu prvého týždňa vyjadrovala silný odpor k takémuto činu spojeneckých krajín, sama však nebola schopná konať. Dôsledkom vpádu bolo potlačenie tunajšieho pokusu o reformu socializmu, procesu známeho ako Pražská jar. Dianie na česko-slovenskej politickej scéne vzbudzovalo obavy sovietskych štátnych predstaviteľov na čele s Leonidom Iľjičom Brežnevom, ktorí sa báli, že prebiehajúci proces by mohol oslabiť vedúcu pozíciu ZSSR v komunistickom bloku. Došlo k zatknutiu a internácii vedúcich predstaviteľov KSČ Alexandra Dubčeka, Josefa Smrkovského, Oldřicha Černíka a ďalších. Invázne jednotky Sovietskej armády zostali v krajine až do roku 1991.
|
|
||||||
Charles Darwin (* 12. február 1809, Shrewsbury, Spojené kráľovstvo – † 19. apríl 1882, Downe, Spojené kráľovstvo) bol britský prírodovedec, ktorý sa zapísal do dejín ako pôvodca teórie evolúcie prirodzeným výberom.
|
|
||||||
Darwinov záujem o prírodné vedy sa rozvinul počas štúdia medicíny (ktoré nedokončil) a neskôr teológie na univerzite v Cambridge a jeho popis tejto cesty z neho urobilo známeho geológa a populárneho autora. Vlastné biologické pozorovania ho inšpirovali k štúdiu transmutácie druhov (premena jedného druhu na iný) a tak v roku 1838 rozvinul svoju teóriu prirodzeného výberu. Keďže si plne uvedomoval, že reakcie na tak „kacírsku“ myšlienku budú mimoriadne negatívne, zveril sa so svojou prácou iba najbližším spolupracovníkom, a ďalej pracoval na zhromažďovaní dôkazov na podporu svojej teórie. V roku 1858 ho však informácia, že Alfred Russel Wallace vypracoval podobnú teóriu, prinútila svoje myšlienky predčasne zverejniť.
|
|
||||||
Jeho kniha O pôvode druhov (orig.názov: „On the Origin of Species by Means of Natural Selection, or The Preservation of Favoured Races in the Struggle for Life“), ktorá vyšla 24. novembra 1859 a ktorá vyvolala debaty na celom svete, dokazovala, že evolúcia zo spoločného predka je základným vedeckým vysvetlením pestrosti prírody.
|
|
||||||
Hviezda alebo zastarano stálica je plazmové (plynné), približne guľovité teleso vo vesmíre, ktoré má vlastný zdroj viditeľného žiarenia, drží ho pokope jeho vlastná gravitácia a má hmotnosť 0,08 až 300 hmotností Slnka. Vo hviezdach je sústredená väčšina viditeľnej hmoty vesmíru. Najbližšou hviezdou k Zemi je Slnko, ktoré je zdrojom väčšiny energie našej planéty. Pri vhodných atmosférických podmienkach sú v noci zo Zeme viditeľné aj iné hviezdy. Kvôli obrovským vzdialenostiam vyzerajú ako množstvo nehybných, viac či menej blikajúcich svetelných bodov.
|
|
||||||
"Pod pojmom hviezda sa v starom chápaní myslel takmer každý objekt na nočnej oblohe ako planéta, kométa atď. okrem Mesiaca. V užšom astronomickom význame sú hviezdy tie kozmické guľovité objekty, ktoré majú vlastný zdroj viditeľného žiarenia. Počas veľkej časti svojej existencie prenesene nazývanej ""život"" je zdrojom tohto žiarenia hviezd termonukleárna fúzia vodíka na hélium v jadre hviezdy. Tá uvoľňuje energiu, ktorá prechádza vnútrom hviezdy a je vyžiarená do vonkajšieho priestoru. Potom, ako hviezda vyčerpá zásoby vodíka, vznikajú vo hviezde chemické prvky ťažšie ako hélium. Pred koncom života môžu hviezdy obsahovať aj degenerovanú hmotu. Astronómovia zisťujú hmotnosť, vek, metalicitu (chemické zloženie) a mnohé ďalšie vlastnosti hviezd pomocou pozorovania pohybu hviezdy vesmírom, svietivosti a analýzou jej žiarenia. Graf porovnávajúci teplotu hviezd s ich svietivosťou, známy ako Hertzsprungov-Russellov diagram, umožňuje zistiť vek a stav vývoja hviezdy."
|
|
||||||
Choroba vyvolaná vírusom Ebola je akútna vírusová choroba ľudí a niektorých zvierat, ktorú vyvolávajú vírusy patriace do rodu Ebolavirus. V MKCH-10 má kód A98.4 a patrí medzi tzv. vírusové hemoragické horúčky. Prejavuje sa vysokými horúčkami, početnými krvácaniami v tele a má vysokú smrtnosť.
|
|
||||||
Predpokladá sa, že choroba pôvodne pochádza zo zvierat (pôvodne asi z netopierov, najmä kaloňov) a kontaktom s telovými tekutinami či orgánmi zvierat sa prenesie na človeka. Následne sa prenáša z človeka na človeka prevažne prostredníctvom priameho telesného kontaktu s chorými (aj mŕtvymi) osobami či živočíchmi alebo prostredníctvom kontaktu s ich krvou alebo inými telovými tekutinami, a to aj ak sa nachádzajú na oblečení alebo iných predmetoch.
|
|
||||||
Prenos z človeka na človeka je zatiaľ jasne doložený len prostredníctvom priameho telesného kontaktu s chorými (aj mŕtvymi) osobami či živočíchmi alebo prostredníctvom kontaktu s ich krvou alebo inými telovými tekutinami. Nakaziť sa možno aj prostredníctvom predmetov, na ktorých sa nachádzajú nakazené telové tekutiny (látky, ihly a podobne), pretože vírus prežije aj mimo tela na predmetoch niekoľko dní.
|
|
||||||
Uhorský karpatský spolok bol prvou turistickou organizáciou v Uhorsku a na Slovensku. Bol založený 10. augusta 1873, dva roky po vybudovaní Košicko-bohumínskej železnice, ktorá umožnila rýchly nárast turistiky v oblasti. Jeho činnosť sa zameriavala predovšetkým na Tatry. Zakladatelia UKS nadviazali na vtedajší trend v západnej Európe a sformovali základy klubovej činnosti a filozofiu skĺbenia športovej aktivity v horách, spoznávania prírody a histórie s dobrovoľníckou činnosťou pri výchove mladých turistov a alpinistov, budovaní turistických chodníkov a turistických chát.
|
|
||||||
V čase založenia mal spolok 345 členov. Jeho členská základňa sa postupne rozširovala, najvyšší počet evidovali v roku 1889 – takmer päťtisíc členov. Sídlom spolku boli postupne mestá Kežmarok (1873 – 1884), Levoča (1884 – 1891) a Spišská Nová Ves (1891 – 1918). Prevzal úlohu organizátora a koordinátora vedecko-výskumnej činnosti na území Vysokých Tatier. Výsledky tejto práce boli systematicky publikované v ročenkách UKS. V rokoch 1874 – 1917 vyšlo 44 zväzkov. Ročenky obsahovali články o horskej turistike, vedeckom výskume, biografie a správy. Spolok neprežil koniec druhej svetovej vojny a nástup komunistického režimu.
|
|
||||||
Peter II. Alexejevič (* 12.(23.) október. 1715 – † 19.(30.) január 1730) bol imperátor Ruska v rokoch 1727 – 1730, syn Alexeja Petroviča, vnuk Petra I. Veľkého.
|
|
||||||
"Na ruskom tróne vystriedal imperátorku Katarínu I. Bol synom cároviča Alexeja Petroviča a nemeckej princeznej Charlotte Christine von Braunschweig-Wolfenbüttel, posledný mužský predstaviteľ dynastie Romanovcov (Romanovci ním vymreli po meči; po praslici vymrel rod Romanovcov Alžbetou I. Petrovnou.) Na ruský trón nastúpil 17. mája 1727 ako jedenásťročný a zomrel ako štrnásťročný na kiahne."
|
|
||||||
Peter II. nemal záujem o vládnutie, sám fakticky nevládol. Reálne moc v krajine držala v rukách Najvyššia tajná rada a obzvlášť najbližší poradcovia imperátora – najskôr Alexander Danilovič Menšikov, po jeho zvrhnutí príslušníci rodu Dolgorukov.
|
|
||||||
Referendum na Slovensku v roku 2015 bolo referendum vyhlásené na sobotu 7. februára 2015. Po spočítaní všetkých okrskov bola účasť 21,41%. Referendum tak nebolo platné.
|
|
||||||
V apríli 2014 organizácia Aliancia za rodinu začala so zberom podpisov na uskutočnenie referenda za ochranu rodiny. 7. novembra 2014 prezident Andrej Kiska referendum vyhlásil na 7. februára 2015.Referendum obsahovalo tri otázky:
|
|
||||||
Róbert Bezák (* 1. marec 1960, Handlová) je slovenský rímskokatolícky biskup, bývalý arcibiskup Trnavskej arcidiecézy a člen Kongregácie Najsvätejšieho Vykupiteľa – Redemptoristov. V období od 1. augusta 2012 do 31. júla 2013 bol výpomocným duchovným vo farnosti Radvaň v Banskobystrickej diecéze. Od novembera 2013 pôsobí v kláštore redemptoristov v talianskom Busollengu.
|
|
||||||
Jeho biskupská vysviacka sa konala 6. júna 2009 v Trnave, svätiteľom bol kardinál Jozef Tomko, spolu so Stanislavom Zvolenským a apoštolským nunciom Mariom Giordanom. Bol najmladším slovenským arcibiskupom a jeho odvolanie po troch rokoch pôsobenia vyvolalo medzi veriacimi aj širšou verejnosťou vlnu reakcií.
|
|
||||||
Pozlátený vek (angl. Gilded Age) je historické obdobie v dejinách Spojených štátov, ktoré trvalo približne od 70. rokov 19. storočia do začiatku 20. storočia. Počas tohto obdobia zažila krajina hospodársky rozmach, ktorý pretvoril jej prevažne agrárny a rurálny charakter na vysoko urbanizovanú priemyselnú veľmoc, čím prekonala dovtedajšieho priemyselného lídra Spojené kráľovstvo. Dôležitým determinantom hospodárskeho rozvoja bola železničná doprava, od ktorej záviselo územné rozširovanie komoditného a spotrebiteľského trhu. V 50. rokoch 19. storočia došlo k vzostupu petrochemického priemyslu, druhú významnú zložku hospodárstva tvorilo hutníctvo, ktorého rozvoj nastal najmä po aplikovaní Bessemerovho procesu. Vrchol americkej hospodárskej a technologickej dominancie predstavoval rýchly nástup nového odvetvia, elektroenergetiky a výroby elektrotechnických spotrebičov. Technologický pokrok spolu s nárastom objemu výroby v relatívne silne konkurenčnom prostredí vyústil do zvýšenia životnej úrovne a nástupu fenoménu voľného času u širokých spoločenských vrstiev.
|
|
||||||
Industrializácia so sebou zároveň priniesla sociálne problémy charakterizované štrajkovými hnutiami za lepšie pracovné podmienky. Politici čelili novým výzvam spojeným so stálym prílevom imigrantov a silnejúcim emancipačným hnutím žien, černochov a Indiánov. Obzvlášť negatívnym javom bol rozširujúci sa lobizmus na federálnej úrovni, ktorý sa popri trustoch využíval ako účinný nástroj netrhovej likvidácie konkurencie.
|
|
||||||
Druhá svetová vojna je dodnes najväčší a najrozsiahlejší ozbrojený konflikt v dejinách ľudstva, ktorý stál život asi 45 až 60 miliónov ľudí. Boje prebiehali v Európe, Ázii a Afrike a zúčastňovali sa na nich muži i ženy aj z oboch ďalších obývaných kontinentov: Ameriky a Austrálie. Počas šiestich rokov trvania zomreli desiatky miliónov civilistov, milióny príslušníkov ozbrojených síl, boli zničené celé mestá a spôsobené nevyčísliteľné škody na majetku a kultúrnom dedičstve ľudstva. Ich bezprostrednými príčinami bolo napätie vyvolané chybne koncipovanou Versaillskou zmluvou, veľká hospodárska kríza na prelome 20. a 30. rokov, ktorá kriticky oslabila všetky štáty a ich vlády ako aj slabosť Spoločnosti národov a mocností, ktoré mali udržovať svetový mier a dohliadať na dodržovanie versaillského systému, čo v Nemecku umožnilo vzostup nacistického režimu pod vedením Adolfa Hitlera a jeho stúpencov.
|
|
||||||
Najčastejšie uvádzaným dátumom začiatku druhej svetovej vojny v Európe je 1. september 1939. V tento deň Wehrmacht vpadol do Poľska. Na ázijskom bojisku sa za začiatok vojny považuje japonská invázia do Číny (7. júl 1937), ale niektoré zdroje uvádzajú oveľa skorší dátum: rok 1931, kedy Japonci vtrhli do Mandžuska. 22. júna 1941 Nemecko napadlo Sovietsky zväz, ktorý sa pridal na stranu Spojencov. Spojené štáty, ktoré už predtým pomáhali Spojeneckým krajinám sa do vojny zapojili 7. decembra 1941 potom, čo bola Japoncami napadnutá ich námorná základňa v Pearl Harbore. Koniec vojny v Európe nastal 8. mája 1945 kapituláciou Nemecka. V Ázii kapitulovalo Japonsko 2. septembra toho istého roku po americkom zhodení dvoch atómových bômb na mestá Hirošima a Nagasaki.
|
|
||||||
Titus Flavius Vespasianus (* 17. november 9, Falacrina – † 23. jún 79, Aquae Cutiliae) bol rímsky cisár vládnuci od 1. júla 69 do 23. júna 79, zakladateľ flaviovskej dynastie, pôvodne politik a generál rímskych légií. Na rozdiel od predchádzajúcich cisárov neoplýval urodzeným pôvodom – bol príslušníkom jazdeckého stavu (equites), teda triedy nižšej než senátorská.
|
|
||||||
Prvý veľký úspech získal počas rímskej expanzie do Británie v rokoch 43 – 44, kedy s légiou II Augusta zvíťazil – podľa rímskeho dejepisca Suetonia – až v 30 bitkách a obsadil vyše 20 miest. V roku 66 ho cisár Nero uvalil do exilu po tom, čo Vespasianus zaspal na Nerovom divadelnom vystúpení. Avšak už nasledujúci rok bol povolaný späť do aktívnej služby. Získal správcovstvo nad východnou provinciou Judeou, aby potlačil židovské povstanie proti rímskej nadvláde. Podarilo sa mu ovládnuť celú provinciu s výnimkou hlavného mesta Jeruzalema a troch odľahlejších povstaleckých pevností, ktoré dobyl až jeho syn Titus. Vespasianus sa totiž po Nerovej smrti usiloval získať titul cisára. S pomocou spojencov porazil vojsko samozvaného cisára Vitellia a v októbri 70 slávnostne vstúpil do Ríma.
|
|
||||||
Obdobie jeho vlády sa považuje za pokojné, keďže vojnové konflikty boli ojedinelé a lokálneho charakteru. Posilnil politické postavenie provincií, čo viedlo k zrýchleniu ich hospodárskemu rastu, a začal so stavbou Flaviovského amfiteátra, dnes známeho ako Koloseum.
|
|
||||||
Diaľnica D1 (D1) je najvýznamnejšia a najdlhšia slovenská diaľnica, ktorá po svojom dokončení spojí Bratislavu s hraničným priechodom Záhor na štátnej hranici s Ukrajinou cez Trnavu, Trenčín, Žilinu, Poprad, Prešov, Košice a Michalovce. Je súčasťou vetvy „A“ 5. paneurópskeho koridoru s trasou (Terst) – Bratislava – Žilina – Košice – (Užhorod – Ľvov) a európskych ciest E50, E58, E75, E442 a E571.
|
|
||||||
Diaľnica D1 je vo výstavbe od roku 1972 a v súčasnosti je z nej sprevádzkovaných 336 kilometrov, čo je 65 percent z celkovej plánovanej dĺžky 515,621 kilometra. Dnes je v prevádzke alebo vo výstavbe 95 percent z celkovej dĺžky diaľnice medzi Bratislavou a Košicami. I napriek rôznym stanoveným termínom jej dokončenia z minulosti (roky 1990, 2000, 2005, 2010 či 2013) bude prejazdná v celej svojej dĺžke najskôr až v roku 2025. Výstavba diaľnice je náročná najmä v kopcovitom teréne medzi Žilinou a Prešovom. Len medzi týmito dvoma mestami sa v budúcnosti bude nachádzať až jedenásť tunelov s celkovou dĺžkou takmer 27 kilometrov. Dvanásty tunel Dargov sa bude nachádzať východne od Košíc a vo výstavbe bude najskôr v roku 2015. V súčasnosti sú z týchto dvanástich tunelov v prevádzke len tri – Tunel Branisko (4 975 m), Tunel Lučivná (250 m) a Tunel Bôrik (999 m). Vo výstavbe je momentálne Tunel Šibenik (591 m), Tunel Čebrať (2 026 m), Tunel Ovčiarsko (2 367 m), Tunel Žilina (687 m) a Tunel Višňové (7 520 m). Najdlhší z tunelov na diaľnici D1 bude práve Tunel Višňové, ktorý bude merať 7 520 metrov a bude sa nachádzať medzi Žilinou a Martinom. Okrem tunelov sú vybudované a ďalej sa budujú mnohé mosty, viadukty a estakády, z ktorých najdlhšou je Estakáda Hričovský kanál, ktorá je so svojou dĺžkou 1 695 metrov jedným z najdlhších cestných mostov na Slovensku.
|
|
||||||
"Napoleon Bonaparte alebo Napoleon I. (franc. Napoléon Bonaparte; * 15. august 1769, Ajaccio, Korzika – † 5. máj 1821, Longwood, Svätá Helena) z rodu Bonaparte bol francúzsky generál a popredný politik. Jeho význam začal stúpať v neskorých štádiách Francúzskej revolúcie. Ako cisár Napoleon I. stál na čele Francúzska v rokoch 1804 až 1815. Jeho reforma občianskeho práva, Code civil des Français, značne ovplyvnila kontinentálne právne systémy. Najznámejšia je však úloha, ktorú zohral vo vojnách vedených proti európskym mocnostiam, označovaných ako napoleonské vojny. Ovládol väčšinu kontinentálnej Európy, šíriac ideály Francúzskej revolúcie, ale zároveň konsolidoval imperiálnu monarchiu, ktorá niesla znaky prekonaného sociálneho a politického systému Ancien Régime. Vďaka úspechom v týchto vojnách, často proti početne silnejším protivníkom, je všeobecne považovaný za jedného z najväčších vojenských veliteľov všetkých čias a jeho kampane sú súčasťou štúdia na vojenských akadémiách celého sveta."
|
|
||||||
"Napoleon sa narodil na ostrove Korzika rodičom zo starej šľachtickej rodiny pôvodom z Janova. Na pevninskom Francúzsku získal vzdelanie a hodnosť dôstojníka delostrelectva. Jeho meno sa dostalo do popredia počas prvej francúzskej republiky, keď viedol úspešné vojenské kampane proti prvej a druhej protifrancúzskej koalícii. V roku 1799 zinscenoval tzv. prevrat 18. brumaira a vyhlásil sa za prvého konzula; o 5 rokov neskôr ho francúzsky senát vyhlásil za cisára. V prvej dekáde 19. storočia bolo prvé Francúzske cisárstvo pod jeho vládou zatiahnuté do viacerých vojenských konfliktov, do ktorých sa väčšou či menšou mierou zapojila každá hlavná európska mocnosť."
|
|
||||||
Po sérii víťazstiev si Francúzsko zabezpečilo dominantné postavenie v centrálnej Európe. Napoleon udržiaval jeho sféru vplyvu prostredníctvom vytvárania početných spojenectiev a dosadzovaním svojich priateľov a rodinných príslušníkov do čela svojich európskych satelitov. Napriek tomu, že ich vládnutia neprežili jeho pád, jeho synovec Napoleon III. neskôr vládol vo Francúzsku v 19. storočí.
|
|
||||||
Španielska vojna za nezávislosť a jeho ruské ťaženie v roku 1812 sa stali bodom obratu kariéry Napoleona Bonapate. Jeho Grande Armée utrpela počas kampane ťažké straty a už nikdy sa z toho úplne nespamätala. V roku 1813 ho šiesta koalícia porazila v bitke národov pri Lipsku. Nasledujúci rok koalícia vpadla do Francúzska, donútila Napoleona abdikovať a poslala ho do exilu na ostrov Elba. O necelý rok neskôr však z ostrova utiekol a v Paríži obnovil cisárstvo (tzv. stodňové cisárstvo). V júni 1815 bol definitívne porazený v bitke pri Waterloo. Posledných šesť rokov svojho života strávil vo vyhnanstve na ostrove Svätá Helena. Po jeho smrti v roku 1821 pitva stanovila ako príčinu smrti rakovinu žalúdka. Tento záver vyvolal dlhotrvajúce diskusie, pretože niektorí vedci sa domnievajú, že sa v skutočnosti stal obeťou otravy arzénom, čo však súčasné výskumy vyvracajú.
|
|
||||||
Rómovia sú skupinou obyvateľstva, etnikom alebo národom žijúcim v menších či väčších spoločenstvách po celom svete. Najviac ich žije v mnohých európskych, ázijských a afrických krajinách.
|
|
||||||
"Za najstaršiu písomnú zmienku o Rómoch v Európe sa považuje záznam z roku 1068 v gruzínskom spise Život svätého Juraja Athonského, autorom ktorého je jeho žiak Juraj Hucesmonazoni (Malý) v kláštore Iberon na svätej hore Athos na ostrove Chalkidiki v Grécku. V rukopise opisuje príhodu na dvore byzantského cisára Konštantína Monomacha, ktorý si v roku 1050 povolal do svojho sídla - Konstantinopolu skupinu ""čarodejníkov"", aby kúzlami zničili dravé šelmy v jeho poľovných revíroch."
|
|
||||||
Po roku 1989 sa Rómovia v mnohých ukazovateľoch (napríklad zamestnanosť) stále viac prepadávali pod celoslovenský priemer. Naopak v iných ukazovateľoch (kriminalita) prekračovali celoslovenský priemer a ocitli sa na okraji spoločnosti, ktorá ich stále viac segregovala v spoločenskej a priestorovej rovine. Nad touto úrovňou bola len úzka skupina vzdelaných Rómov, ktorí sa začlenili do majoritnej spoločnosti a ktorá ich aj akceptuje.
|
|
||||||
Big Bang (kórejsky: 빅뱅, často štylizované ako BIGBANG) je juhokórejská chlapčenská skupina založená spoločnosťou YG Entertainment. Líder G-Dragon, T.O.P, Tchäjang, Däsong a Sungri oficiálne debutovali ako 5-členná skupina 19. augusta 2006. Prevažne hip-hopová skupina uspela so svojím prelomovým hitom „Lies“, ktorý ostal 7 týždňov za sebou na prvom mieste v hlavných kórejských hudobných rebríčkoch. V roku 2007 dostali ocenenie „Pieseň roka“ na Mnet Korean Music Festival.
|
|
||||||
Ich ďalšie vydané hity ako „Last Farewell“ a „Haru Haru“, ktoré tiež ovládli hudobné rebríčky, ešte viac zvyšovali ich úspech a popularitu. Po tom, čo Big Bang vyhrali v roku 2008 na Mnet Korean Music Festival cenu „Umelec roka“, rozšírili svoje pôsobenie aj do Japonska, kde na 9. ročníku MTV Video Music Awards Japan získali tri ocenenia. Počas svojich aktivít v Japonsku členovia začali so sólovými aktivitami. Tchäjang a G-Dragon vydali sólové albumy, G-Dragon a T.O.P vytvorili duo, Sungri a Däsong hrali v muzikáloch a hostili varieté a z T.O.P-a sa stala uznávaná filmová hviezda.
|
|
||||||
Po dvojročnej pauze sa Big Bang v roku 2011 opäť vrátili na juhokórejskú hudobnú scénu so svojím úspešným albumom Tonight. Ale propagačné akcie boli skrátené, keď sa niektorí z členov dostali do rozporu so zákonmi. Koncom roka sa Big Bang stali víťazmi v kategórii „Najlepší celosvetový interpret“ na MTV Europe Music Awards. Tri mesiace po ocenení v Európe vydali svoj najúspešnejší album Alive, ktorý bol prvým kórejským albumom, čo sa umiestnil v Billboard 200. Následne začali svoje prvé svetové turné, ktoré vyvrcholilo začiatkom roka 2013. Big Bang sú označovaní ako „Národná chlapčenská skupina“ a účasťou členov, predovšetkým G-Dragona, na skladaní a produkcii vlastnej hudby si vyslúžili v hudobnom priemysle rešpekt a uznanie. Momentálne držia rekord na Cyworld ako najpredávanejší umelec všetkých čias.
|
|
||||||
Ľudovít Štúr (* 28. október 1815, Uhrovec, Rakúske cisárstvo – † (12. január 1856, Modra, Rakúske cisárstvo) bol slovenský politik, filozof, historik, jazykovedec, spisovateľ, básnik, publicista, redaktor a pedagóg.
|
|
||||||
Ľudovít Štúr bol jeden z najvýznamnejších predstaviteľov slovenského národného života a vedúca osobnosť slovenského národného obrodenia v prvej polovici 19. storočia, kodifikátor spisovného slovenského jazyka založeného na stredoslovenských nárečiach (okolo roku 1843), jeden z vedúcich účastníkov Slovenského povstania v rokoch 1848 – 1849 a poslanec uhorského snemu za mesto Zvolen v rokoch 1847 – 1848.
|
|
||||||
Washingtonská deklarácia, oficiálne Declaration of Independence of the Czechoslovak Nation by its Provisional Government (v preklade z angl. „Deklarácia nezávislosti československého národa jeho Dočasnou vládou“) bola deklarácia zahraničného odboja Čechov a Slovákov vyhlasujúca zvrchovanú a nezávislú Československú republiku („The Czechoslovak State [...] a republic“).
|
|
||||||
Tomáš Garrigue Masaryk začal na vyhotovení deklarácie intenzívne pracovať po tom, čo sa dozvedel o iniciatíve rakúsko-uhorského cisára Karola I., ktorý prostredníctvom pripravovaného Národného manifestu (nem. Völkermanifest) prisľuboval federalizáciu Rakúska a celkové zlepšenie postavenia národov v monarchii. Deklaráciu skoncipoval spolu so svojimi americkými kolegami vo Washingtone, D.C., pričom ich hlavnou inšpiráciou bola Deklarácia nezávislosti Spojených štátov. Koncept bol doručený ministrovi zahraničných vecí Spojených štátov Robertovi Lansingovi ešte 16. októbra, „z dôvodu neúprimných prísľubov vlády Rakúsko-Uhorska reorganizovať cisárstvo.“ 19. októbra bol text deklarácie uverejnený v americkej tlači, súčasne s Karolovým memorandom. V odpovedi na rakúsko-uhorskú mierovú nótu, odoslanú ešte 18. októbra, Spojené štáty oficiálne odmietli Karolove požiadavky. Prezident Woodrow Wilson vyzval Rakúsko-Uhorsko rokovať priamo so zástupcami jednotlivých národov. Hoci sa v diplomatických kruhoch Dohody ešte vyčkávalo na rakúsko-uhorskú reakciu, správa o Wilsonovom postoji bola prijatá s veľkým nadšením v odboji, najmä u československých legionárov na Sibíri.
|
|
||||||
Veľká medvedica (Ursa Major, pôvodne Ursa Maior) niekedy stotožňovaná s Veľkým vozom je súhvezdie severnej oblohy. Je to najväčšie súhvezdie severnej oblohy, presnejšie najväčšie súhvezdie ležiace celé na severnej oblohe, a po Hydre a Panne tretie najväčšie súhvezdie vôbec. Výraznou časťou súhvezdia je známy obrazec Veľký voz, laikmi často považovaný za súhvezdie, ktorý je však len malou časťou Veľkej medvedice.
|
|
||||||
V súhvezdí Veľkej medvedice je výrazná skupina hviezd, ktorá pripomína veľkého medveďa s neprirodzene dlhým chvostom. Medvedí chvost a časť chrbta a zadnice obsahuje sedem obzvlášť jasných hviezd vytvárajúcich známy obrazec Veľkého voza. Veľký voz je jedným zo základných orientačných obrazcov na nočnej oblohe pre obyvateľov severnej pologule. Pozorovateľom slúži ako pomôcka na nájdenie hviezd Polárky, Arktúra a ďalších hviezd a súhvezdí. Z územia Slovenska vidíme obrazec Veľkého voza po celý rok, no jeho poloha sa postupne mení – najvyššie býva počas jarných večerov, najnižšie počas jesenných večerov. Keďže v priebehu roka i noci krúži okolo pólu, patrí medzi takzvané cirkumpolárne, čiže okolopólové súhvezdia.
|
|
||||||
K vzniku súhvezdia sa v rozličných kultúrach viaže mnoho bájí. Najznámejšia je však grécka legenda, podľa ktorej je Veľká medvedica zakliata princezná Kallisto (Kalistó). Mytologicky je Veľká medvedica spojená s ďalšími súhvezdiami – predovšetkým s Malou medvedicou, ale tiež s Pastierom a Poľovnými psami. Veľká medvedica je známa prítomnosťou dvojhviezdy Mizar a Alcor, ktoré slúžili oddávna ľuďom ako skúška ostrosti zraku. Toto rozľahlé súhvezdie obsahuje na svojej ploche tiež niekoľko známejších galaxií a ďalších objektov.
|
|
||||||
"Turbodúchadlo, správne plniaci turboagregát, hovorovo turbo, z gréckeho ""τύρβη"" (turbulencia) je turbínou poháňané dúchadlo, ktoré stláča plyn. K veľkému rozšíreniu tohto zariadenia došlo vďaka použitiu v spaľovacích motoroch kvôli zvýšeniu celkového výkonu pomocou zväčšenia množstva nasávaného vzduchu, ktorý s palivom vchádza do spaľovacích priestorov motora. Hlavnou výhodou turbodúchadiel je významný nárast výkonu, spojený iba s malým zvýšením hmotnosti. Turbodúchadlo využíva nevyužitú energiu výfukových plynov prúdiacich z motora, a tým zvyšuje celkovú účinnosť pohonnej jednotky. Nevýhodou je to, že pri benzínových motoroch sa pri použití turbodúchadla musí znižovať kompresný pomer aby nedochádzalo k samovznieteniu paliva. To potom nepriaznivo vplýva na účinnosť motora v nízkych otáčkach, kedy turbodúchadlo nedodáva potrebné množstvo vzduchu. Naftové motory týmto problémom netrpia, lebo sú principálne založené na samovznietení paliva – nafty. Pre obidva typy motorov však turbodúchadlo predstavuje veľkú výhodu vo vyšších nadmorských výškach, kde je nižší tlak vzduchu. Tento dôvod bol aj príčinou vývoja tohto zariadenia pôvodne pre letecké motory."
|
|
||||||
Deoxyribonukleová kyselina alebo dezoxyribonukleová kyselina alebo kyselina de (z) oxyribonukleová, skr. DNK alebo najčastejšie DNA (angl. deoxyribonucleic acid) je prírodný polymér zložený z deoxyribonukleotidov. Spolu s kyselinou ribonoukleovou (RNA) patrí medzi nukleové (jadrové) kyseliny. Nukleové preto, lebo boli objavené v bunkovom jadre (lat. nucleus).
|
|
||||||
DNA je nositeľkou genetickej informácie bunky, riadi rast, delenie a regeneráciu bunky. Väčšinou je DNA v bunke uložená ako dvojzávitnicová špirála, ktorej vlákna majú navzájom opačnú orientáciu fosfodiesterových väzieb (sú antiparalelné). Dvojzávitnica DNA je veľmi tenká, ale zároveň dosahuje veľkú dĺžku, ktorá mnohonásobne presahuje dĺžku celej bunky. Preto je v bunke veľmi poohýbaná a zvinutá. Prokaryotické organizmy, mikroorganizmy bez bunkového jadra, majú iba jednu pre život nevyhnutnú molekulu DNA v bunke. Je umiestnená voľne v cytoplazme a jej konce sú väčšinou spojené. Eukaryotické organizmy, organizmy s jadrom, majú hlavnú časť DNA v jadre, kde tvorí niekoľko oddelených molekúl, spravidla s voľnými koncami. Okrem hlavnej DNA, označovanej ako chromozomálna DNA, majú organizmy menšie molekuly DNA uložené v bunkových organelách, alebo v krátkych do kruhu uzavretých úsekoch umiestnených v cytoplazme, tzv. plazmidoch. Genetická informácia zapísaná v DNA sa realizuje prostredníctvom dvoch základných krokov, a to transkripcie a translácie.
|
|
||||||
"Koncentračný tábor Auschwitz-Birkenau (nem. Konzentrationslager Auschwitz-Birkenau) bol najväčší nemecký vyhladzovací tábor v dobe nacizmu. Bol zriadený roku 1941 asi 3 km od zajateckého tábora Auschwitz I, v dedine Brzezinka (nem. Birkenau, slov. Brezinka) neďaleko poľského mestečka Osvienčim, asi 60 km západne od Krakova. Do koncentračného tábora Auschwitz-Birkenau bolo deportovaných približne 2,5 milióna ľudí. Odhaduje sa, že asi 1,1 milióna z nich tam bolo zavraždených. Asi 900 000 deportovaných hneď po príjazde poslali do plynových komôr alebo zastrelili; asi 200 000 zomrelo na následky chorôb, podvýživy, týrania, lekárskych pokusov alebo neskoršieho splynovania. „Auschwitz“ sa stal symbolom holokaustu, genocídy asi 6 miliónov európskych Židov a ďalších obetí: Rómov, ruských a poľských nútených robotníkov, homosexuálov a ďalších „nepriateľov národného socializmu“. V roku 1979 bol koncentračný tábor zapísaný do Zoznamu svetového dedičstva UNESCO."
|
|
||||||
Výstavba tábora sa začala v októbri 1941 na území hornosliezskej obce Brezinka (poľ. Brzezinka, nem. Birkenau), z ktorej bolo jej pôvodné obyvateľstvo vysídlené a domy boli buď prestavané pre potreby tábora alebo zbúrané. Práce začali sovietski vojnoví zajatci, privezení z hlavného tábora Auschwitz I. Práce sa začali pravdepodobne na rozkaz Himmlera, ktorý miesto navštívil v marci 1941. V nacistických dokumentoch mal tábor až do jari 1944 štatút zajateckého tábora (nem. Kriegsgefangenenlager), aj napriek tomu, že túto funkciu v podstate nikdy neplnil. V období autonómie tábora trvajúcej od novembra 1943 do novembra 1944 boli jeho veliteľmi SS-Sturmbannführer Friedrich Hartjenstein (november 1943 – 8. máj 1944) a neskôr SS-Hauptsturmführer Josef Kramer (8. máj 1944 – 25. november 1944).
|
|
||||||
Slnko je hviezda našej planetárnej sústavy. Planéta Zem obieha okolo Slnka. Je to naša najbližšia hviezda a zároveň najjasnejšia hviezda na oblohe. Gravitačné pôsobenie Slnka udržiava na obežných dráhach okolo Slnka všetky objekty slnečnej sústavy. Jeho energia je nevyhnutná pre život na Zemi. Astronomický symbol pre Slnko je kruh s bodom vo vnútri (v Unicode ).
|
|
||||||
Slnko patrí medzi hviezdy hlavnej postupnosti, čo znamená, že v jeho jadre prebieha premena vodíka na hélium a že vďaka tomu zostáva dlhodobo stabilné. Jeho spektrálny typ je G2, čo znamená, že ide o žltú hviezdu. Hmotnosť Slnka (2×1030 kg) predstavuje 99,87% hmotnosti celej slnečnej sústavy. Na všetky telesá Slnečnej sústavy dopadá elektromagnetické žiarenie zo Slnka, ktoré dosahuje celkový žiarivý výkon 3,826.1026 W. Vďaka tomuto žiareniu je možný život na Zemi. Väčšina telies vrátane všetkých planét obieha Slnko v smere jeho rotácie. Tento smer sa nazýva aj priamy (prográdny) smer a je dedičstvom po rotácii pôvodnej pracho-plynovej hmloviny, z ktorej všetky telesá slnečnej sústavy vznikli. Všetky ostatné telesá v slnečnej sústave sú viditeľné len vďaka tomu, že odrážajú slnečné svetlo, alebo žiaria preto, lebo boli k žiareniu vybudené slnečnou energiou (napr. kométy alebo polárna žiara).
|
|
||||||
Slovensko, dlhý tvar Slovenská republika, je vnútrozemský štát v strednej Európe s rozlohou 49 036 km² a ca 5 430 000 obyvateľmi. Hraničí s Českom (251,8 km), Rakúskom (107,1 km), Poľskom (541,1 km), Ukrajinou (97,8 km) a Maďarskom (654,8 km). Hlavným a najľudnatejším mestom je Bratislava.
|
|
||||||
Prvý štátny útvar Slovanov na území dnešného Slovenska bola Samova ríša (7. storočie), neskôr Nitrianske kniežatstvo (začiatok 9. storočia), ktorého spojením s Moravským kniežatstvom vznikla v roku 833 Veľká Morava. Od polovice 10. do konca 11. storočia sa územie Slovenska postupne začlenilo do Uhorska, ktoré sa v roku 1526 stalo súčasťou Rakúskej monarchie, od roku 1867 nazývanej Rakúsko-Uhorsko. Po rozpade Rakúsko-Uhorska v roku 1918 bolo Slovensko súčasťou Česko-Slovenska až do roku 1993 (de facto okrem obdobia Slovenskej republiky rokov 1939 – 1945). 1. januára 1993 vznikla rozdelením tohto štátneho útvaru samostatná Slovenská republika.
|
|
||||||
Slovenská republika je parlamentnou demokratickou republikou, štátnym jazykom je slovenčina. Od 29. marca 2004 je Slovensko členom Organizácie Severoatlantickej zmluvy, od 1. mája 2004 členom Európskej únie a od 21. decembra 2007 členom Schengenského priestoru. Od 1. januára 2009 je 16. členom Európskej menovej únie (eurozóny) a oficiálnou menou sa stalo euro, ktoré vystriedalo slovenskú korunu.
|
|
||||||
Dôkaz je v matematike presvedčivá demonštrácia, že nejaké tvrdenie je za určitých predpokladov (axióm) nevyhnutne pravdivé. Matematický dôkaz musí byť založený výlučne na nespochybniteľných pravidlách rozumu, ktoré sú vyjadrené v matematickej logike vo forme logických axióm. Nepripúšťa sa žiaden postup založený na názore, experimente, pozorovaní, intuícii či skúsenosti. Táto skutočnosť činí z matematického dôkazu najistejší známy spôsob overenia pravdivosti nejakého tvrdenia. Tvrdenie, ku ktorému je známy matematický dôkaz, sa nazýva matematická veta.
|
|
||||||
Možno tvrdiť, že pojem rigorózneho matematického dôkazu je tým, čím sa matematika výrazne odlišuje od ostatných vedeckých disciplín. Matematický dôkaz je totiž na rozdiel od dôkazov v iných oblastiach ľudského konania (napr. v práve, prírodných vedách atď.) aspoň principiálne nespochybniteľný. Nie je vylúčené, že sa podarí matematicky dokázať tvrdenie, ktoré v skutočnosti neplatí. Dôkaz tohto tvrdenia potom ale musí byť nevyhnutne chybný a táto chyba musí byť (po dostatočne dôkladnom preskúmaní) odhaliteľná. Zdrojom omylov pri matematickom dokazovaní teda nie je samotný pojem dôkazu, ale výhradne chybujúci ľudia.
|
|
||||||
Oblak (hovorovo aj mrak alebo mračno) je viditeľná sústava malých častíc vody alebo ľadu (prípadne iných látok) v atmosfére Zeme alebo iných kozmických telies. Oblaky v zemskej atmosfére vznikajú vtedy, keď sa vlhkosť vo vzduchu kondenzuje na kvapky alebo ľadové kryštáliky. Hranica, za ktorou sa plynná fáza vody mení na kvapalnú, sa nazýva rosný bod. Výška, v ktorej sa tento dej odohráva, býva rôzna. Závisí od stability vzduchu a množstva prítomnej vlhkosti. Typická oblaková kvapka alebo ľadový kryštálik má v priemere približne 0,01 mm. Studené oblaky tvoriace sa vo veľkých výškach obsahujú iba ľadové kryštáliky, nižšie teplejšie oblaky obsahujú iba vodné kvapky, a zmiešané oblaky oboje.
|
|
||||||
Často sa objavuje mylný názor, že oblaky sú zložené z vodnej pary. Nie je to pravda, pretože samotná vodná para je neviditeľná bez ohľadu na výšku a hustotu. Oblaky predstavujú vodu v kvapalnom alebo pevnom skupenstve.
|
|
||||||
Sopka alebo vulkán je geomorfologický útvar vytvorený magmou vystupujúcou na zemský povrch (kde sa nazýva láva), prípadne pod vodou alebo ľadom. Na Zemi sa sopky vyskytujú pozdĺž hraníc tektonických platní a v takzvaných horúcich škvrnách. Názov vulkán je odvodený od názvu sopky Vulcano v Tyrrhenskom mori, prenesene od rímskeho boha Vulkána. Veda, skúmajúca sopečnú činnosť sa nazýva vulkanológia.
|
|
||||||
Mária (hebr. מִרְיָם – Miriam, aram. מרים – Marjám, starogr. Μαριαμ, Μαρια – Mariam, Maria, arab. مريم – Marjam ), v latinskom katolicizme Panna Mária, vo východných cirkvách presvätá Bohorodička (Mária), bola manželka tesára Jozefa z Nazaretu, podľa kresťanskej viery matka Ježiša Krista, druhej božskej osoby a syna Boha Otca.
|
|
||||||
Otázka historickosti Márie je úzko spätá s historickosťou Ježiša Krista a dôveryhodnosťou základných textov kresťanskej viery ako historického prameňa. Historici, ktorí prijímajú text evanjelií a ďalších novozákonných spisov, považujú postavu Márie za Ježišovu matku. Máriu tak označujú tri zo štyroch evanjelií a Skutky apoštolov. V iných dobových prameňoch (okrem novozákonných apokryfov) sa postava Márie nevyskytuje. Podľa dostupných prameňov je pravdepodobné, že sa stala matkou vo veľmi mladom veku. Samotný Nový zákon neposkytuje príliš veľa ďalších informácií, ktoré by sa týkali jej života, novozákonné apokryfy však ponúkajú ešte niekoľko ďalších momentov. Apokryfné Jakubovo protoevanjelium z 2. storočia opisuje Máriino detstvo.
|
|
||||||
Granit alebo žula je felzická hlbinná vyvretá hornina, ktorej podstatnými minerálnymi súčasťami sú draselný živec, plagioklas, kremeň a biotit. Súhrnný názov pre granit a jemu podobné horniny (granodiorit a kremenný diorit) je granitoid. Granitoidy od seba nemožno bez znalosti minerálneho zloženia voľným okom presne odlíšiť.
|
|
||||||
Termín granit (žula) sa v praxi často používa v širšom zmysle na označenie všetkých hlbinných kremenno-živcových hornín, správne by sa však tieto horniny mali označovať granitoidy, resp. granitoidné či granitické horniny. V kamenárskej praxi sú týmto termínom označené viaceré magmatické a metamorfované horniny. Názov pochádza z latinského slova grannum, čo znamená zrno, teda termín používaný na označenie zrnitých, kryštalických hornín. V literatúre ho po prvýkrát použil Andrea Cesalpino v roku 1596.
|
|
||||||
Kráľovský gambit je šachové otvorenie, ktoré patrí medzi otvorené hry a vzniká ťahmi 1. e4 e5 2. f4, avšak môže vzniknúť aj z tzv. Fromovho gambitu obrátenými ťahmi 1. f4 e5 2. e4. Jeho ECO kód je C30–C39. Kráľovský gambit bol veľmi obľúbený hlavne v minulosti - v 19. storočí bolo prijatie resp. odmietnutie tohoto gambitu záležitosťou osobnej odvahy a cti každého šachistu. Takýto spôsob nazerania na gambity bol typický pre romantický štýl hry, ktorý bol v 19. storočí rozšírený. Veľmi silno je to cítiť aj v nesmrteľnej partii, v ktorej je viacero takýchto obiet v tomto duchu. Čierny má v zásade dve hlavné možnosti: Prijať gambit ťahom 2. exf4 alebo ho odmietnuť a zahrať niečo iné ako napr. 2. Jc6 alebo 2. d6. Za najlepšiu možnosť sa ale považuje gambit prijať. Treťou, menej častou avšak pomerne zaujímavou možnosťou je Falkbeerov protigambit ktorý vzniká ťahom 2. ... d5!?. Falkbeerov protigambit je ešte stále v šachovej teórii predmetom záujmu a diskusii o jeho korektnosti.
|
|
||||||
Štátna Tretiakovská galéria je umelecké múzeum v hlavnom meste Ruska, v Moskve, založené v roku 1856 ruským obchodníkom, mecenášom a zberateľom umenia Pavlom Tretiakovom. Radí sa k najznámejším svetovým obrazárňam a vlastní jednu z najväčších zbierok ruského výtvarného umenia. Zbierka galérie sa neustále dopĺňa, v roku 2009 obsahovala viac než 150 000 diel.
|
|
||||||
Ruský obchodník Pavel Tretiakov začal so zbieraním umeleckých diel v 50. rokoch 19. storočia. Za rok založenia zbierky Tretiakovskej galérie sa považuje rok 1856, kedy Tretiakov kúpil do svojej zbierky prvé dva obrazy ruských maliarov. Už koncom 50. rokov bol Tretiakov rozhodnutý vytvoriť jedinečný súbor, ktorý by mal byť reprezentatívnou zbierkou ruského maliarstva obsahujúcou diela najvýznamnejších ruských maliarov. Tretiakov začal budovať svoju zbierku od základov sám a postupom času sa stal váženým odborníkom na ruské umenie. Jeho záujem o určité dielo alebo autora sa stal takmer okamžite prestížnym ocenením. Bol štedrým donátorom umelcov, maliari ho často pozývali do svojich ateliérov a na vernisáže, kde si vyberal a kupoval obrazy do svojej zbierky. Niektoré diela vznikali priamo na jeho objednávku. Rozširujúca sa zbierka priviedla Tretiakova na myšlienku jej bezplatného sprístupnenia verejnosti. V roku 1874 bola k domu Tretiakovcov pristavená dvojpodlažná prístavba určená pre potreby súkromnej galérie. Prístavba pozostávala z dvoch sál. Ďalších šesť sál bolo pristavených k domu v roku 1882, krátko po tom (v r. 1885) ešte sedem sál a v roku 1892 pribudlo šesť nových sál. V tesnej blízkosti rodinného sídla Tretiakovcov na Lavrušinskej ulici tak vznikol jedinečný komplex budov plne zodpovedajúci potrebám obrazovej galérie. Po smrti mladšieho brata Sergeja v lete 1892 sa podľa jeho závetu stali súčasťou zbierky Pavla Tretiakova aj ním zozbierané diela.
|
|
||||||
Mauthausen (pred letom 1940 známy ako Mauthausen-Gusen) bola veľká skupina nacistických koncentračných táborov, ktoré boli vybudované v okolí dedín Mauthausen a Gusen v Hornom Rakúsku, asi 20 kilometrov východne od Linzu.
|
|
||||||
Hoci najskôr pozostával z jediného tábora pri Mauthausene, časom sa rozširoval a stal sa jedným z najväčších komplexov pracovných táborov v Nemeckom kontrolovanej Európe. Okrem štyroch hlavných podtáborov, ktoré sa nazývali pobočkami, pri Mauthausene a v blízkosti Gusenu bolo v Rakúsku a v južnom Nemecku vyše 50 ďalších pobočiek, kde boli väzni využívaní ako otroci. K podriadeným táborom Mauthausenského komplexu patrili aj kameňolomy, muničné továrne, bane, zbrojovky a továrne na výrobu stíhačiek Me 262.
|
|
||||||
V januári 1945 pracovalo v táboroch riadených z centrály v Mauthausene už asi 85 000 väzňov. Aj keď presné straty na životoch v celom komplexe ostávajú neznáme, väčšina zdrojov ich uvádza v rozmedzí 122 766 až 320 000. Tábory vytvorili jeden z prvých veľkých komplexov koncentračných táborov v nacistickom Nemecku a boli jednými z posledných, ktoré oslobodili spojenecké vojská. Oba hlavné tábory, Mauthausen a Gusen I, boli jediné tábory v Európe, ktoré boli zaradené do III. kategórie, čo znamenalo, že mali byť najprísnejšími tábormi pre „nenapraviteľných politických protivníkov ríše“. Na rozdiel od iných koncentračných táborov určených pre všetky kategórie väzňov, Mauthausen bol vo väčšine prípadov využívaný na odstránenie inteligencie, čiže vzdelaných ľudí a členov vyšších spoločenských vrstiev v krajinách podrobených Nemeckom počas druhej svetovej vojny
|
|
||||||
Kriváň (poľ. Krywań, nem. Kriwan, maď. Kriván) je vrch na konci rázsochy, ktorá sa od hlavného hrebeňa Vysokých Tatier odvetvuje v Čubrine. Leží nad Nefcerkou, Kôprovou a Važeckou dolinou na svojimi J a JZ výbežkami zasahuje do Liptovskej kotliny. Je to jeden z najvyšších vrchov Slovenska. Dosahuje výšku 2 494,7 m n. m. Od 19. storočia je neoficiálnym symbolom slobody Slovákov a slovanskej súdržnosti.
|
|
||||||
Medzi rokmi 1960 až 1990 bol zobrazený s vatrou na znaku Slovenska v štátnom znaku Česko-Slovenska. Dočasne nahradil tradičný slovenský znak s trojvrším a krížom, ktorý je dnes v štátnej symbolike Slovenskej republiky. V roku 2005 bolo rozhodnuté, že bude zobrazený aj na slovenských eurominciach. Po Kriváni je pomenovaná aj planétka (24260) Kriváň.
|
|
||||||
Surtsey je novodobý sopečný ostrov, vzdialený 33 kilometrov južne od Islandu. Vznikol vulkanickou erupciou v roku 1963, priamo pred objektívmi fotoaparátov a televíznych kamier, odkedy je predmetom sústavného výskumu vedcov. Známky ľudskej činnosti na ostrove sú minimálne, nachádza sa tu iba menšia chata, ktorá slúži ako vedecké stanovište a súčasne ako miesto, kde sa môžu schovať prípadní stroskotanci.
|
|
||||||
Ostrov umožňuje sledovať rýchlosť s akou sú živočíšne a rastlinné druhy schopné osídliť nové prostredie a tiež ich schopnosť prekonávať vzdialenosti. Počas svojho vzniku bol sústavne pozorovaný vulkanológmi, ktorí tak mali jedinečnú možnosť sledovať ako vznikajú ostrovy tohto typu. Po skončení sopečnej aktivity sa stal Surtsey centrom pozornosti pre tímy botanikov a biológov, ktorí tu môžu pre zmenu študovať adaptáciu organizmov a ich schopnosť osídľovať nové prostredia. Ostrov dostal meno podľa obra Surta, ktorý bol podľa severskej mytológie bohom ohňa. V roku 2008 bol ostrov Surtsey zaradený na zoznam svetového dedičstva UNESCO.
|
|
||||||
Tritón alebo Triton alebo Neptun I je prirodzený a najväčší satelit planéty Neptún, siedmy najväčší mesiac slnečnej sústavy. Súčasne je to jedno z najchladnejších veľkých telies v slnečnej sústave, teleso s najmenej excentrickou obežnou dráhou, najväčší retrográdne obiehajúci mesiac v slnečnej sústave a najväčšie teleso v slnečnej sústave s retrográdnym pohybom vôbec.
|
|
||||||
Objavil ho v roku 1846 britský astronóm William Lassell iba 17 dní po objave samotného Neptúna. Pomenovaný bol po synovi Poseidóna (Neptúna), vládcu morí, Tritónovi. Zatiaľ bol preskúmaný iba jedinou sondou, a to Voyagerom 2 v roku 1989. Tieto pozorovania priniesli prekvapivé údaje: povrch mesiaca je veľmi mladý a mesiac je sám teda zrejme veľmi (kryovulkanicky) aktívny.
|
|
||||||
Druhá plavba Jamesa Cooka bola námorná prieskumná plavba Jamesa Cooka, dôstojníka britského kráľovského námorníctva, ktorú vykonal v rokoch 1772 až 1775. V júni 1772 dostal James Cook od britskej Admirality príkaz na velenie druhej námornej výpravy. Účelom výpravy bolo potvrdiť či vyvrátiť existenciu mysu Circumcision, oboplávať Zemeguľu po najväčších možných južných zemepisných šírkach s cieľom objaviť predpokladanú južnú pevninu. Podľa možností mal vykonať aj prieskum ďalších, dosiaľ neprebádaných oblastí oceánu. Cook dostal k dispozícii dve lode – H.M. Sloop Resolution a H.M. Bark Adventure.
|
|
||||||
Výprava vyplávala 13. júla 1772. Po zástavkách na Madeire a Kapvedských ostrovoch doplával Cook najprv k Mysu dobrej nádeje a odtiaľ sa plavil na juh, aby sa pokúsil nájsť mys Circumcision a Južnú zem. Tu po prvýkrát prekročil južný polárny kruh. Počas plavby východným smerom sa obe lode nechcene odlúčili. Adventure odplávala priamou cestou na Nový Zéland, a Resolution ďalej pátrala v blízkosti južného polárneho kruhu od zemepisnej dĺžky južnej Afriky až k zemepisnej dĺžke Nového Zélandu. Po zástavke na Novom Zélande prebádal Cook oblasť severovýchodne odtiaľ až k Tahiti. Pri spiatočnej ceste na Nový Zéland navštívil súostrovie Tonga. Potom sa obe lode vrátili na Nový Zéland. Tu však Adventure zaostala v búrke za Resolution a obe lode sa už nestretli, napriek tomu, že pre tento prípad bolo dohodnuté stretnutie na dohodnutom mieste. Adventure odplávala k Mysu dobrej nádeje, Resolution pokračovala v preskúmavaní Južného oceánu a potom zamierila do tropického Tichomoria. Tu Cook najprv navštívil Veľkonočný ostrov, Markézy a potom znovu Tahiti a súostrovie Nové Hebridy. Objavil a preskúmal Novú Kaledóniu a ostrov Norfolk. Potom opustil Tichý oceán a vykonal prieskum Ohňovej zeme. Preskúmal južné oblasti Atlantického oceánu medzi mysom Horn a mysom Dobrej nadeje. Tu objavil Južnú Georgiu a Južné Sandwichove ostrovy.
|
|
||||||
Po návrate do Anglicka bol James Cook povýšený do hodnosti kapitána a za správu o prevencii proti skorbutu bol vyznamenaný Copleyovou medailou Kráľovskej spoločnosti.
|
|
||||||
Kontradmirál Alan Bartlett „Al“ Shepard, Jr. (* 18. november 1923, East Derry, New Hampshire, USA – † 21. júl 1998, Pebble Beach, Kalifornia) bol americký astronaut, námorný pilot, skúšobný pilot a podnikateľ.
|
|
||||||
Absolvent United States Naval Academy v Annapolise s praxou na torpédoborci počas druhej svetovej vojny. V roku 1946 sa stal námorným pilotom a o štyri roky neskôr skúšobným pilotom. V roku 1959 bol vybraný do prvej sedmičky astronautov NASA (Mercury Seven). V máji 1961 uskutočnil prvý pilotovaný let s posádkou programu Mercury. Počas svojho letu sa Shepard stal celkovo druhým človekom vo vesmíre a prvým, ktorý manuálne ovládal orientáciu kozmickej lode. V konečných fázach programu Mercury bol určený ako pilot letu Mercury-Atlas 10, ktorý bol naplánovaný ako trojdňová misia, ale nakoniec bola zrušená. Potom bol vymenovaný za veliteľa prvého pilotovaného letu programu Gemini, ale v roku 1963 bol vyradený z letového stavu kvôli tzv. Ménièrovej chorobe, ktorá mu bola v roku 1968 úspešne vyliečená chirurgickým zákrokom.
|
|
||||||
V roku 1971 velil vtedy už 47-ročný Shepard, ako najstarší v oddieli aktívnych astronautov, misii Apollo 14, v rámci ktorej potom pilotovaním lunárneho modulu Antares uskutočnil najpresnejšie pristátie na Mesiaci zo všetkých misií v programe Apollo. Stal sa piatym a zároveň aj najstarším človekom, ktorý vstúpil na mesačný povrch a jediným astronautom z pôvodnej Mercury Seven, ktorý tak uskutočnil. Zaujímavosťou je, že ku koncu druhého a zároveň aj posledného výstupu na mesačný povrch odpálil aj dve golfové loptičky. Apollo 14 bolo Shepardovým druhým aj posledným vesmírnym letom. Vykonával aj funkciu veliteľa oddielu astronautov v obdobiach od novembra 1963 do júla 1969 a od júna 1971 do 1. augusta 1974. Dňa 26. augusta 1971 bol povýšený do hodnosti kontradmirál. V roku 1974 odišiel z NASA aj z United States Navy a začal sa naplno venovať podnikaniu, s ktorým začal ešte počas kariéry v NASA. Zomrel v roku 1998.
|
|
||||||
Indonézia, dlhý tvar Indonézska republika, je štát v juhovýchodnej Ázii a Oceánii tvorený 17 508 ostrovmi. S viac ako 230 miliónmi obyvateľov ide o štvrtý najľudnatejší štát sveta a takisto o štát s najväčším počtom obyvateľov hlásiacich sa k islamu. Štátnym zriadením krajiny je republika s voleným prezidentom a parlamentom. Hlavným mestom Indonézie je Jakarta. Na pevnine Indonézia hraničí s Papuou-Novou Guineou, Východným Timorom a Malajziou. Na mori susedí so Singapurom, Filipínami, Austráliou, Palau, Thajskom a indickým územím Andamany a Nikobary.
|
|
||||||
Indonézske súostrovie bolo významným obchodným centrom najmenej od 7. storočia, keď kráľovstvo Šrívidžaja obchodovalo s Čínou a Indiou. Miestni vládcovia postupne začali preberať indickú kultúru, náboženské a politické modely a hinduistické a budhistické kráľovstvá rozkvitali. Indonézska história bola ovplyvnená snahami cudzích mocností ovládnuť jej prírodné bohatstvo. Moslimskí obchodníci priniesli islam a európski kolonialisti spolu v čase zámorských objavov bojovali o ovládnutie obchodu s korením na Molukách. Po troch a pol storočiach holandskej nadvlády získala Indonézia po druhej svetovej vojne nezávislosť. Turbulentná moderná história krajiny bola ovplyvnená prírodnými katastrofami, korupciou, separatizmom, demokratizáciou a obdobiami prudkých ekonomických zmien.
|
|
||||||
Obyvateľstvo súostrovia patrí k mnohým etnickým, jazykovým a náboženským skupinám. V Indonézii došlo k vývoju zdieľanej identity definovanej spoločným jazykom, etnickou a náboženskou pluralitou vnútri väčšinovo moslimskej spoločnosti, umožnenú historickou skúsenosťou s kolonializmom a bojom proti nemu. Indonézske národné motto, „Bhinneka Tunggal Ika“ („Jednota v rozdielnosti“, doslova „Veľa, ale jeden“) vyjadruje rozdielnosť, ktorá je pre krajinu typická. Napriek veľkému počtu obyvateľov a vysokej hustote osídlenia sa v krajine nachádzajú obrovské oblasti divokej prírody s druhou najväčšou biodiverzitou na svete. Indonézia má veľké prírodné bohatstvo, ale napriek tomu je rozšíreným problémom chudoba. Aj napriek problémom s chudobou je Indonézia 19. najväčšou ekonomikou sveta a je preto jednou z krajín skupiny G-20. Je tiež členom Združenia národov juhovýchodnej Ázie a Ázijsko-pacifického hospodárskeho spoločenstva.
|
|
||||||
Attalos (starogr. Ἄτταλος), iným menom Sótér (starogr. Σωτήρ, „Spasiteľ“) (* 269 pred Kr. – † 197 pred Kr.) bol vládca a neskôr kráľ Pergamonu v rokoch 241 – 197 pred Kr. Attalos bol synom Attala a jeho manželky Antiochis a synovcom i adoptívnym synom Eumena I., prvého vládcu Pergamonu.
|
|
||||||
Attalos dosiahol dôležité víťazstvo proti Galom, keltským kmeňom z Trácie, ktoré po viac ako jednu generáciu terorizovali väčšinu územia Malej Ázie. Toto víťazstvo oslávili triumfálnym pomníkom so sochami umierajúcich a usmrcujúcich sa Galov v pergamonskej Aténinej svätyni. Attalos potom získal meno „Sótér“ a pravdepodobne aj titul „kráľ“. Aj neskôr sa prejavil ako odvážny a schopný stratég, keď zaútočil na Antiocha I. a ovládol veľkú časť seleukovskej Malej Ázie.Ako lojálny spojenec Ríma zohral významnú úlohu v prvej a druhej macedónskej vojne, vedenej proti Filipovi V. Macedónskemu. V Egejskom mori viedol početné námorné operácie, ktoré marili macedónske záujmy, v týchto bojoch získal pre Pergamon bohatú vojnovú korisť a dŕžavu gréckych ostrovov Aiginy počas prvej a Androsu počas druhej vojny (Attalos v bojoch dvakrát tesne unikol Filipovmu zajatiu).
|
|
||||||
Attalos ako ochranca gréckych miest v Anatólii zastával vedúcu pozíciu v boji Grékov proti barbarom. Za jeho vlády získal Pergamon veľký vplyv na gréckom východe. Zomrel v roku 197 pred Kr., krátko pred koncom druhej vojny, vo veku 72 rokov, pravdepodobne na následky mŕtvice, ktorú utrpel pred niekoľkými mesiacmi na zasadnutí boiótskej vojnovej rady. Jeho manželkou bola Apollónis z Kyzikosu, s ktorou mal štyroch synov. Jeho následníkom bol najstarší syn Eumenes II.
|
|
||||||
"Bazilika svätého Petra alebo Chrám svätého Petra (tal. Basilica di San Pietro, lat. Basilica Sancti Petri, oficiálne Basilica Papale di San Pietro in Vaticano, t.j. Pápežská bazilika svätého Petra vo Vatikáne) je renesančno-baroková sakrálna stavba vo Vatikáne, najslávnejšia a najviac navštevovaná svätyňa na svete (do roku 1990 bola i najväčším kostolom; v tomto roku ju „predbehla“ Bazilika Panny Márie Pokoja v hlavnom meste Pobrežia Slonoviny). Je všeobecne uznávaným a rešpektovaným centrom katolíckeho kresťanstva."
|
|
||||||
Na prvý pohľad upúta bazilika diváka neobvykle širokým priečelím. To je horizontálne členené vysokou atikou na dve podlažia. Realizáciou monumentálneho priečelia baziliky poveril pápež Pavol V. (1605 – 1621) architekta Carla Maderna. Výsledkom bolo vytvorenie dominantnej 114,69 metra širokej a 45,55 metra vysokej fasády, doplnenej ôsmimi korintskými stĺpmi a štyrmi pilastrami. Priečelie je prísne symetrické. Vrchné zakončenie tvorí balustráda s monumentálnymi sochami Ježiša Krista a jedenástich apoštolov (bez svätého Petra). Oba konce priečelia dotvoril v 19. storočí architekt Giuseppe Valadier osadením hodín. Okrem impozantného priečelia jednoznačným dominujúcim architektonickým prvkom stavby je kupola, viditeľná zo všetkých strán a súčasne tvoriaca jednu z dominánt celého Ríma. Kupola, skladajúca sa z fonkajšieho plášťa a vnútornej priestorovej výstuže, je korunovaná laternou týčiacou sa nad mohutným tamburom. Ten je po celom obvode pravidelne členený dvojicami korintských stĺpov, medzi ktorými sa nachádzajú okná nesúce striedavo trojuholníkové a oblúkové frontóny. Šestnásť dvadsaťmetrových dvojpilierov vytvára striedavo s oknami stavebnú štruktúru valcovej podstavy kupoly.
|
|
||||||
Rukopisy z Nag Hammádí (iné názvy: knižnica z Nag Hammádí, texty z Nag Hammádí, texty z Chénoboskia, iné prepisy názvu Nag Hammádí pozri pod Nadž’ Hammádí) je súbor starovekých textov, pochádzajúci pravdepodobne z 3. a 4. storočia po Kr., objavený pri hornoegyptskom meste Nadž’ Hammádí (Nag’ Hammádí) v roku 1945.Obsahuje koptské preklady pôvodne gréckych textov. Dnes najznámejším titulom súboru je Tomášovo evanjelium (TmEv), ktoré sa až tu našlo kompletné. Celý súbor patrí medzi štyri najdôležitejšie povojnové rukopisné nálezy a dnes je uložený v Koptskom múzeu v Káhire, v Egypte.
|
|
||||||
V roku 1945 našiel miestny roľník v zapečatenom hlinenom džbáne dvanásť zväzkov papyrusových listov viazaných v koži. Zväzky obsahujú päťdesiatdva prevažne gnostických traktátov, ale aj tri práce patriace do súboru Corpus Hermeticum a časti prekladu Platónovej Republiky. Spisy môžu podľa religionistu prof. Jamesa M. Robinsona, ktorý viedol ich vedecké spracovanie a publikovanie, patriť pachomiovskému mníšskemu spoločenstvu, ktoré obývalo neďaleké zaniknuté koptské kláštory.
|
|
||||||
Jupiter je piata planéta v poradí od Slnka, najväčšia a najhmotnejšia planéta našej slnečnej sústavy. Je pomenovaný po rímskom bohovi Jupiterovi. Symbolom planéty je štylizované znázornenie Jupiterovho božského blesku (v Unicode: ♃).
|
|
||||||
Jupiter má chemické zloženie podobné Slnku a ďalším hviezdam. Líši sa od nich najmä nízkou hmotnosťou, ktorá nestačí na vytvorenie podmienok pre termojadrové reakcie prebiehajúce vo všetkých hviezdach hlavnej postupnosti. Neexistuje presná definícia odlišujúca veľké hmotné planéty ako Jupiter od hnedých trpaslíkov, čo sú prechodné útvary medzi planétami a hviezdami. V každom prípade by Jupiter potreboval byť aspoň 80× hmotnejší, aby sa mohol stať hviezdou. Planéty, ktoré sú Jupiteru podobné hmotnosťou, rozmermi a zložením, sa nazývajú joviálne.
|
|
||||||
Jupiter je prvou planétou od Slnka, ktorá nemá pevný povrch. Jeho búrlivá atmosféra plynule prechádza do plášťa a vo väčších hĺbkach do horúceho jadra. Rotácia planéty spôsobila, že sa v jej atmosfére utvorili gigantické, farebne jasne odlíšené štruktúry nazývané pásy a zóny. Okrem nich možno už malým ďalekohľadom pozorovať na Jupiteri ďalšie búrkové štruktúry, napríklad známu Veľkú červenú škvrnu, ktorá je z nich najväčšia.
|
|
||||||
Jupiter sa okolo svojej osi otočí najrýchlejšie zo všetkých planét slnečnej sústavy – otočenie netrvá ani 10 hodín. Planéta má podľa súčasných poznatkov najväčšiu sústavu mesiacov.
|
|
||||||
Javor horský (Acer pseudoplatanus) je kvitnúca rastlina z čeľade Mydlovníkovité (Sapindaceae). Je to veľký opadavý a širokolistý strom, tolerantný voči vetru a pobrežnému prostrediu. Ide o horskú drevinu. Je pôvodom zo Strednej Európy a Západnej Ázie, od Francúzska na východ do Ukrajiny, severného Turecka a na Kaukaz a južne z hôr severného Španielska a Talianska.
|
|
||||||
Ľahko sa rozmnožuje zo semien a bol introdukovaný na Britské ostrovy v 16. storočí, kde je teraz naturalizovaný, rovnako ako aj v ďalších častiach Európy, Severnej Ameriky, Austrálie a Nového Zélandu, kde sa môže stať inváznym druhom.
|
|
||||||
Môže rásť do výšky asi 40 m. Vetvy tvoria širokú a zaoblenú korunu. Mladá kôra je šedá a hladká, keď je staršia odlupujú sa z nej nepravidelné šupiny. Listy rastú na dlhých červených stopkách, sú veľké a dlhé, s piatimi veľkými vyrastajúcimi lalokmi a hrubými zúbkami. Kvety sú zelenožltej farby a visia v súkvetiach nazývaných metlina (panicula). Produkujú veľké množstvo peľu a nektáru, ktoré sú príťažlivé pre hmyz. Okrídlené semená alebo dvojnažky (diachenium), sa tvoria v pároch a keď sú zrelé tak sa vo vetre vrtia k zemi. Padajú od októbra a počas zimy. Nasledujúcu jar voľne klíčia.
|
|
||||||
Vo svojom pôvodnom ekosystéme je javor horský spojený s viacerými bezstavovcami a hubami, ktoré však nie sú vždy prítomné v oblastiach, do ktorých bol zavedený. Občas sa vyskytuje v mestských oblastiach ako okrasný strom. Vyrába tvrdé, krémovo biele husté drevo, ktoré sa používa na výrobu hudobných nástrojov, nábytku, v stolárstve, na drevené podlahy a kuchynské náradie. Je tiež dobrý ako palivové drevo. Jarná miazga sa používa na výrobu cukru a výrobu alkoholických a nealkoholických nápojov a včely vyrábajú z nektáru javorový med.
|
|
||||||
Grindcore je extrémny hudobný žáner, ktorý sa prvýkrát objavil v prvej polovici 80. rokov. Inšpiráciu čerpá z tých najdrsnejších hudobných žánrov ako sú extrémny metal, industriálna hudba, noise a extrémnejších foriem hardcore punku. Grindcore sa vyznačuje mimoriadne skreslenými, podladenými gitarami, veľmi rýchlym tempom, blast beatmi, a vokálmi pozostávajúcimi s nezrozumiteľného vrčania alebo vysokých škrekov. Raným skupinám ako Napalm Death sa pripisuje, že položili základy štýlu. V dnešnej dobe je najrozšírenejší v Severnej Amerike a Európe, zastupovaný obľúbenými kapelami ako Brutal Truth a Nasum. Motívy textov sa zameriavajú primárne na spoločenské a politické záležitosti, nie je výnimočná tiež tematika smrti, krvi a násilia, či čierny humor.
|
|
||||||
Neslávne známou črtou grindcoru sú „mikroskladby“. Viacero skupín vytvorilo skladby trvajúce len niekoľko sekúnd. Britská skupina Napalm Death drží svetový rekord so skladbou „You Suffer“ (1987), zapísaný v Guinnessovej knihe rekordov. Mnohé skupiny vytvárajú jednoduché frázy, ktoré môžu byť rytmicky roztiahnuté počas inštrumentácie trvajúcej len niekoľko taktov. Následne vznikli rôzne „mikrožánre“, do ktorých často spadajú kapely odlišujúce sa od obvyklého grindcoru, ako sú goregrind, zameriavajúci sa tematikou násilia, a pornogrind, fixovaný na pornografickú tematiku. Medzi ďalšie odnože sa zaraďujú noisegrind (obzvlášť surový a chaotický) a elektrogrind (využívajúci elektronické prvky ako automatické bicie). Aj keď ide fenomén, ktorý značne ovplyvnil hardcore punk a iné obľúbené žánre, samotný grindcore zostáva záležitosťou umeleckého podzemia.
|
|
||||||
Space Shuttle bol americký čiastočne znovupoužiteľný pilotovaný kozmický raketoplán používaný na lety na nízku obežnú dráhu Zeme vládnou organizáciou NASA. Mal sa stať jednou zo súčastí projektovaného komplexného kozmického dopravného systému STS (Space Transportation System), ktorý však nebol realizovaný.
|
|
||||||
Existovalo päť plne prevádzkyschopných exemplárov raketoplánov, ktoré projektovala a postavila firma Rockwell International, Space Systems Group (teraz Boeing North American), Palmdale, Kalifornia (USA). Lety boli riadené z riadiaceho strediska MCC (Mission Control Center) v Johnsonovom vesmírnom stredisku (NASA Lyndon B. Johnson Space Center) v Houstone, Texas (USA) pre NASA Office of Space Flight, Washington (USA). Space Shuttle bol prvou z veľkej časti znovupoužiteľnou kozmickou pilotovanou loďou na svete. Z troch jeho základných častí sa pri nutnej údržbe opakovane dali použiť dve. Počas 30-ročnej histórie sa v programe uskutočnilo 135 letov, z ktorých dva skončili tragicky.
|
|
||||||
Turbodúchadlo alebo plniaci turboagregát je turbínou poháňané dúchadlo, ktoré stláča plyn. K veľkému rozšíreniu tohto zariadenia došlo vďaka použitiu v spaľovacích motoroch kvôli zvýšeniu celkového výkonu pomocou zväčšenia množstva nasávaného vzduchu, ktorý s palivom vchádza do spaľovacích priestorov motora. Hlavnou výhodou turbodúchadiel je významný nárast výkonu, spojený iba s malým zvýšením hmotnosti. Turbodúchadlo využíva nevyužitú energiu výfukových plynov prúdiacich z motora, a tým zvyšuje celkovú účinnosť pohonnej jednotky. Nevýhodou je to, že pri benzínových motoroch sa pri použití turbodúchadla musí znižovať kompresný pomer aby nedochádzalo k samovznieteniu paliva. To potom nepriaznivo vplýva na účinnosť motora v nízkych otáčkach, kedy turbodúchadlo nedodáva potrebné množstvo vzduchu. Naftové motory týmto problémom netrpia, lebo sú principiálne založené na samovznietení paliva – nafty. Pre obidva typy motorov však turbodúchadlo predstavuje veľkú výhodu vo vyšších nadmorských výškach, kde je nižší tlak vzduchu. Tento dôvod bol aj príčinou vývoja tohto zariadenia pôvodne pre letecké motory.
|
|
||||||
Mágia je abstraktný systém, ktorého účelom je umožniť človeku ovládať svet prírody, vrátane predmetov, udalostí, ľudí a psychologických javov, pomocou paranormálnych, tajomných alebo nadprirodzených prostriedkov. V mnohých kultúrach koncept mágie stojí z rôznych dôvodov v opozícii k vedeckému alebo náboženskému pohľadu na svet.
|
|
||||||
Pojem „mágia“', „magický“ sa v širšom zmysle kryje s pojmami „okultný“ (skrytý) alebo „ezoterický“ (vnútorný). V tomto prípade sa pod mágiu zaraďujú parciálne náuky s aspektom „tajomna“, ako napr. alchýmia, astrológia, alebo mesmerizmus. V užšom ponímaní je mágia odborom konkrétnych okultných a ezoterických náuk buď teoretických, alebo praktických.
|
|
||||||
Pavol Jozef Šafárik (* 13. máj 1795, Kobeliarovo – † 26. jún 1861, Praha) bol slovenský, v Čechách naturalizovaný básnik, historik, etnograf, slavista a univerzitný profesor. Založil vedeckú slavistiku. Svoje diela písal prevažne po nemecky alebo po česky.
|
|
||||||
"Život Šafárikovej rodiny, jeho rodičov, starých rodičov, príbuzných a súrodencov bol úzko spätý so Štítnikom a jeho okolím. Narodil sa 13. mája 1795 v evanjelickej fare v Kobeliarove. Základy školského vzdelania, ako to zhodne uvádzajú životopisci, získal od otca, pričom všetci vychádzajú z neskorších zápisov jeho syna Vojtecha. Ten píše v knihe Co vyprávěl P. J. Šafařík…: „Když mu ale v 7 mém roce jen jednou abecedu celou ukázal, tu on sám hravě čísti se naučil, a již pak celý den na peci sedával čítaje. Do 8 ho roku již dvakráte byl celou bibli přečetl, a jedno ze zalíbených jeho zaměstnání bylo, že bratřím a sestře, jakož i lidem domácím kázával."" Škola ani učiteľ sa tu vôbec nespomínajú."
|
|
||||||
Queen je britská rocková skupina založená v roku 1970 v Londýne. V jej pôvodnej zostave boli Freddie Mercury (spev, klavír), Brian May (gitara, vokály), John Deacon (basová gitara) a Roger Taylor (bicie, vokály). Prvotnú tvorbu skupiny Queen ovplyvnil hlavne progresívny rock, hard rock a heavy metal. Postupne sa kapela pokúšala o konvenčnejšiu a komerčnejšiu tvorbu, vrátane rozmanitejších a inovatívnych žánrov (arena rock, pop rock, funky, či R&B a pod.).
|
|
||||||
Pred založením skupiny Queen, Brian May a Roger Taylor spolu s basgitaristom Timom Staffellom, hrali v skupine Smile. Freddie Mercury (vtedy známy ako Farrokh „Freddie“ Bulsara) bol fanúšikom tejto kapely. Po Staffellovom odchode v roku 1970 sa k nim Freddie pripojil, a krátko nato si skupina zmenila názov na „Queen“. Johna Deacona do kapely Queen prijali pred nahrávaním ich debutového albumu v roku 1973.
|
|
||||||
Vznik Česko-Slovenska bol proces, ktorý viedol k vytvoreniu samostatného Česko-Slovenska. Česko-Slovensko bolo vyhlásené 28. októbra 1918 a jeho hranice boli vymedzené mierovými zmluvami a z nich vychádzajúcimi rozhodnutiami v rámci versailleského mierového systému.
|
|
||||||
Dôsledkom vyhlásenia prvej svetovej vojny 28. júla 1914 boli národnostné otázky v Rakúsko-Uhorsku odsunuté do úzadia. Práve neriešenie národnostných otázok viedlo niektorých českých a slovenských politikov k uprednostneniu požiadavky samostatnosti pred federálnym usporiadaním monarchie. Po počiatočných represiách zostávali politici skôr pasívni a snažili sa nevytvárať zámienky k postupom proti nim.
|
|
||||||
Naproti tomu slovenský a český exil na čele s bývalým ríšskym poslancom Tomášom Garriguom Masarykom, generálom Milanom Rastislavom Štefánikom a diplomatom Eduardom Benešom presadzoval počas vojny u mocností Dohody vznik samostatného štátu Čechov a Slovákov (Masarykovo a Štefánikovo vyhlásenie, že Česi sú Slováci a Slováci Česi, sme jedno) a územné spojenie bývalých Zemí Koruny českej a Horného Uhorska. Tomu tiež napomáhali rôzne krajanské zbierky (prevažne v USA) a Česko-slovenské légie.
|
|
||||||
"Hubblov vesmírny ďalekohľad (skratka HST, z angl. Hubble Space Telescope; niekedy sa používa len skrátený názov Hubble) je ďalekohľad na obežnej dráhe okolo Zeme. Pretože je umiestnený mimo zemskej atmosféry, získava ostrejšie obrázky veľmi slabých a matných objektov než ďalekohľady na zemskom povrchu. Na obežnú dráhu bol vynesený raketoplánom Discovery pri misii STS-31 v roku 1990. Od svojho vypustenia sa stal jedným z najdôležitejších ďalekohľadov v dejinách astronómie. Je zodpovedný za mnoho priekopníckych objavov a pomohol astronómom lepšie pochopiť základné problémy astrofyziky. Pomocou ďalekohľadu sa podarilo získať niekoľko snímok, tzv. Hubblových hlbokých polí (angl. Hubble deep fields), tých najvzdialenejších objektov vo vesmíre."
|
|
||||||
"Sir Robert William ""Bobby"" Robson CBE (* 18. február 1933 – † 31. júl 2009) bol anglický futbalista, ktorý sa po skončení aktívnej kariéry stal trénerom siedmich európskych futbalových klubov a anglickej futbalovej reprezentácie. Jeho profesionálna kariéra stredového útočníka trvala skoro 20 rokov, v priebehu ktorých hral za tri kluby: Fulham, West Bromwich Albion a krátko Vancouver Royals. V dvadsiatich stretnutiach reprezentoval Anglicko, za ktoré strelil štyri góly."
|
|
||||||
Po skončení hráčskej kariéry sa stal úspešným trénerom na klubovej aj medzinárodnej úrovni, keď dosiahol víťazstvá v najvyšších ligových súťažiach v Holandsku a Portugalsku, získal futbalové trofeje v Anglicku aj Španielsku a s reprezentáciou Anglicka sa prebojoval do semifinále majstrovstiev sveta vo futbale v roku 1990. Jeho poslednou trénerskou zastávkou bolo pôsobenie pri Írskej futbalovej reprezentácii, v úlohe poradcu.
|
|
||||||
V roku 2002 mu bol udelený rytiersky rád Knight Bachelor, v roku 2003 bol uvedený do siene slávy anglického futbalu a stal sa čestným prezidentom Ipswich Town FC. Od roku 1991 trpel opakujúcimi sa zdravotnými ťažkosťami súvisiacimi s rakovinou. V marci 2008 podporil úsilie založiť nadáciu na výskum rakoviny, ktorá nesie jeho meno, Sir Bobby Robson Foundation. V auguste 2008 mu bola potvrdená rakovina pľúc v poslednom štádiu, zomrel iba o rok neskôr.
|
|
||||||
Sepia apama (druh objavil a opísal John Edward Gray v roku 1849) je hlavonožec z čeľade sépiovitých predstavujúci najväčšieho zástupcu z približne 100 známych druhov sépií. V dospelosti dorastá do dĺžky až 1,5 metra aj s chápadlami a váži až 10,5 kg (iné zdroje uvádzajú hmotnosť len medzi 5 až 6,5 kilogramov), samotná dĺžka plášťa je 520 milimetrov. Vyskytuje sa len v pobrežných vodách Austrálie, kde obýva všetky oblasti až do hĺbky 100 metrov.
|
|
||||||
V období rozmnožovania vytvára sépia spoločenstvá o niekoľko tisícoch jedincoch neďaleko juhoaustrálskeho mesta Whyalla, kde sú často hlavným predmetom zájmu potápačov a vedcov skúmajúcich ich chovanie. Jej koža má schopnosť meniť sfarbenie v závislosti na svojom okolí, čo jej dáva schopnosť vytvárať dokonalú kamufláž pred prípadnými predátormi. V núdzi je schopná vypustiť do vody veľké množstvo tmavého farbiva, ktoré sťaží jej zameranie, zmätie útočníka a umožní únik do bezpečia.
|
|
||||||
Ide o veľmi inteligentného dravca, ktorý požiera menšie ryby, kraby či iné kôrovce, ktoré chytí dvojicou dlhších chápadiel. Zvláštnosťou je, že Sepia apama má tri srdcia a modrú krv obsahujúcu hemocyanín.
|
|
||||||
Aktinoid (značka An) je pomenovanie pre člena skupiny chemických prvkov, nachádzajúceho sa v 7. perióde periodickej tabuľky prvkov za aktíniom s protónovým číslom 90 až 103, teda prvky tórium až lawrencium. Pre podobnosť chemických vlastností však býva do skupiny zaraďované aj samotné aktínium.
|
|
||||||
V periodickej tabuľke sa umiestňujú v osobitnej sekcii, rovnako ako lantanoidy nachádzajúce sa o periódu vyššie. Prvý prvok aktinoidového radu je tórium a aktínium spoločne so skandiom, ytriom a lantánom je zaradené medzi prechodné prvky do tretej skupiny. Používajú sa aj varianty usporiadania tak, že prvým prvkom skupiny je samotné aktínium a naopak lawrencium je umiestnené do bloku d v rámci vyššie uvedenej skupiny prvkov vzácnych zemín. Vyčlenenie, taktiež aj samotné pomenovanie skupiny bolo zavedené v 40. rokoch 20. storočia na základe publikácií amerického chemika Glenna T. Seaborga. Dovtedy sa známe aktinoidy (tórium, protaktínium a urán) umiestňovali v periodickej tabuľke pod hafnium, tantal a volfrám, vzhľadom na podobnosť oxidačných stupňov a zlúčenín.
|
|
||||||
Všetky aktinoidy sú prirodzene rádioaktívne. V prírode sa vo väčších (priemyselne ťažiteľných) množstvách vyskytujú len prvky urán a tórium, ktorých izotopy 238U, 235U a 232Th majú polčasy rozpadu rádovo miliardy rokov. V stopových množstvách sa na Zemi vyskytujú aj aktínium a protaktínium, ale len ako produkty rozpadu uránu/tória, nakoľko žiaden z ich izotopov nemá tak dlhý polčas rozpadu by mohli existovať od vzniku Zeme. Ostatné prvky skupiny boli pripravené umelo.
|
|
||||||
Hlavná oblasť využitia aktinoidov súvisí s ich rádioaktivitou, izotopy uránu 233U a 235U, ako aj izotop plutónia 239Pu sa používajú ako palivo/zdroj neutrónov pri riadenej reťazovej štiepnej reakcii v jadrových elektrárňach. Rovnako sú však používané aj ako zdroj neutrónov reťazovej reakcie jadrových zbraní. Izotop 238Pu sa používa ako zdroj termoelektrickej energie pre medziplanetárne sondy, rovnako aj ako zdroj energie pre kardiostimulátory.
|
|
||||||
Marian Adam Rejewski (* 16. august 1905, Bydgoszcz – † 13. február 1980, Varšava) bol poľský matematik a kryptológ, ktorý v roku 1932 prelomil kód Enigmy, najdôležitejšieho šifrovacieho stroja hitlerovského Nemecka. Úspech Rejewskiho a jeho spolupracovníkov z Kancelárie šifier (poľ. Biuro Szyfrów), medzi inými Henryka Zygalskiho a Jerzyho Różyckiho, umožnil čítanie Britmi zachytených zakódovaných nemeckých správ počas druhej svetovej vojny, pričinili sa tak k víťazstvu spojencov.
|
|
||||||
V roku 1929 počas štúdia matematiky na Poznaňskej univerzite ho profesor Zdzisław Krygowski odporučil na tajný kurz kryptológie, ktorý organizovala Kancelária šifier druhého oddelenia generálneho štábu poľskej armády. Na jeseň roku 1930 bola v Poznani vytvorená pobočka Kancelárie šifier, v ktorej pracoval aj Rejewski. O dva roky neskôr pobočku zrušili a od 1. septembra 1932 boli všetky kryptologické práce prenesené do varšavskej centrály. Tam začal Rejewski pracovať na Enigme a v priebehu niekoľkých týždňov odkryl spôsob okáblovania jej rotorov. Následne spolu so svojimi kolegami zo štúdií Różyckim a Zygalskim vypracoval techniku umožňujúcu čítanie šifrogramov Enigmy. Rejewskiho vklad spočíval na vypracovaní katalógu kárt a cyklometra, a po zmene spôsobu kódovania v roku 1938 na vyrobení kryptologickej bomby.
|
|
||||||
Päť týždňov pred napadnutím Poľska Nemcami v roku 1939, Rejewski so skupinou kryptológov a pracovníkov Kancelárie šifier predstavili spôsob dešifrovania a kópiu Enigmy predstaviteľom britskej a francúzskej vojenskej špionáže. Krátko po vypuknutí vojny poľskí kryptológovia evakuovali cez Rumunsko do Francúzska, kde naďalej v spolupráci s Francúzmi a Britmi vykonávali práce na dešifrovaní nemeckej korešpondencie. Do ďalšej evakuácie boli prinútení v júni 1940 po kapitulácii Francúzska, no už po niekoľkých mesiacoch sa vrátili na jeho územie kontrolované vládou z Vichy a pokračovali v činnosti. Po vkročení Nemecka do južného Francúzska 9. novembra 1942 sa Rejewski a Zygalski dostali cez Španielsko, Portugalsko a Gibraltár do Veľkej Británie, kde pracovali v rádiovej jednotke generálneho štábu hlavného veliteľa poľských ozbrojených síl v Stanmore-Boxmoor pri Londýne. Tu sa venovali rozšifrovávaniu menej komplikovaných nemeckých správ. Po skončení vojny sa Rejewski vrátil v roku 1946 do Poľska, kde pracoval ako úradník podnikov v Bydgoszczi. Až v roku 1967 odhalil svoj podiel na prelomení šifry Enigmy a napísal pamäti ktoré deponoval vo vtedajšom Vojenskom historickom inštitúte.
|
|
||||||
"Rýchlosť svetla vo vákuu alebo skrátene rýchlosť svetla (značka c alebo c0, z latinského celerita=rýchlosť) je fyzikálna konštanta, hodnota ktorej bola určená na 299 792 458 metrov za sekundu (299 792,458 km/s; 1 079 252 848,8 km/h). Rýchlosť svetla v inom prostredí ako vo vákuu je vždy nižšia ako rýchlosť svetla vo vákuu."
|
|
||||||
Rýchlosť svetla vo vákuu nie je určená meraním, ale definíciou, nakoľko samotná jednotka meter je definovaná z pohľadu rýchlosti svetla a sekundy.
|
|
||||||
Podľa štandardnej fyzikálnej teórie sa elektromagnetické žiarenie vrátane viditeľného svetla šíri (pohybuje) vo vákuu konštantnou rýchlosťou. Táto fyzikálna konštanta sa označuje písmenom c. Vo všeobecnej teórii relativity je rýchlosť c tiež rýchlosťou šírenia sa gravitácie.
|
|
||||||
Archaeoraptor je rodové meno, ktorým bola roku 1999 v článku publikovanom v časopise National Geographic neformálne nazvaná fosília nájdená v Číne, ktorá bola označená za chýbajúci článok medzi teropódnymi dinosaurami a vtákmi. Už pred zverejnením však panovali pochybnosti o jej autenticite. Záležitosť nakoniec skončila škandálom, pretože ďalším výskumom sa preukázalo, že ide o falzifikát. V skutočnosti bol nález kombináciou niekoľkých skamenelín pochádzajúcich od odlišných druhov. Čínsky paleontológ Zhou s kolegami zistili, že hlava a vrchná časť tela patrili primitívnemu vtákovi rodu Yanornis zo spodnej kriedy. Chvost bol roku 2002 prisúdený malému okrídlenému dromeosauridovi rodu Microraptor, ktorý žil približne v rovnakom období. Dolné končatiny patrili zatiaľ neznámemu živočíchovi.
|
|
||||||
Škandál s tzv. archaeoraptorom poukázal na nezákonný obchod čínskych priekupníkov s fosíliami a tiež na potrebu podrobnejšieho vedeckého preskúmania údajných „chýbajúcich článkov“, ktorých nálezy boli publikované v časopisoch, ktoré svoje články nepodrobujú odborným recenziám. Kreacionisti využili škandál s fosíliami k spochybňovaniu evolučnej teórie. Hoci kostra Archaeoraptora bola falzifikátom, existujú aj iné, potvrdené nálezy operených dinosaurov, ktoré poukazujú na vývojovú súvislosť medzi vtákmi a teropódnymi dinosaurami.
|
|
||||||
Černobyľská havária sa stala 26. apríla 1986 v Černobyľskej atómovej elektrárni Vladimira Iľjiča Lenina v Ukrajinskej sovietskej socialistickej republike (SSR), súčasti Sovietskeho zväzu. Ide o doposiaľ najničivejšiu jadrovú haváriu.
|
|
||||||
V priebehu experimentu a testu nového bezpečnostného systému došlo k prehriatiu a následnej explózii kanálového varného reaktora s uránovo-grafitovým moderátorom (RBMK-1000), ktorá do ovzdušia uvoľnila rádioaktívny mrak, ktorý postupoval cez západnú časť Sovietskeho zväzu, východnú Európu a Škandináviu. Boli kontaminované rozsiahle oblasti Ukrajinskej SSR, Bieloruskej SSR a Ruskej sovietskej federatívnej socialistickej republiky, čo si vyžiadalo evakuáciu a presídlenie približne 200 000 obyvateľov. Okolo 70 % rádioaktívneho spádu skončilo v Bieloruskej SSR. Nehoda zvýšila obavy o bezpečnosť sovietskeho jadrového priemyslu, spomalila jeho expanziu a zároveň prinútila sovietsku vládu prehodnotiť mieru utajovania. Nástupnícke štáty Sovietskeho zväzu – Rusko, Ukrajina a Bielorusko – dodnes nesú bremeno pokračujúcich nákladov na dekontamináciu a liečenie ochorení spôsobených černobyľskou haváriou. Je náročné presne vyčísliť počet úmrtí spôsobených udalosťami v Černobyle. Odhady sa pohybujú od stoviek po stovky tisíc. Problém je stále široko diskutovaný a jeho dlhodobým dopadom sa stále celkom neporozumelo.
|
|
||||||
Diaľnica A1 je najdlhšia, najvýznamnejšia a počas letnej sezóny i najvyťaženejšia chorvátska diaľnica. Spája hlavné mesto Záhreb s druhým najväčším mestom krajiny Split, ktoré je zároveň metropolou Dalmácie a jedným z najvyhľadávanejších letných turistických lokalít.
|
|
||||||
Diaľnica predstavuje dôležitý severojužný dopravný koridor Chorvátska a je významnou súčasťou Jadransko-iónskej diaľnice, ktorá v budúcnosti prepojí letoviská na pobreží Jadranského a Iónskeho mora od Terstu až po juh Peloponézskeho polostrova. Diaľnica spája mnohé významné chorvátske mestá a takisto zabezpečuje prístup do viacerých národných i prírodných parkov, pamiatok svetového kultúrneho dedičstva a do podstatnej časti prímorských letovísk. Po jej trase vedú dve európske cesty: E65 na úseku Záhreb – Bosiljevo a Žuta Lokva – Vrgorac a E71 na úseku Záhreb – Dugopolje (Split).
|
|
||||||
Z celkovej plánovanej dĺžky 569,3 km je v súčasnosti v prevádzke 480,7 km medzi Záhrebom a Ploče, pričom diaľnica spája mestá Karlovac, Gospić, Zadar, Šibenik, Split a Makarska. Najnovším otvoreným je úsek Vrgorac – Ploče dlhý 10,3 km, ktorý bol sprejazdnený koncom roka 2013. V máji 2009 sa začala výstavba na úseku Doli – Dubrovnik, avšak len formálne, tesne pred miestnymi komunálnymi voľbami. Stavebné náklady na výstavbu diaľnice sa doteraz vyšplhali na hodnotu troch miliárd eur.
|
|
||||||
Na úseku diaľnice medzi Záhrebom a Vrgoracom bolo vybudovaných spolu 361 objektov – mostov, tunelov, nadjazdov, podjazdov, a pod. – ktoré predstavujú okolo 20 percent dĺžky tohto úseku diaľnice.
|
|
||||||
Diaľnica A1 je na celej svojej dĺžke spoplatnená, pričom mýtne sa vyberá v mýtniciach, ktoré sa nachádzajú na každom výjazde. Priemerná cena za kilometer je približne 0,41 chorvátskej kuny. Úsek diaľnice zo Záhrebu po križovatku Bosiljevo spravuje spoločnosť Autocesta Rijeka-Zagreb (ARZ) a zvyšok Hrvatske autoceste (HAC).
|
|
||||||
Dňa 13. októbra 1990 preletel nad územím Česko-Slovenska a Poľska rýchlo sa pohybujúci dotyčnicový meteoroid EN131090. Teleso vletelo do zemskej atmosféry a po niekoľkých sekundách z nej opäť vyletelo do kozmického priestoru. Pozorovanie takejto udalosti je pomerne vzácne, pričom táto bola ešte len druhá vedecky pozorovaná a prvá, kedy sa teleso podarilo zachytiť kamerami z dvoch rôznych stanovíšť, a tak následne vypočítať charakteristiky jeho obežnej dráhy v slnečnej sústave. Ukázalo sa, že stretnutie so Zemou obežnú dráhu meteoroidu významne zmenilo. Do malej miery sa zmenili aj niektoré jeho fyzikálne vlastnosti (hmotnosť a povrch).
|
|
||||||
Prelet telesa pozorovali vizuálne, rádiovo a fotograficky. Vizuálne pozorovanie hlásili nezávisle na sebe traja českí pozorovatelia komét Petr Pravec, Pavel Klásek a Lucie Bulíčková. Podľa ich hlásenia udalosť začala v čase 3h 27m 16s ± 3s UT, pričom bolid (jasný meteor, t. j. svetelný jav, ktorý sprevádza prelet meteoroidu atmosférou) sa pohyboval z juhu na sever. Takisto zanechal po sebe 10 sekúnd viditeľnú stopu. Gotfred Møbjerg Kristensen zaznamenal v Havdrupe v Dánsku odraz rádiového signálu od prelietajúceho telesa v čase 3h 27m 24s ± 6s UT, pričom tento odraz trval 78 sekúnd.
|
|
||||||
Najviac údajov sa podarilo získať vďaka fotografickým pozorovaniam kamerami Európskej bolidovej siete. Ide o prvú udalosť tohto typu zachytenú kamerami z dvoch stanovíšť, čo umožňuje geometrickými metódami pomerne presne určiť dráhu telesa. Bolid zachytili na československých staniciach Červená hora (v okrese Opava) a Svratouch (v okrese Chrudim) statickými kamerami vybavenými širokouhlými objektívmi (tzv. rybím okom), ktoré snímajú celú oblohu. Cennou sa ukázala najmä snímka z Červenej hory, na ktorej je zachytená trajektória bolidu s dĺžkou 110°. Trajektória začína asi 51° nad južným horizontom, prechádza len o 1° západne od zenitu a mizne 19° nad severným horizontom. Zachytená stopa teda preťala asi 60 % oblohy. Kamera bola vybavená rotujúcou uzávierkou, ktorá prerušovala expozíciu snímky 12,5-krát za sekundu, a tak rozdelila zachytenú trasu bolidu na malé úseky, čo umožnilo určiť rýchlosť telesa, ktoré prelietalo. Posledné 4° však už bola uhlová rýchlosť telesa tak malá, že ju prístroj nebol schopný rozlíšiť. Snímka zo Svratouchu zachytila trajektóriu bolidu iba v dĺžke 15° so začiatkom 30° nad severozápadným horizontom, a bolid bol na nej navyše pomerne slabý. Napriek tomu aj tieto údaje postačovali na potrebné výpočty.
|
|
||||||
Biomasa je biologický materiál pochádzajúci zo živých alebo nedávno žijúcich organizmov. Najčastejšie odkazuje na rastliny alebo materiály na rastlinnej báze, ktoré sa špecificky označujú ako lignocelulózová biomasa. Ako zdroj energie sa môže použiť priamo spaľovaním za vzniku tepla, alebo nepriamo po premene na rôzne formy biopalív. Premenu biomasy na biopalivo je možné dosiahnuť tepelne, chemicky alebo biochemicky.
|
|
||||||
Drevo dnes zostáva najväčším energetickým zdrojom biomasy. Príklady zahŕňajú lesné pozostatky (ako sú napr. odumreté stromy, konáre a pne), vetvičky, drevná štiepka. V druhom ponímaní biomasa zahŕňa rastlinnú alebo živočíšnu hmotu, ktorá môže byť prevedená na vlákna alebo iné priemyselné chemikálie vrátane biopalív. Priemyselná biomasa môže byť produkovaná z mnohých druhov rastlín, ako ozdobnica čínska (Miscanthus sinensis), proso, konope, kukurica, topoľ, vŕba, cirok, cukrová trstina, repka olejná, bambus a rôznych ďalších druhov stromov od eukalyptu po palmu olejnú.
|
|
||||||
Rastlinná energia je produkovaná z plodín špeciálne pestovaných ako palivo, ktoré poskytnú veľké výstupné množstvo biomasy pri malej vstupnej energii. Príkladom takejto rastliny je pšenica, ktorá typicky poskytne 7,5 až 8 ton zrna a 3,5 až 5 ton slamy z hektára. Zrno sa môže použiť na kvapalné pohonné hmoty, slama sa môže spáliť s cieľom produkcie tepla alebo elektriny.
|
|
||||||
"Rastlinná biomasa sa môže degradovať z celulózy na glukózu a výsledný cukor sa môže použiť ako biopalivo prvej generácie. Biomasu možno premeniť na iné použiteľné látky ako napr. metán, pohonné hmoty ako etanol a bionafta. Hnijúce odpadky, poľnohospodársky odpad a odpad po ľuďoch, to všetko uvoľňuje metán – tiež nazývaný ""skládkový plyn"" alebo ""bioplyn"". Plodiny ako kukuricu a cukrovú trstinu možno fermentovať na etanol. Bionafta, ďalšia pohonná látka, sa dá vyrábať zo zvyškov potravinových produktov ako sú rastlinné oleje a živočíšne tuky."
|
|
||||||
Premonštrátsky kláštor s Kostolom svätého Jána Krstiteľa je barokový sakrálny komplex nachádzajúci sa vo východoslovenskej obci Jasov, západne od Košíc, v okrese Košice-okolie v Košickom kraji.
|
|
||||||
"Komplex budov kláštora a Kostola svätého Jána Krstiteľa spolu s kláštornou záhradou vďaka architektonickej ako aj umelecko-historickej hodnote patrí k najcennejším pamiatkam neskorobarokového a rokokového umenia na Slovensku. Kláštor okrem vlastného historického a spiritualistického významu je aj dôležitým pamätníkom duchovnej kultúry; v kláštorných priestoroch sa nachádza jedna z najvzácnejších knižníc na Slovensku s približne osemdesiattisíc zväzkami kníh. V neposlednom rade je kláštorný komplex významný aj ako pamätník záhradnej architektúry – rozľahlá kláštorná záhrada patrí medzi slovenské unikáty a krásne príklady záhradnej kultúry druhej polovice 18. storočia."
|
|
||||||
Západné Karpaty sú pásmové pohorie oblúkového tvaru, sú súčasťou alpsko-himalájskej vrásovo-príkrovovej sústavy, hlavne jej severnej vetvy, ktorá je označovaná ako alpidy. Západné Karpaty sú najsevernejše položeným alpínskym pohorím. Západné Karpaty, hlavne ich predterciérny vývoj je veľmi blízky Východným Alpám a tvorí prechodný celok medzi Alpami a Východnými Karpatami. Geologický vývoj jednotlivých oblastí bol pomerne zložitý – je to výsledok tektonických premien (vrásnenia, posunov a tvorby príkrovov) sedimentačných bazénov rôzneho typu v druho- až treťohorách. Táto premena zahŕňala niekedy len samotnú výplň týchto bazénov, niekedy aj ich pôvodný podklad a jej výsledkom je zložitá pásmová stavba karpatského oblúka.
|
|
||||||
Karpaty sú na západe voči Alpám ohraničené údolím Dunaj, geologicky je to Karnutská brána, ktorá sa nachádza medzi pohorím Leitha a Hainburskými vrchmi. Geologickou hranicou na západe je raabska línia. Na východe je hranica medzi západnými a Východnými Karpatami vymedzená len formálne, predstavuje ju údolie rieky Uh, vo flyšovom pásme je hranicou Przemyslská sigmoida. Severné ohraničenie tvoria okraje príkrovov na predpolí. V Česku je to približne línia Znojmo-Přerov-Karviná. Južná hranica Západných Karpát je nezreteľná (je to dôsledkom hlbokého prieniku nížin Panónskej panvy do horskej sústavy) všeobecne ja za južnú hranicu považovaná stredomaďarská zlomová línia južne od Balatonu.
|
|
||||||
Janko Kráľ, často označovaný ako básnik-búrlivák, bol slovenský národný buditeľ, predstaviteľ romantizmu a jeden z najvýznamnejších a najradikálnejších básnikov štúrovskej generácie. Narodil sa 24. apríla 1822 do rodiny mäsiara a krčmára Jana Kráľa a jeho ženy Žofie. Vzdelanie získaval vo svojom rodisku, v Liptovskom Mikuláši, na základnej škole (1828 – 1834). V rokoch 1835 – 1837 navštevoval gymnázium v Šajavskom Gemeri. 4. septembra 1837 sa zapísal na lýceum v Levoči, kde študoval do roku 1841. Z tohto obdobia sa zachovali dve jeho latinské práce, z toho jedna báseň, ale ťažko tu ešte konkrétne hovoriť o jeho básnických prvotinách.
|
|
||||||
20. septembra 1842 sa vo veku 20 rokov zapísal na evanjelické lýceum v Bratislave, v centre mladých štúrovcov na čele s námestníkom Juraja Palkoviča – Ľudovítom Štúrom. Tu začal písať svoje prvotiny, vtedy ešte v češtine a od roku 1843 už v Štúrovej slovenčine. Podľa klasifikačných záznamov študoval s priemerným prospechom. Aktívne sa zapájal do literárnych a najmä zberateľských prác Katedry reči a literatúry československej. Istý čas dokonca býval u Ľudovíta Štúra.
|
|
||||||
The Beatles boli anglická rokenrolová skupina, ktorá vznikla v roku 1960 v Liverpoole. Skupina účinkovala v rokoch 1960 – 1970. S členmi, ktorými boli John Lennon (gitara a spev), Paul McCartney (basgitara a spev), George Harrison (sólová gitara a spev) a Ringo Starr (bicie a spev), sa stali najvplyvnejšími a najdôležitejšími hudobnými umelcami rockovej doby Ich hudobné začiatky boli ovplyvnené skiffle, bigbítom a rokenrolom 50. rokov 20. storočia. V čase svojej existencie experimentovali s rôznymi hudobnými štýlmi: od popu, balád a indickej hudby po psychedéliu a hard rock. Často pritom využívali vplyvy z klasickej hudby, a inovatívne nekonvenčné nahrávacie techniky. V roku 1963 ich nesmierna popularita spôsobila fenomén, ktorý dostal názov „Beatlemania“. Hlavný podiel na ich tvorbe malo skladateľské duo Lennon-McCartney. Postupne sa ich hudobná tvorba vyvíjala do komplikovanejších štruktúr. Ich skladby patrili k tým, ktoré sa podieľali na vývoji umeleckých foriem v populárnej hudbe ako aj v kontrakultúre 60. rokov.
|
|
||||||
Od svojho založenia v roku 1960 si skupina The Beatles začala po prvé tri roky budovať svoju hudobnú kariéru v liverpoolskych kluboch a v Hamburgu. Na basovú gitaru v tom čase s nimi hrával Stuart Sutcliffe. Lennon, McCartney a Harrison spočiatku dlhšiu dobu hľadali hráča na bicie nástroje. Prvým bubeníkom kapely bol Pete Best, neskôr, v roku 1962, ho nahradil Ringo Starr. O ich profesionálny rast sa postaral manažér Brian Epstein, ich hudobným producentom pri nahrávaní bol „Piaty Beatle“, George Martin.
|
|
||||||
Prvým ozajstným oficiálnym hitom od The Beatles bola v roku 1962 nahrávka piesne „Love Me Do“. Po vypuknutí Beatlemánie v roku 1963 dostala skupina meno „the Fab Four“ (niečo ako „úžasná štvorka“) a začiatkom nasledujúceho roku 1964 sa stali medzinárodnými hviezdami, ktoré boli lídrami ďalšieho fenoménu vtedajšej populárnej kultúry, známeho ako Britská invázia. Od roku 1965 The Beales produkovali stále inovatívnejšie hudobné nahrávky. Postupne takto vydali albumy ako Rubber Soul (1965), Revolver (1966), Sgt. Pepper's Lonely Hearts Club Band (1967), The Beatles (známy aj ako White Album, 1968) a Abbey Road (1969). Po rozpade skupiny v roku 1970 mal každý z členov skupiny úspešnú sólovú hudobnú kariéru. John Lennon zomrel po atentáte v roku 1980, George Harrison skonal na rakovinu pľúc v roku 2001. McCartney a Starr, ktorí žijú dodnes, sú stále hudobne aktívni.
|
|
||||||
The Beatles s celosvetovo predaným počtom viac ako 800 miliónov nosičov je najpredávanejšou hudobnou skupinou histórie. Z každého z ich albumov Sgt. Pepper’s Lonely Hearts Club Band, The Beatles a Abbey Road sa predalo po viac ako 30 miliónov kusov. V rebríčku 500 najlepších albumov všetkých čias, ktorý v roku 2009 vydal časopis Rolling Stone má skupina jedenásť albumov, z toho štyri sú v prvej desiatke vrátane absolútneho prvenstva, albumu Sgt. Pepper’s Lonely Hearts Club Band. V britských rebríčkoch má táto kapela viacero vrcholových albumov a v Spojenom kráľovstve predajom singlov skupina prekonala všetkých ostatných umelcov. Kapela The Beatles je, s certifikovaným počtom 178 miliónov nosičov, aj najpredávanejším hudobným umelcom v Spojených štátoch. The Beatles sú aj na vrchole zoznamu najúspešnejších umelcov všetkých čias, ktorý v roku 2008 sa uverejnil časopis Billboard. Dvadsiatimi singlami na vrchole sú rekordmanmi rebríčka Hot 100. The Beatles majú sedem cien Grammy, Oscara za filmovú hudbu a pätnásťkrát získali cenu Ivor Novello Awards. V roku 1988 bola skupina uvedená do rokenrolovej sieni slávy. Medzi rokmi 1994 až 2015 boli do tejto sieni postupne uvedení aj členovia skupiny ako jednotlivci. Týždenník Time dal túto skupinu do svojho zoznamu Stovky najdôležitejších ľudí storočia. Z ich hitu, skladby „Yesterday“, vzniklo viac ako 3000 coververzií. Táto pieseň bola niekoľkokrát označená za najúspešnejšiu a najlepšiu skladbu 20. storočia.
|
|
||||||
Mars je štvrtá planéta slnečnej sústavy v poradí od Slnka. Je to druhá najmenšia planéta (po Merkúre). Pomenovaná je po Marsovi, starorímskom bohovi vojny. Jeho dráha sa nachádza až za dráhou Zeme. Ide o planétu terestrického typu, to znamená, že má pevný horninový povrch pokrytý impaktnými krátermi, vysokými sopkami, hlbokými kaňonmi a ďalšími útvarmi. Obiehajú ho dva mesiace nepravidelného tvaru pomenované Fobos a Deimos.
|
|
||||||
V období, keď je Mars v opozícii (nachádza sa na opačnej strane oblohy ako Slnko), je viditeľný na oblohe po celú noc. Prvé písomné záznamy o planéte a jej pozorovaní pochádzajú z obdobia prvých civilizácií. Všetky veľké staroveké civilizácie, Egypťania, Babylončania a Gréci, vedeli o tejto „putujúcej hviezde“ a dávali jej svoje pomenovania. Považovali ju za symbol ohňa a krvi, pretože horniny, pôda a obloha na planéte majú červený, alebo ružový odtieň. Nazývali ju „Červený objekt“, „Nebeský oheň“, „Hviezda smrti“ alebo „Boh vojny“.
|
|
||||||
Takmer 20 úspešných kozmických sond od 60. rokov 20. storočia umožnilo detailné skúmanie planéty. V súčasnosti (2019) je na obežnej dráhe Marsu šesť funkčných sond: 2001 Mars Odyssey, Mars Express, Mars Reconnaissance Orbiter, MAVEN, Mars Orbiter Mission a ExoMars Trace Gas Orbiter a dve na povrchu: Curiosity (vozidlo) a InSight (pristávací modul). Tieto sondy poskytujú údaje, umožňujúce mapovať väčšiu časť povrchu, definovať základné historické obdobia, či porozumieť základným javom odohrávajúcim sa na planéte. Mars Orbiter Mission z Indickej vesmírnej výskumnej organizácie (ISRO), vypustenej 5. novembra 2013 sa stala štvrtou agentúrou po Sovietskom vesmírnom programe, NASA a ESA, ktorá dosiahla Mars. 28. septembra 2015 bola potvrdená existencia tekutej vody na Marse.
|
|
||||||
Toki pona je izolačný umelý jazyk vytvorený kanadskou lingvistkou a prekladateľkou Sonjou Lang ako filozofický jazyk, ktorý má zjednodušiť myslenie a komunikáciu. V roku 2001 bol prvýkrát prezentovaný na internete a v roku 2014 bol vo svojej kompletnej forme publikovaný v knihe Toki Pona: The Language of Good (t. j. „Toki pona: Jazyk dobra“). Po publikácii sa začala malá komunita hovorcov rozrastať. Používatelia sa väčšinou pohybujú v online chatovacích miestnostiach, na sociálnych sieťach alebo iných skupinách, ale počas rokov prebehlo tiež niekoľko organizovaných osobných stretnutí.
|
|
||||||
Základným rysom toki pony je minimalizmus. Sústredí sa na jednoduché univerzálne koncepty a snaží sa vyjadriť čo najviac s použitím čo najjednoduchších prostriedkov. Má 120 – 125 slov a 14 hlások, ktoré idú jednoducho vysloviť naprieč rôznymi jazykmi. Aj keď nebola pôvodne zamýšľaná ako medzinárodný pomocný jazyk, môže tak fungovať. Toki pona je inšpirovaná taoistickou filozofiou a snaží sa pomáhať svojim používateľom sústrediť sa na základné veci. V súlade so Sapir-Whorfovou hypotézou má podporovať pozitívne myslenie. Napriek malej slovnej zásobe sú si hovorcovia schopní rozumieť a komunikovať spolu, pričom spoliehajú hlavne na kontext a kombinácie niekoľkých slov na vyjadrenie konkrétnejších významov.
|
|
||||||
Grécka filozofia je súčasť gréckej kultúry – filozofia, ktorú vytvára grécky národ od antiky až dodnes. Najdôležitejšou etapou vývinu gréckej filozofie je však starogrécka filozofia z obdobia medzi neskorým 7. storočím pred Kr. a rokom 529 n. l., kedy bola zatvorená Platónska akadémia. Neobyčajný význam v dejinách svetového filozofického myslenia však zaujímajú aj helenizované grécke filozofické metamorfózy a byzantská filozofia.
|
|
||||||
Všeobecne je možné povedať, že staroveká grécka filozofia má veľký vplyv na súčasné spoločensko-vedné odvetvia, ako i celkovú modernú vedu. Spoločne s kresťanstvom a rímskym právom je grécka filozofia považovaná za kľúčový pilier západnej (resp. európskej) civilizácie.
|
|
||||||
Zrejme nie je náhoda, že centrá gréckej prírodnej filozofie, ako napríklad Alexandria, Milét či Atény, boli súčasne aj obchodnými strediskami. Rušné trhovisko spravidla spája ľudí z rôznych kultúr a zmierňuje jednotvárnosť poľnohospodárstva.
|
|
||||||
"Vzdušné sily Slovenskej republiky (oficiálne: Vzdušné sily Ozbrojených síl Slovenskej republiky; skratka: VzS OS SR) sú leteckou zložkou Ozbrojených síl Slovenskej republiky, ktorej úlohou je zabezpečenie obrany vzdušného priestoru Slovenska, obrana zvrchovanosti Slovenskej republiky, dôležitých politických a hospodárskych centier, regiónov a vojsk pred údermi vzdušného protivníka, ako aj priama podpora boja pozemných síl. Veliteľom Vzdušných síl OS SR je od 1. augusta 2017 generálmajor Ing. Ľubomír Svoboda."
|
|
||||||
V dôsledku zmenenej geopoliticko-vojenskej situácie po roku 1989 sa velenie vtedajšej federálnej česko-slovenskej armády snažilo posilniť vzdušnú obranu Slovenska. Od 7. mája 1991 tak bola na základni Sliač dislokovaná 81. samostatná stíhacia letka, ktorá spolu so zabezpečovacím práporom plnila úlohy pohotovostného systému a položila základ súčasných Vzdušných síl OS SR. Neskôr bola zreorganizovaná na 1. stíhací letecký pluk. Dňa 30. novembra 1991 bolo vo Zvolene vytvorené veliteľstvo 1. divízie protivzdušnej obrany. Postupne mu boli podriadené protilietadlové raketové útvary v Nitre, Rožňave a Pezinku, ako aj rôzne zabezpečovacie útvary. V októbri 1992 bola federálnym ministerstvom obrany ČSFR vyčlenená skupina pod velením generálmajora Ing. Jána Váňu. Cieľom tejto skupiny bolo vytvoriť organizačné štruktúry budúceho letectva a protivzdušnej obrany SR a zabezpečiť bojaschopnosť letectva a protivzdušnej obrany Slovenska po zániku Česko-Slovenska. Postupne sa táto skupina rozrastala a 1. novembra 1992 vznikla Správa letectva a protivzdušnej obrany pre Slovensko so sídlom v Trenčíne, ktorej činnosť skončila 31. decembra 1992. Dňom 1. januára 1993, spolu so vznikom samostatnej Slovenskej republiky, vzniká Letectvo a protivzdušná obrana Veliteľstva Armády Slovenskej republiky, ktorého veliteľom bol menovaný generálporučík Ing. Štefan Gombík.
|
|
||||||
Ochrana vlastného vzdušného priestoru je jednou z hlavných priorít Vzdušných síl Ozbrojených síl Slovenskej republiky. Vstupom do Organizácie Severoatlantickej zmluvy (NATO) v roku 2004 sa Slovensko zaviazalo, že bude prispievať do Systému integrovanej protivzdušnej a protiraketovej obrany NATO (NATO Integrated Air and Missile Defence System, NATINAMDS), ktorého podstatou je nepretržitá ochrana národných vzdušných priestorov európskych členských štátov NATO a Turecka. NATINAMDS je pod kontrolou Spojeneckého veliteľstva vzdušných síl (Allied Air Command, AIRCOM) so sídlom na leteckej základni Ramstein v Nemecku. Za realizáciu a výkon ochrany nedotknuteľnosti vzdušného priestoru Slovenska v systéme NATINAMDS zodpovedá veliteľ Vzdušných síl OS SR, ktorý má na starosti aj činnosť leteckej pátracej a záchrannej služby pri pátraní po posádkach a cestujúcich lietadiel, ktoré sa ocitli v stave núdze a od júna 2011 aj poskytovanie leteckých navigačných služieb na letisku Sliač všetkým lietadlám bez rozdielu na štátnu a rezortnú príslušnosť.
|
|
||||||
Volkswagen Golf je najdôležitejším modelom nemeckej automobilky Volkswagen a patrí k celosvetovo najpredávanejším automobilom vôbec. Jeho meno je odvodené z nemeckého označenia pre Golfský prúd – nem. Golf-Strom. V Spojených štátoch bola prvá a piata séria predávaná pod názvom Rabbit. V Mexiku sa prvá séria predávala pod názvom Caribe a v Kanade a v Južnej Afrike pod názvom City Golf. Pod týmto názvom sa v Kanade, Brazílii a Argentíne predáva aj štvrtá generácia týchto automobilov. V súčasnosti (2020) sa vyrába ôsma generácia po facelifte.
|
|
||||||
"Golf patrí do kategórie áut nižšej strednej triedy a v Nemecku sa podľa neho táto trieda tiež niekedy nazýva ""Golf-Klasse"". Navrhnutý bol predovšetkým ako rodinný automobil, ale vďaka športovým verziám, kabrioletom, terénnym a úžitkovým prevedeniam sa stal obľúbeným aj medzi mladými ľuďmi a medzi malými podnikateľmi. Vďaka svojej povestnej kvalite je obľúbený aj u starších vodičov. V roku 2007 prekročil počet vyrobených Golfov hranicu 25 miliónov."
|
|
||||||
Golf sa vždy vyrábal ako trojdverový alebo päťdverový hatchback. V trojdverovom prevedení pôvodne vznikala väčšina vozidiel. Prvá a tretia generácia boli vyrábané aj ako kabriolet (štvrtá generácia vychádzala z tretej, len bola opticky zosúladená so štvrtou generáciou), ale aj druhá generácia mohla byť individuálne získaná v tomto karosárskom variante, ktorého produkciu zabezpečovali malosériové tuningové firmy. Od tretej generácie je súčasťou ponuky karoséria kombi s obchodným označením Variant. K modelu Golf tradične patrí aj športová verzia GT a GTI s benzínovým motorom a GTD s dieselovým motorom, časom sa objavili aj ďalšie športovejšie ladené modely ako VR6 alebo R32 s pohonom všetkých kolies. Od roku 1972 boli tieto vozidlá montované taktiež v dnešnej Bosne a Hercegovine. Model piatej generácie s karosériou kabriolet sa predáva pod názvom Eos, na rozdiel od predchádzajúcich kabrioletov má miesto plátenej pevnú skladaciu strechu. Od piatej generácie sú odvodené aj MPV Golf Plus a SUV Volkswagen Cross Golf. Od šiestej generácie je opäť odvodený kabriolet s plátennou strechou.
|
|
|
@ -1,29 +0,0 @@
|
|||||||
import csv
|
|
||||||
import sys
|
|
||||||
|
|
||||||
# load data
|
|
||||||
filename = 'dataminer.csv'
|
|
||||||
file = open(filename, 'rt', encoding='utf-8')
|
|
||||||
text = file.read()
|
|
||||||
|
|
||||||
# split text to sentences, with list of slovak abbreviations
|
|
||||||
from nltk.tokenize.punkt import PunktSentenceTokenizer, PunktParameters
|
|
||||||
punkt_param = PunktParameters()
|
|
||||||
punkt_param.abbrev_types = set([
|
|
||||||
'rokov', 'sgt', 'ing', 'storočia', 't.j', 'kr', 'resp', 'poľ', 'tzv', 'i', 'hebr',
|
|
||||||
'pod', 'napr', 'prof', 'angl', 'lat', 'maď', 'nem', 'franc','slov', 'skr', 'mil',
|
|
||||||
'gr', 'ssp', 'chorv', 'hovor', 'príp', 'sv', 'č', 'stor', 'nór', 'sans',
|
|
||||||
'starogr', 'arab', 'aram', 'r', 'h.m', 'jr', 'tal', 'j',
|
|
||||||
'2', '5', '6', '8', '15', 'atď', 'október', 'ii', 'iii', 'v', 'n', 'm'])
|
|
||||||
sentence_splitter = PunktSentenceTokenizer(punkt_param)
|
|
||||||
sentences = sentence_splitter.tokenize(text)
|
|
||||||
|
|
||||||
sys.stdout = open("textfile.csv", "w", encoding='utf-8')
|
|
||||||
print("text")
|
|
||||||
for sentences in sentence_splitter.tokenize(text):
|
|
||||||
print(sentences)
|
|
||||||
sys.stdout.close()
|
|
||||||
quit()
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,160 +0,0 @@
|
|||||||
"""
|
|
||||||
Usage example:
|
|
||||||
$ python scripts.py delete_annot jakub.maruniak ./dataset.jsonl ./new_dataset.jsonl
|
|
||||||
|
|
||||||
To see available commands:
|
|
||||||
$ python scripts.py help
|
|
||||||
|
|
||||||
To see available arguments:
|
|
||||||
$ python scripts.py [command] --help
|
|
||||||
"""
|
|
||||||
import spacy
|
|
||||||
import srsly
|
|
||||||
from wasabi import msg
|
|
||||||
import plac
|
|
||||||
import sys
|
|
||||||
import re
|
|
||||||
import itertools
|
|
||||||
|
|
||||||
@plac.annotations(
|
|
||||||
dataset_path=("Path to dataset (Prodigy JSONL format)", "positional", None, str),
|
|
||||||
)
|
|
||||||
def count(
|
|
||||||
dataset_path
|
|
||||||
):
|
|
||||||
"""
|
|
||||||
Print statistics about Prodigy JSONL dataset.
|
|
||||||
Prints number of accepted, rejected and ignored articles.
|
|
||||||
Prints number of annotations of each entity type.
|
|
||||||
Prints how much annotations were made by each annotator.
|
|
||||||
"""
|
|
||||||
# load data
|
|
||||||
# filename = 'ner/skner/sknerv4spans.jsonl'
|
|
||||||
file = open(sys.argv[1], 'rt', encoding='utf-8')
|
|
||||||
text = file.read()
|
|
||||||
|
|
||||||
# count articles
|
|
||||||
countAccept = text.count('accept')
|
|
||||||
countReject = text.count('reject')
|
|
||||||
countSkip = text.count('ignore')
|
|
||||||
countSpans = text.count('tokens')
|
|
||||||
# count entities
|
|
||||||
countPER = text.count('PER')
|
|
||||||
countLOC = text.count('LOC')
|
|
||||||
countORG = text.count('ORG')
|
|
||||||
countMISC = text.count('MISC')
|
|
||||||
|
|
||||||
underline = '\033[04m'
|
|
||||||
reset = '\033[0m'
|
|
||||||
red = '\033[31m'
|
|
||||||
green='\033[32m'
|
|
||||||
gray='\033[37m'
|
|
||||||
|
|
||||||
# table v1
|
|
||||||
#from lib import TableIt
|
|
||||||
#table1 = [
|
|
||||||
# ['Prijatých', countAccept],
|
|
||||||
# ['Zamietnutých', countReject],
|
|
||||||
# ['Preskočených', countSkip],
|
|
||||||
# ['------------', '------------'],
|
|
||||||
# ['Spolu', countSpans]
|
|
||||||
#]
|
|
||||||
#
|
|
||||||
#table = [
|
|
||||||
# ['Entita', 'Počet'],
|
|
||||||
# ['PER', countPER],
|
|
||||||
# ['LOC', countLOC],
|
|
||||||
# ['ORG', countORG],
|
|
||||||
# ['MISC', countMISC]
|
|
||||||
#]
|
|
||||||
#print('\nPočet anotovaných článkov:')
|
|
||||||
#TableIt.printTable(table1)
|
|
||||||
#print('\nPočet jednotlivých entít:')
|
|
||||||
#TableIt.printTable(table, useFieldNames=True, color=(26, 156, 171))
|
|
||||||
|
|
||||||
# table v2
|
|
||||||
print(underline + '\nPočet anotovaných článkov:' + reset)
|
|
||||||
print(green + "%-15s %-20s" %("Prijatých", countAccept) + reset)
|
|
||||||
print(red + "%-15s %-15s" %("Zamietnutých", countReject) + reset)
|
|
||||||
print(gray + "%-15s %-15s" %("Preskočených", countSkip) + reset)
|
|
||||||
print("%-15s" %("---------------------"))
|
|
||||||
print("%-15s %-15s" %("Spolu", countSpans))
|
|
||||||
|
|
||||||
print(underline + '\nPočet jednotlivých entít:' + reset)
|
|
||||||
print("%-10s %-10s" %("Entita:", "Počet:"))
|
|
||||||
print("%-10s" %("----------------"))
|
|
||||||
print("%-10s %-10s" %("PER", countPER))
|
|
||||||
print("%-10s %-10s" %("LOC", countLOC))
|
|
||||||
print("%-10s %-10s" %("ORG", countORG))
|
|
||||||
print("%-10s %-10s" %("MISC", countMISC))
|
|
||||||
|
|
||||||
# kto anotoval koľko?
|
|
||||||
frequency = {}
|
|
||||||
#Open the sample text file in read mode.
|
|
||||||
#document_text = open('sample.txt', 'r')
|
|
||||||
#convert the string of the document in lowercase and assign it to text_string variable.
|
|
||||||
#text = document_text.read().lower()
|
|
||||||
regex1 = '"_session_id":(.*?),'
|
|
||||||
pattern = re.findall(regex1, text)
|
|
||||||
for word in pattern:
|
|
||||||
count = frequency.get(word,0)
|
|
||||||
frequency[word] = count + 1
|
|
||||||
frequency_list = frequency.keys()
|
|
||||||
print(underline + '\nKto anotoval koľko článkov?' + reset)
|
|
||||||
for words in frequency_list:
|
|
||||||
print(words, frequency[words])
|
|
||||||
|
|
||||||
|
|
||||||
@plac.annotations(
|
|
||||||
annotator=("Keep annotations from this annotator (email address or nickname)", "positional", None, str),
|
|
||||||
dataset_path=("Path to dataset (Prodigy JSONL format)", "positional", None, str),
|
|
||||||
new_dataset_path=("Path to save new dataset(Prodigy JSONL format)", "positional", None, str),
|
|
||||||
)
|
|
||||||
def delete_annot(
|
|
||||||
annotator, dataset_path, new_dataset_path
|
|
||||||
):
|
|
||||||
"""
|
|
||||||
Load Prodigy JSONL dataset,
|
|
||||||
and keep annotations only from one annotator.
|
|
||||||
"""
|
|
||||||
file1 = open(sys.argv[2], 'r', encoding='utf-8')
|
|
||||||
file2 = open(sys.argv[3],'w', encoding='utf-8')
|
|
||||||
|
|
||||||
for line in file1.readlines():
|
|
||||||
x = re.findall(sys.argv[1], line)
|
|
||||||
if x:
|
|
||||||
print(line)
|
|
||||||
file2.write(line)
|
|
||||||
|
|
||||||
file1.close()
|
|
||||||
file2.close()
|
|
||||||
|
|
||||||
def modelinfo(
|
|
||||||
):
|
|
||||||
"""
|
|
||||||
Print information about trained model (Precision, Recall and F-Score)
|
|
||||||
"""
|
|
||||||
with open('build/train/nerposparser/model-best/meta.json', 'rt') as f:
|
|
||||||
for line in itertools.islice(f, 31, 54):
|
|
||||||
print(line, end =" ")
|
|
||||||
|
|
||||||
def helpme(
|
|
||||||
):
|
|
||||||
print("Available commands:",
|
|
||||||
"\ncount - Print statistics about Prodigy JSONL dataset",
|
|
||||||
"\ndelete_annot - Create dataset with annotations from only specific annotator",
|
|
||||||
"\nmodelinfo - Prints informations about trained model (Precision, Recall and F-Score)")
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
opts = {"count": count,
|
|
||||||
"delete_annot": delete_annot,
|
|
||||||
"modelinfo": modelinfo,
|
|
||||||
"help": helpme}
|
|
||||||
cmd = sys.argv.pop(1)
|
|
||||||
if cmd not in opts:
|
|
||||||
msg.fail(f"Unknown command: {cmd}", f"Available: {', '.join(opts)}", exits=1)
|
|
||||||
try:
|
|
||||||
plac.call(opts[cmd])
|
|
||||||
except KeyboardInterrupt:
|
|
||||||
msg.warn("Stopped.", exits=1)
|
|
@ -1,24 +0,0 @@
|
|||||||
set -e
|
|
||||||
OUTDIR=build/train/output
|
|
||||||
TRAINDIR=build/train
|
|
||||||
|
|
||||||
# Delete old training results
|
|
||||||
rm -r $TRAINDIR
|
|
||||||
|
|
||||||
mkdir -p $TRAINDIR
|
|
||||||
mkdir -p $OUTDIR
|
|
||||||
mkdir -p dist
|
|
||||||
# Delete old training results
|
|
||||||
rm -rf $OUTDIR/*
|
|
||||||
# Train dependency and POS
|
|
||||||
spacy train sk $OUTDIR ./build/input/slovak-treebank ./build/input/ud-artificial-gapping --n-iter 15 -p tagger,parser
|
|
||||||
rm -rf $TRAINDIR/posparser
|
|
||||||
mv $OUTDIR/model-best $TRAINDIR/posparser
|
|
||||||
# Train NER
|
|
||||||
# custom script for training, but it takes too long... input is JSONL file (db from Prodigy)
|
|
||||||
# python custom_train.py train ./build/train/posparser ./train.jsonl ./eval.jsonl -o ./build/train/nerposparser -n 15
|
|
||||||
spacy train sk $TRAINDIR/nerposparser ./ner/experiments/34sknerfull.json ./ner/experiments/34wikiartfull.json --n-iter 15 -p ner
|
|
||||||
# Package model
|
|
||||||
spacy package $TRAINDIR/nerposparser dist --meta-path ./meta.json --force
|
|
||||||
cd dist/sk_sk1-0.2.0
|
|
||||||
python ./setup.py sdist --dist-dir ../
|
|
@ -1,80 +0,0 @@
|
|||||||
"""
|
|
||||||
Visualize the data with Streamlit and spaCy.
|
|
||||||
https://github.com/explosion/projects/blob/master/ner-drugs/streamlit_visualizer.py
|
|
||||||
|
|
||||||
Usage example:
|
|
||||||
$ streamlit run visualizer.py visualize ./dataset.jsonl
|
|
||||||
"""
|
|
||||||
import streamlit as st
|
|
||||||
from spacy import displacy
|
|
||||||
import srsly
|
|
||||||
import sys
|
|
||||||
import plac
|
|
||||||
from wasabi import msg
|
|
||||||
|
|
||||||
@plac.annotations(
|
|
||||||
dataset_path=("Path to dataset (Prodigy JSONL format)", "positional", None, str),
|
|
||||||
)
|
|
||||||
def visualize(
|
|
||||||
dataset_path
|
|
||||||
):
|
|
||||||
FILES = [sys.argv[1]]
|
|
||||||
MISC = "MISC"
|
|
||||||
|
|
||||||
HTML_WRAPPER = "<div style='border-bottom: 1px solid #ccc; padding: 20px 0'>{}</div>"
|
|
||||||
HTML_WRAPPER1 = "<div style='border-bottom: 2px solid #000; padding: 0 0 20px 0'>{}</div>"
|
|
||||||
SETTINGS = {"style": "ent", "manual": True, "options": {"colors": {MISC: "#d1bcff"}}}
|
|
||||||
|
|
||||||
@st.cache(allow_output_mutation=True)
|
|
||||||
def load_data(filepath):
|
|
||||||
return list(srsly.read_jsonl(filepath))
|
|
||||||
|
|
||||||
st.sidebar.title("Data visualizer")
|
|
||||||
st.sidebar.markdown(
|
|
||||||
"Visualize the annotations using [displaCy](https://spacy.io/usage/visualizers) "
|
|
||||||
"and view stats about the datasets."
|
|
||||||
)
|
|
||||||
data_file = st.sidebar.selectbox("Dataset", FILES)
|
|
||||||
data = load_data(data_file)
|
|
||||||
n_no_ents = 0
|
|
||||||
n_total_ents = 0
|
|
||||||
accepted = 0
|
|
||||||
rejected = 0
|
|
||||||
|
|
||||||
st.header(f"Dataset: {data_file} ({len(data)})")
|
|
||||||
st.markdown(HTML_WRAPPER1.format("Visualize only accepted examples and their annotations."), unsafe_allow_html=True)
|
|
||||||
for eg in data:
|
|
||||||
if eg["answer"] == "accept":
|
|
||||||
accepted += 1
|
|
||||||
if eg["answer"] != "accept":
|
|
||||||
rejected += 1
|
|
||||||
continue
|
|
||||||
row = {"text": eg["text"], "ents": eg.get("spans", [])}
|
|
||||||
answer = {"answer": eg.get("answer", [])}
|
|
||||||
n_total_ents += len(row["ents"])
|
|
||||||
if not row["ents"]:
|
|
||||||
n_no_ents += 1
|
|
||||||
html = displacy.render(row, **SETTINGS).replace("\n\n", "\n")
|
|
||||||
st.markdown(HTML_WRAPPER.format(html), unsafe_allow_html=True)
|
|
||||||
|
|
||||||
st.sidebar.markdown(
|
|
||||||
f"""
|
|
||||||
| `{data_file}` | |
|
|
||||||
| --- | ---: |
|
|
||||||
| Total examples | {len(data):,} |
|
|
||||||
| Accepted examples | {accepted:,} |
|
|
||||||
| Rejected examples | {rejected:,} |
|
|
||||||
| Total entities | {n_total_ents:,} |
|
|
||||||
| Examples with no entities | {n_no_ents:,} |
|
|
||||||
""", unsafe_allow_html=True
|
|
||||||
)
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
opts = {"visualize": visualize}
|
|
||||||
cmd = sys.argv.pop(1)
|
|
||||||
if cmd not in opts:
|
|
||||||
msg.fail(f"Unknown command: {cmd}", f"Available: {', '.join(opts)}", exits=1)
|
|
||||||
try:
|
|
||||||
plac.call(opts[cmd])
|
|
||||||
except KeyboardInterrupt:
|
|
||||||
msg.warn("Stopped.", exits=1)
|
|
@ -1,137 +0,0 @@
|
|||||||
# Trénovacie experimenty
|
|
||||||
|
|
||||||
Do tohto súboru sa budú postupne zapisovať štatistiky a poznámky ku vykonaným trénovacím experimentom.
|
|
||||||
|
|
||||||
V rámci experimentu pracujeme s dvomi databázami:
|
|
||||||
- Wikiart - vlastná anotovaná databáza článkov. Každý článok = 1 veta.
|
|
||||||
- Skner - anotovaná databáza z https://skner.tukekemt.xyz/ . Počet viet v jednotlivých článkoch je rôzny.
|
|
||||||
### Trénovanie Wikiart
|
|
||||||
1. Experiment - trénovanie modelu pomocou databázy Wikiart
|
|
||||||
|
|
||||||
![1.Wikiart](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/jakub_maruniak/dp2021/img/1wikiart.PNG)
|
|
||||||
|
|
||||||
Celkovo 501 článkov.
|
|
||||||
351 použitých na trénovanie, 150 na testovanie.
|
|
||||||
15 iterácii trénovania.
|
|
||||||
F-skóre natrénovaného modelu: 55,55%
|
|
||||||
|
|
||||||
| Entita | Počet anotácii | F-skóre |
|
|
||||||
|--|--|--|
|
|
||||||
|PER|85|41,66%|
|
|
||||||
|LOC|240|65,51%|
|
|
||||||
|ORG|30|0,0%|
|
|
||||||
|MISC|42|44,44%|
|
|
||||||
|
|
||||||
|
|
||||||
### Trénovanie Skner
|
|
||||||
2. Experiment - trénovanie modelu pomocou databázy skner.
|
|
||||||
|
|
||||||
![2.Skner](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/jakub_maruniak/dp2021/img/2skner.PNG)
|
|
||||||
|
|
||||||
1.
|
|
||||||
Celkovo 488 článkov.
|
|
||||||
342 použitých na trénovanie, 146 na testovanie.
|
|
||||||
15 iterácii trénovania.
|
|
||||||
F-skóre natrénovaného modelu: 60,99%
|
|
||||||
|
|
||||||
| Entita | Počet anotácii | F-skóre |
|
|
||||||
|--|--|--|
|
|
||||||
|PER|376|60,07%|
|
|
||||||
|LOC|885|67,39%|
|
|
||||||
|ORG|149|42,10%|
|
|
||||||
|MISC|80|8,69%|
|
|
||||||
|
|
||||||
2.
|
|
||||||
Celkovo 976 článkov.
|
|
||||||
684 použitých na trénovanie, 292 na testovanie.
|
|
||||||
15 iterácii trénovania.
|
|
||||||
F-skóre natrénovaného modelu: 62,9%%
|
|
||||||
|
|
||||||
| Entita | Počet anotácii | F-skóre |
|
|
||||||
|--|--|--|
|
|
||||||
|PER|684|60,68%|
|
|
||||||
|LOC|1417|70,45%|
|
|
||||||
|ORG|280|40,87%|
|
|
||||||
|MISC|416|43,08%|
|
|
||||||
|
|
||||||
|
|
||||||
3.
|
|
||||||
Celkovo 2696 článkov.
|
|
||||||
1871 použitých na trénovanie, 801 na testovanie.
|
|
||||||
15 iterácii trénovania.
|
|
||||||
F-skóre natrénovaného modelu: 70.33%
|
|
||||||
|
|
||||||
| Entita | Počet anotácii | F-skóre |
|
|
||||||
|--|--|--|
|
|
||||||
|PER|1886|71,08%|
|
|
||||||
|LOC|3678|79,01%|
|
|
||||||
|ORG|820|48,81%|
|
|
||||||
|MISC|1171|52,38%|
|
|
||||||
|
|
||||||
|
|
||||||
### 3. Experiment
|
|
||||||
3. Experiment - na natrénovanie modelu je využitá kompletná databáza Skner. Na testovanie modelu je využitá databáza Wikiart.
|
|
||||||
|
|
||||||
1.verzia databázy skner - 488 článkov
|
|
||||||
15 iterácii trénovania.
|
|
||||||
F-skóre natrénovaného modelu: 49,67%
|
|
||||||
|
|
||||||
| Entita | F-skóre |
|
|
||||||
|--|--|
|
|
||||||
|PER|39,08%|
|
|
||||||
|LOC|60,99%|
|
|
||||||
|ORG|27,77%|
|
|
||||||
|MISC|4,44%|
|
|
||||||
|
|
||||||
2.verzia databázy skner - 976 článkov
|
|
||||||
15 iterácii trénovania.
|
|
||||||
F-skóre natrénovaného modelu: 51,08%
|
|
||||||
|
|
||||||
| Entita | F-skóre |
|
|
||||||
|--|--|
|
|
||||||
|PER|38,22%|
|
|
||||||
|LOC|60,83%|
|
|
||||||
|ORG|33,33%|
|
|
||||||
|MISC|30,30%|
|
|
||||||
|
|
||||||
3.verzia databázy skner - 2672 článkov
|
|
||||||
15 iterácii trénovania.
|
|
||||||
F-skóre natrénovaného modelu: 56,26%
|
|
||||||
|
|
||||||
| Entita | F-skóre |
|
|
||||||
|--|--|
|
|
||||||
|PER|45,35%|
|
|
||||||
|LOC|67,25%|
|
|
||||||
|ORG|31,58%|
|
|
||||||
|MISC|39,47%|
|
|
||||||
|
|
||||||
### 4. Experiment
|
|
||||||
4. Experiment - Obe databázy sme zlúčili.
|
|
||||||
|
|
||||||
![4.Merged](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/jakub_maruniak/dp2021/img/4merged.PNG)
|
|
||||||
|
|
||||||
1. verzia
|
|
||||||
Celkovo 989 článkov.
|
|
||||||
693 použitých na trénovanie, 296 na testovanie.
|
|
||||||
15 iterácii trénovania.
|
|
||||||
F-skóre natrénovaného modelu: 61,90%
|
|
||||||
|
|
||||||
| Entita | Počet anotácii | F-skóre |
|
|
||||||
|--|--|--|
|
|
||||||
|PER|461|54,00%|
|
|
||||||
|LOC|1125|71,87%|
|
|
||||||
|ORG|179|42,00%|
|
|
||||||
|MISC|122|18,18%|
|
|
||||||
|
|
||||||
2. verzia
|
|
||||||
Celkovo 3197 článkov.
|
|
||||||
2222 použitých na trénovanie, 951 na testovanie.
|
|
||||||
15 iterácii trénovania.
|
|
||||||
F-skóre natrénovaného modelu: 70,48%
|
|
||||||
|
|
||||||
| Entita | Počet anotácii | F-skóre |
|
|
||||||
|--|--|--|
|
|
||||||
|PER|1971|69,18%|
|
|
||||||
|LOC|3918|80,52%|
|
|
||||||
|ORG|850|42,33%|
|
|
||||||
|MISC|1213|50,24%|
|
|
Before Width: | Height: | Size: 4.8 KiB |
Before Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 4.9 KiB |
@ -1,11 +1,3 @@
|
|||||||
---
|
|
||||||
title: Crowdsourcing
|
|
||||||
published: true
|
|
||||||
taxonomy:
|
|
||||||
category: [tp2020]
|
|
||||||
tag: [annotation,nlp]
|
|
||||||
author: Jakub Maruniak
|
|
||||||
---
|
|
||||||
**Crowdsourcing**
|
**Crowdsourcing**
|
||||||
|
|
||||||
Čo je to crowdsourcing? Výraz _crowdsourcing_ bol prvý krát použitý v júni 2006, kedy editor magazínu Wired, Jeff Howe, vydal článok „The Rise of Crowdsourcing" [1]. V tomto článku a v ďalších príspevkoch na svojom blogu popisuje novú organizačnú formu, koncept, pri ktorom je problém zadaný neznámej skupine riešiteľov. Zákazníci, alebo žiadatelia môžu uverejniť požadované úlohy na crowdsourcingovú platformu, kde dodávatelia – skupina, alebo jednotlivci vykonajú tieto úlohy na základe ich záujmov a schopností [2].
|
Čo je to crowdsourcing? Výraz _crowdsourcing_ bol prvý krát použitý v júni 2006, kedy editor magazínu Wired, Jeff Howe, vydal článok „The Rise of Crowdsourcing" [1]. V tomto článku a v ďalších príspevkoch na svojom blogu popisuje novú organizačnú formu, koncept, pri ktorom je problém zadaný neznámej skupine riešiteľov. Zákazníci, alebo žiadatelia môžu uverejniť požadované úlohy na crowdsourcingovú platformu, kde dodávatelia – skupina, alebo jednotlivci vykonajú tieto úlohy na základe ich záujmov a schopností [2].
|
||||||
|
@ -1,245 +1,25 @@
|
|||||||
---
|
|
||||||
title: Ján Holp
|
|
||||||
published: true
|
|
||||||
taxonomy:
|
|
||||||
category: [dp2021,bp2019]
|
|
||||||
tag: [ir,nlp,pagerank]
|
|
||||||
author: Daniel Hladek
|
|
||||||
---
|
|
||||||
# Ján Holp
|
# Ján Holp
|
||||||
|
|
||||||
*Rok začiatku štúdia*: 2016
|
[Bakalárska práca 2018 - Vyhľadávač na slovenskom internete](https://opac.crzp.sk/?fn=detailBiblioForm&sid=A4CA3C451D400D4BD034603141D1)
|
||||||
|
|
||||||
## Diplomová práca 2021
|
|
||||||
|
|
||||||
*Názov diplomovej práce*: Systém získavania informácií v slovenskom jazyku.
|
|
||||||
|
|
||||||
*Meno vedúceho*: Ing. Daniel Hládek, PhD.
|
|
||||||
|
|
||||||
*Zadanie diplomovej práce*:
|
|
||||||
|
|
||||||
1. Vypracujte prehľad metód ohodnotenia dokumentov v systémoch získavania informácií.
|
|
||||||
2. Implementujte jednoduchý systém pre získavanie informácií v slovenskom jazyku, v ktorom využijete ohodnotenie dokumentov.
|
|
||||||
3. Navrhnite a vypracujte experimenty, v ktorých vyhodnotíte vybrané metódy odhodnotenia dokumentov.
|
|
||||||
4. Navrhnite možné zlepšenia presnosti vyhľadávania.
|
|
||||||
|
|
||||||
Stretnutie 12.3.
|
|
||||||
|
|
||||||
Stav:
|
|
||||||
|
|
||||||
- Implementovaný PageRank, indexovanie webových stránok
|
|
||||||
|
|
||||||
Úlohy:
|
|
||||||
|
|
||||||
- Pripravte experiment s PageRank, databáza SCNC2, vyhodnotenie pomocou P-R-F1
|
|
||||||
- Pozrite do knihy na metódy vyhodnotenta s PageRank
|
|
||||||
- Pozrite do knihy a skúste pripraviť inú metriku.
|
|
||||||
- Popri tom priprave demonštráciu s webovým rozhraním.
|
|
||||||
|
|
||||||
## Diplomový projekt 2 2020
|
|
||||||
|
|
||||||
Zásobník úloh:
|
|
||||||
|
|
||||||
- Urobiť verejné demo - nasadenie pomocou systému Docker. Využiť veľké slovenské dáta z internetu.
|
|
||||||
- zlepšenie Web UI
|
|
||||||
- vytvoriť REST api pre indexovanie dokumentu.
|
|
||||||
- V indexe prideliť ohodnotenie každému dokumentu podľa viacerých metód, napr. PageRank
|
|
||||||
- Využiť vyhodnotenie pri vyhľadávaní
|
|
||||||
|
|
||||||
- **Použiť overovaciu databázu SCNC na vyhodnotenie každej metódy**
|
|
||||||
- **Do konca zimného semestra vytvoriť "Mini Diplomovú prácu cca 8 strán s experimentami" vo forme článku**
|
|
||||||
|
|
||||||
Virtuálne stretnutie 7.1.2020:
|
|
||||||
|
|
||||||
Dohoda na zmene smerovania práce. Chceme:
|
|
||||||
- Rozšíriť BP o vyhľadávanie pomocou PageRank
|
|
||||||
- Doplniť pagerank do indexu z BP
|
|
||||||
- zakomponovať Pagerank do vyhľadávania a zistiť ako to ovplyvnilo P-R
|
|
||||||
- Implementovať podobným spôsobom minimálne jednu ďalšiu metriku zo študijnej literatúry
|
|
||||||
- Zásobník úloh ostáva ak bude čas. Napr. vyrobiť demo aj z BP.
|
|
||||||
|
|
||||||
Virtuálne stretnutie 18.12:2020:
|
|
||||||
|
|
||||||
Žiaden pokrok.
|
|
||||||
|
|
||||||
Virtuálne stretnutie 3.1ľ:2020:
|
|
||||||
|
|
||||||
Riešenie technických problémov ako implementovať PageRank.
|
|
||||||
|
|
||||||
Virtuálne stretnutie 13.11:2020:
|
|
||||||
|
|
||||||
Stav:
|
|
||||||
|
|
||||||
- Vyriešené technické problémy s cassandrou. Vieme indexovať z Cassandra do ES.
|
|
||||||
|
|
||||||
Úlohy na ďalšie stretnutie:
|
|
||||||
|
|
||||||
- urobte návrh metódy PageRank.
|
|
||||||
- priprave Vaše kódy do formy web aplikácie a dajte ich do repozitára.
|
|
||||||
- backend s REST API.
|
|
||||||
- frontend s Javascriptom.
|
|
||||||
- skúste pripraviť Dockerfile s Vašou aplikáciou.
|
|
||||||
|
|
||||||
Virtuálne stretnutie 6.11:2020:
|
|
||||||
|
|
||||||
Stav:
|
|
||||||
|
|
||||||
- Riešenie problémov s cassandrou a javascriptom. Ako funguje funkcia then?
|
|
||||||
|
|
||||||
Úlohy na ďalšie stretnutie:
|
|
||||||
|
|
||||||
- vypracujte funkciu na indexovanie. Vstup je dokument (objekt s textom a metainformáciami). Fukcia zaindexuje dokument do ES.
|
|
||||||
- Naštudujte si ako funguje funkcia then a čo je to callback.
|
|
||||||
- Naštudujte si ako sa používa Promise.
|
|
||||||
- Naštudujte si ako funguje async - await.
|
|
||||||
- https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Asynchronous/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Virtuálne stretnutie 23.10:2020:
|
|
||||||
|
|
||||||
Stav:
|
|
||||||
- Riešenie problémov s cassandrou. Ako vybrať dáta podľa primárneho kľúča.
|
|
||||||
|
|
||||||
Do ďalšiehio stretnutia:
|
|
||||||
|
|
||||||
- pokračovať v otvorených úlohách.
|
|
||||||
- urobte funkciu pre indexovanie jedného dokumentu.
|
|
||||||
|
|
||||||
Virtuálne stretnutie 16.10.
|
|
||||||
|
|
||||||
Stav:
|
|
||||||
|
|
||||||
- Riešenie problémov s pripojením na Cassandru.
|
|
||||||
- Riešenie spôsobu výberu dát z databázy a indexovanie.
|
|
||||||
|
|
||||||
Do ďalšieho stretnutia:
|
|
||||||
|
|
||||||
- Pokračovať v otvorených úlohách z minulého stretnutia.
|
|
||||||
|
|
||||||
Virtuálne stretnutie 2.10.2020
|
|
||||||
|
|
||||||
Urobené:
|
|
||||||
|
|
||||||
- Výber a indexovanie dát z Cassandry
|
|
||||||
|
|
||||||
Do ďalšieho stretnutia:
|
|
||||||
|
|
||||||
- pracovať ďalej na indexovaní, použite Cassandra Javascript API
|
|
||||||
- urobte návrh metódy PageRank
|
|
||||||
- urobte si GIT repozitár nazvite ho dp2021 a dajte tam zdrojové kódy
|
|
||||||
- priprave Vaše kódy do formy web aplikácie
|
|
||||||
- backend s REST API
|
|
||||||
- frontend s Javascriptom
|
|
||||||
- skúste pripraviť Dockerfile s Vašou aplikáciou
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Diplomový projekt 2020
|
|
||||||
|
|
||||||
|
|
||||||
Virtuálne stretnutie 23.6.2020:
|
|
||||||
|
|
||||||
Hotové:
|
|
||||||
|
|
||||||
- funguje databáza Cassandra
|
|
||||||
- funguje web rozhranie
|
|
||||||
- funguje indexovanie zo súboru.
|
|
||||||
|
|
||||||
Výsledky sú v [ZIP súbore](./dp2021/zdrojove_subory/skweb.zip)
|
|
||||||
|
|
||||||
Treba dokončiť:
|
|
||||||
|
|
||||||
- Indexovanie z Cassandra do ES
|
|
||||||
|
|
||||||
Virtuálne stretnutie 14.5.2020:
|
|
||||||
|
|
||||||
Nové úlohy:
|
|
||||||
|
|
||||||
- Rozbehať Cassandra DB a agenta pre získavanie textu
|
|
||||||
- Indexovať dokumnety z Cassandra DB do Elasticsearch
|
|
||||||
- Pokračovať na práci na Web rozhraní
|
|
||||||
- Doriešiť obnovenie slovenskej konfigurácie
|
|
||||||
|
|
||||||
Urobené:
|
|
||||||
|
|
||||||
- rozrobené web rozhranie
|
|
||||||
- rozrobené indexovanie do ElasticSearch
|
|
||||||
|
|
||||||
Revízia 13.5.2020:
|
|
||||||
|
|
||||||
- Potrebné skompletizovať zdrojové kódy.
|
|
||||||
- Nová verzia agenta pre získavanie textu: https://git.kemt.fei.tuke.sk/dano/websucker-pip
|
|
||||||
|
|
||||||
Revízia 9.4.2020:
|
|
||||||
|
|
||||||
*Návod na prácu s Elasticsearch* : [Návod](./dp2021/navod.md)
|
|
||||||
|
|
||||||
*Návod na spustenie web aplikácie* : [Návod](./dp2021/web_api.md)
|
|
||||||
|
|
||||||
*Záznam o doterajšom pokroku* : [Pokrok](./dp2021/pokrok.md)
|
|
||||||
|
|
||||||
Úloha:
|
|
||||||
|
|
||||||
- Nainštalujte si a oboznámte sa s [agentom pre získavanie textu](https://git.kemt.fei.tuke.sk/dano/websucker).
|
|
||||||
- Zistite, aká je štruktúra dokumentov v indexoch.
|
|
||||||
- vytvorte návrh a prototyp webovej aplikácie ktorá bude slúžiť ako rozhranie k vyhľadávaciemu indexu.
|
|
||||||
|
|
||||||
|
|
||||||
Stretnutie 20.2.2020
|
|
||||||
|
|
||||||
Úlohy na tento semester:
|
|
||||||
|
|
||||||
- Nainštalovať Elasticsearch a zindexovať veľkú databázu dát z webu.
|
|
||||||
- Nájsť spôsob ako vytvoriť verejne prístupné demo.
|
|
||||||
|
|
||||||
Do ďalšieho stretnutia:
|
|
||||||
|
|
||||||
- Vytvorte git repozitár a dajte tam výsledky z bakalárskej práce. Vytvorte k tomu návod.
|
|
||||||
- Porozmýšľajte nad HTML používateľským rozhraním.
|
|
||||||
|
|
||||||
|
|
||||||
## Tímový projekt 2019
|
## Tímový projekt 2019
|
||||||
|
|
||||||
*Písomná práca* : [Rešerš](./timovy_projekt)
|
|
||||||
|
|
||||||
|
|
||||||
*Úlohy tímového projektu*:
|
|
||||||
|
|
||||||
- Vypracujte min. 4 stranový abstrakt z knihy "Hang Li: Learning to Rank for Information Retrieval and Natural Language Processing"
|
- Vypracujte min. 4 stranový abstrakt z knihy "Hang Li: Learning to Rank for Information Retrieval and Natural Language Processing"
|
||||||
- Sústreďte sa najprv na algoritmus PageRank a BM25
|
- Sústreďte sa najprv na algoritmus PageRank a BM25
|
||||||
- citujte 10 najvýznamnejších bibliografických zdrojov
|
- citujte 10 najvýznamnejších bibliografických zdrojov
|
||||||
|
|
||||||
|
|
||||||
|
## Návrh na zadanie DP
|
||||||
|
|
||||||
### Poznámky k vypracovaniu DP
|
- Vypracujte prehľad metód ohodnotenia dokumentov v systémoch získavania informácií
|
||||||
|
- Implementujte jednoduchý systém pre získavanie informácií v slovenskom jazyku, v ktorom využijete ohodnotenie dokumentov.
|
||||||
|
- Navrhnite a vypracujte experimenty, v ktorých vyhodnotíte vybrané metódy odhodnotenia dokumentov
|
||||||
|
- Navrhnite možné zlepšenia presnosti vyhľadávania
|
||||||
|
|
||||||
|
## Poznámky k vypracovaniu DP
|
||||||
|
|
||||||
- možnosť pracovať s veľkými dátami Elasticsearch, je nutné sprevádzkovať ES Cluster.
|
- možnosť pracovať s veľkými dátami Elasticsearch, je nutné sprevádzkovať ES Cluster.
|
||||||
- možnosť vypracovať jednoduché demo web vyhľadávača
|
- možnosť vypracovať jednoduché demo web vyhľadávača
|
||||||
- inšpirácia Agent pre získavanie textu "dano/websucker"
|
- inšpirácia Agent pre získavanie textu "dano/websucker"
|
||||||
- Pozrite si Python knižnice pre elasticsearch, a information retrieval (pagerank a pod.)
|
- Pozrite si Python knižnice pre elasticsearch, a information retrieval (pagerank a pod.)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Bakalárska práca 2019
|
|
||||||
|
|
||||||
*Meno vedúceho*: Ing. Daniel Hládek, PhD.
|
|
||||||
|
|
||||||
*Názov bakalárskej práce*: Vyhľadávač na slovenskom internete
|
|
||||||
|
|
||||||
*Text bakalárskej práce*: (https://opac.crzp.sk/?fn=detailBiblioForm&sid=A4CA3C451D400D4BD034603141D1)
|
|
||||||
|
|
||||||
*Zadanie bakalárskej práce*:
|
|
||||||
|
|
||||||
1. Zostaviť prehľad aktuálnych metód vyhľadávania v textových dátach a metód vyhodnotenia presnosti.
|
|
||||||
2. Navrhnúť a opísať vlastnú metódu indexovania a vyhľadávania v slovenskom texte.
|
|
||||||
3. Navrhnúť a vykonať sadu experimentov pomocou ktorých sa vyhodnotí navrhnutá metóda indexovania a vyhľadávania.
|
|
||||||
4. Na základe experimentov navrhnúť vylepšenia navrhnutej metódy vyhľadávania.
|
|
||||||
|
|
||||||
|
|
||||||
[Bakalárska práca 2018 - Vyhľadávač na slovenskom internete](https://opac.crzp.sk/?fn=detailBiblioForm&sid=A4CA3C451D400D4BD034603141D1)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
# Diplomový projekt 2020
|
|
||||||
|
|
||||||
|
|
Before Width: | Height: | Size: 143 KiB |
@ -1,82 +0,0 @@
|
|||||||
//index.js
|
|
||||||
//require the Elasticsearch librray
|
|
||||||
const elasticsearch = require('elasticsearch');
|
|
||||||
// instantiate an elasticsearch client
|
|
||||||
const client = new elasticsearch.Client({
|
|
||||||
hosts: [ 'http://localhost:9200']
|
|
||||||
});
|
|
||||||
//require Express
|
|
||||||
const express = require( 'express' );
|
|
||||||
// instanciate an instance of express and hold the value in a constant called app
|
|
||||||
const app = express();
|
|
||||||
//require the body-parser library. will be used for parsing body requests
|
|
||||||
const bodyParser = require('body-parser')
|
|
||||||
//require the path library
|
|
||||||
const path = require( 'path' );
|
|
||||||
|
|
||||||
//consts
|
|
||||||
|
|
||||||
// ping the client to be sure Elasticsearch is up
|
|
||||||
client.ping({
|
|
||||||
requestTimeout: 30000,
|
|
||||||
}, function(error) {
|
|
||||||
// at this point, eastic search is down, please check your Elasticsearch service
|
|
||||||
if (error) {
|
|
||||||
console.error('elasticsearch cluster is down!');
|
|
||||||
} else {
|
|
||||||
console.log('Everything is ok');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
// use the bodyparser as a middleware
|
|
||||||
app.use(bodyParser.json())
|
|
||||||
// set port for the app to listen on
|
|
||||||
app.set( 'port', process.env.PORT || 3001 );
|
|
||||||
// set path to serve static files
|
|
||||||
app.use( express.static( path.join( __dirname, 'public' )));
|
|
||||||
// enable CORS
|
|
||||||
app.use(function(req, res, next) {
|
|
||||||
res.header("Access-Control-Allow-Origin", "*");
|
|
||||||
res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
|
|
||||||
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
|
|
||||||
next();
|
|
||||||
});
|
|
||||||
|
|
||||||
// defined the base route and return with an HTML file called tempate.html
|
|
||||||
app.get('/', function(req, res){
|
|
||||||
res.sendFile('template2.html', {
|
|
||||||
root: path.join( __dirname, 'views' )
|
|
||||||
});
|
|
||||||
})
|
|
||||||
|
|
||||||
// define the /search route that should return elastic search results
|
|
||||||
app.get('/search', function (req, res){
|
|
||||||
// declare the query object to search elastic search and return only 200 results from the first result found.
|
|
||||||
// also match any data where the name is like the query string sent in
|
|
||||||
let body = {
|
|
||||||
size: 200,
|
|
||||||
from: 0,
|
|
||||||
query: {
|
|
||||||
match: {
|
|
||||||
body: req.query['q'] // demo veryia, tato cast skriptu sa upravi abz vzhladavalo v titulkoch a tele
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// perform the actual search passing in the index, the search query and the type
|
|
||||||
client.search({index:'skweb2', body:body, type:'web_page'})
|
|
||||||
.then(results => {
|
|
||||||
res.send(results.hits.hits);
|
|
||||||
})
|
|
||||||
.catch(err=>{
|
|
||||||
console.log(err)
|
|
||||||
res.send([]);
|
|
||||||
});
|
|
||||||
|
|
||||||
})
|
|
||||||
// listen on the specified port
|
|
||||||
app .listen( app.get( 'port' ), function(){
|
|
||||||
console.log( 'Express server listening on port ' + app.get( 'port' ));
|
|
||||||
} );
|
|
||||||
|
|
||||||
|
|
@ -1,143 +0,0 @@
|
|||||||
//Jan Holp, DP 2021
|
|
||||||
|
|
||||||
|
|
||||||
//client2 = cassandra
|
|
||||||
//client1 = elasticsearch
|
|
||||||
//-----------------------------------------------------------------
|
|
||||||
|
|
||||||
//require for PageRank
|
|
||||||
var Pagerank = require('../lib/pagerank')
|
|
||||||
var fs = require('fs')
|
|
||||||
var path = require('path')
|
|
||||||
|
|
||||||
//require the Elasticsearch librray
|
|
||||||
const elasticsearch = require('elasticsearch');
|
|
||||||
const client1 = new elasticsearch.Client({
|
|
||||||
hosts: [ 'localhost:9200']
|
|
||||||
});
|
|
||||||
client1.ping({
|
|
||||||
requestTimeout: 30000,
|
|
||||||
}, function(error) {
|
|
||||||
// at this point, eastic search is down, please check your Elasticsearch service
|
|
||||||
if (error) {
|
|
||||||
console.error('Elasticsearch cluster is down!');
|
|
||||||
} else {
|
|
||||||
console.log('ELasticSearch is ok');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
//create new index - skweb2
|
|
||||||
client1.indices.create({
|
|
||||||
index: 'skweb2'
|
|
||||||
}, function(error, response, status) {
|
|
||||||
if (error) {
|
|
||||||
console.log(error);
|
|
||||||
} else {
|
|
||||||
console.log("created a new index", response);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
//indexing method
|
|
||||||
const bulkIndex = function bulkIndex(index, type, data) {
|
|
||||||
let bulkBody = [];
|
|
||||||
//id = 1;
|
|
||||||
const errorCount = 0;
|
|
||||||
data.forEach(item => {
|
|
||||||
bulkBody.push({
|
|
||||||
index: {
|
|
||||||
_index: index,
|
|
||||||
_type: type,
|
|
||||||
_id : item.target_link, // documents id is url
|
|
||||||
}
|
|
||||||
});
|
|
||||||
bulkBody.push(item);
|
|
||||||
});
|
|
||||||
console.log(bulkBody);
|
|
||||||
//console.log(object_list.id);
|
|
||||||
|
|
||||||
client1.bulk({body: bulkBody})
|
|
||||||
.then(response => {
|
|
||||||
|
|
||||||
response.items.forEach(item => {
|
|
||||||
if (item.index && item.index.error) {
|
|
||||||
console.log(++errorCount, item.index.error);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
console.log(
|
|
||||||
`Successfully indexed ${data.length - errorCount}
|
|
||||||
out of ${data.length} items`
|
|
||||||
);
|
|
||||||
})
|
|
||||||
.catch(console.err);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
const cassandra = require('cassandra-driver');
|
|
||||||
const client2 = new cassandra.Client({ contactPoints: ['localhost:9042'], localDataCenter: 'datacenter1', keyspace: 'websucker' });
|
|
||||||
const query1 = 'SELECT domain_name FROM websucker.domain_quality WHERE good_count > 0 ALLOW FILTERING';
|
|
||||||
//const query2 = 'SELECT * from websucker.content WHERE domain_name = ' + domain_name[i] + 'ALLOW FILTERING'; // body_size > 0
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
|
||||||
|
|
||||||
var domain_name = []; // pole domain name
|
|
||||||
var object_list = []; // pole ktore obsahuje vsetky dokumenty pre jednotilive domain name
|
|
||||||
const linkProb = 0.85; // high numbers are more stable (Pagerank)
|
|
||||||
const tolerance = 0.0001; // sensitivity for accuracy of convergence
|
|
||||||
|
|
||||||
|
|
||||||
client2.execute(query1) // vyselektujeme vsetky domenove mena a ulozime do pola
|
|
||||||
.then(result => {
|
|
||||||
let pole = result.rows.map(r => {
|
|
||||||
domain_name.push(r.domain_name)
|
|
||||||
});
|
|
||||||
console.log("Vsetky domenove mena : " , domain_name);
|
|
||||||
domain_name.forEach(name => { // pre kazde domenove meno spustime select nizsie, kt. vyberie vsetky clanky ktore niesu prazdne
|
|
||||||
let query = 'SELECT * from websucker.content WHERE domain_name = ' + "'" + name + "'" + ' and body_size > 0 ALLOW FILTERING';
|
|
||||||
client2.execute(query).then( res => {
|
|
||||||
object_list = res.rows.map(rr => {
|
|
||||||
return {
|
|
||||||
domain_name: rr.domain_name,
|
|
||||||
title: rr.title,
|
|
||||||
body: rr.body,
|
|
||||||
links: rr.links,
|
|
||||||
target_link: rr.target_link,
|
|
||||||
// pagerank: Pagerank(rr.links ,linkProb,tolerance, function (err, res) {
|
|
||||||
// return res;
|
|
||||||
// })
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
});
|
|
||||||
//console.log(object_list);
|
|
||||||
bulkIndex('skweb2', 'web_page', object_list);
|
|
||||||
}).catch(error => console.log(error));
|
|
||||||
})
|
|
||||||
|
|
||||||
}).catch(err => console.log(err));
|
|
||||||
|
|
||||||
//volanie funkcie pre vypocet Pageranku a definovane premenne
|
|
||||||
|
|
||||||
//Larger numbers (0.85) //var linkProb = 0.85;
|
|
||||||
//accuracy at which we terminate
|
|
||||||
//--------------Pagerank
|
|
||||||
// const linkProb = 0.85; // high numbers are more stable (Pagerank)
|
|
||||||
// const tolerance = 0.0001; // sensitivity for accuracy of convergence
|
|
||||||
/*
|
|
||||||
var nodeMatrix = [
|
|
||||||
[object_list.links]
|
|
||||||
];
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
|
|
||||||
const PR = function PR(nodeMatrix,linkProb,tolerance){
|
|
||||||
|
|
||||||
Pagerank(nodeMatrix, linkProb, tolerance, function (err, res) {
|
|
||||||
|
|
||||||
|
|
||||||
return res;
|
|
||||||
//console.log(res);
|
|
||||||
|
|
||||||
});
|
|
||||||
}
|
|
||||||
*/
|
|
@ -1,28 +0,0 @@
|
|||||||
(function () {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
const elasticsearch = require('elasticsearch');
|
|
||||||
const esClient = new elasticsearch.Client({
|
|
||||||
host: '127.0.0.1:9200',
|
|
||||||
log: 'error'
|
|
||||||
});
|
|
||||||
|
|
||||||
const indices = function indices() {
|
|
||||||
return esClient.cat.indices({v: true})
|
|
||||||
.then(console.log)
|
|
||||||
.catch(err => console.error(`Error connecting to the es client: ${err}`));
|
|
||||||
};
|
|
||||||
|
|
||||||
// only for testing purposes
|
|
||||||
// all calls should be initiated through the module
|
|
||||||
const test = function test() {
|
|
||||||
console.log(`elasticsearch indices information:`);
|
|
||||||
indices();
|
|
||||||
};
|
|
||||||
|
|
||||||
test();
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
indices
|
|
||||||
};
|
|
||||||
} ());
|
|
@ -1,97 +0,0 @@
|
|||||||
// From https://github.com/douglascrockford/JSON-js/blob/master/json2.js
|
|
||||||
if (typeof JSON.parse !== "function") {
|
|
||||||
var rx_one = /^[\],:{}\s]*$/;
|
|
||||||
var rx_two = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g;
|
|
||||||
var rx_three = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g;
|
|
||||||
var rx_four = /(?:^|:|,)(?:\s*\[)+/g;
|
|
||||||
var rx_dangerous = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g;
|
|
||||||
JSON.parse = function(text, reviver) {
|
|
||||||
|
|
||||||
// The parse method takes a text and an optional reviver function, and returns
|
|
||||||
// a JavaScript value if the text is a valid JSON text.
|
|
||||||
|
|
||||||
var j;
|
|
||||||
|
|
||||||
function walk(holder, key) {
|
|
||||||
|
|
||||||
// The walk method is used to recursively walk the resulting structure so
|
|
||||||
// that modifications can be made.
|
|
||||||
|
|
||||||
var k;
|
|
||||||
var v;
|
|
||||||
var value = holder[key];
|
|
||||||
if (value && typeof value === "object") {
|
|
||||||
for (k in value) {
|
|
||||||
if (Object.prototype.hasOwnProperty.call(value, k)) {
|
|
||||||
v = walk(value, k);
|
|
||||||
if (v !== undefined) {
|
|
||||||
value[k] = v;
|
|
||||||
} else {
|
|
||||||
delete value[k];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return reviver.call(holder, key, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// Parsing happens in four stages. In the first stage, we replace certain
|
|
||||||
// Unicode characters with escape sequences. JavaScript handles many characters
|
|
||||||
// incorrectly, either silently deleting them, or treating them as line endings.
|
|
||||||
|
|
||||||
text = String(text);
|
|
||||||
rx_dangerous.lastIndex = 0;
|
|
||||||
if (rx_dangerous.test(text)) {
|
|
||||||
text = text.replace(rx_dangerous, function(a) {
|
|
||||||
return (
|
|
||||||
"\\u" +
|
|
||||||
("0000" + a.charCodeAt(0).toString(16)).slice(-4)
|
|
||||||
);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// In the second stage, we run the text against regular expressions that look
|
|
||||||
// for non-JSON patterns. We are especially concerned with "()" and "new"
|
|
||||||
// because they can cause invocation, and "=" because it can cause mutation.
|
|
||||||
// But just to be safe, we want to reject all unexpected forms.
|
|
||||||
|
|
||||||
// We split the second stage into 4 regexp operations in order to work around
|
|
||||||
// crippling inefficiencies in IE's and Safari's regexp engines. First we
|
|
||||||
// replace the JSON backslash pairs with "@" (a non-JSON character). Second, we
|
|
||||||
// replace all simple value tokens with "]" characters. Third, we delete all
|
|
||||||
// open brackets that follow a colon or comma or that begin the text. Finally,
|
|
||||||
// we look to see that the remaining characters are only whitespace or "]" or
|
|
||||||
// "," or ":" or "{" or "}". If that is so, then the text is safe for eval.
|
|
||||||
|
|
||||||
if (
|
|
||||||
rx_one.test(
|
|
||||||
text
|
|
||||||
.replace(rx_two, "@")
|
|
||||||
.replace(rx_three, "]")
|
|
||||||
.replace(rx_four, "")
|
|
||||||
)
|
|
||||||
) {
|
|
||||||
|
|
||||||
// In the third stage we use the eval function to compile the text into a
|
|
||||||
// JavaScript structure. The "{" operator is subject to a syntactic ambiguity
|
|
||||||
// in JavaScript: it can begin a block or an object literal. We wrap the text
|
|
||||||
// in parens to eliminate the ambiguity.
|
|
||||||
|
|
||||||
j = eval("(" + text + ")");
|
|
||||||
|
|
||||||
// In the optional fourth stage, we recursively walk the new structure, passing
|
|
||||||
// each name/value pair to a reviver function for possible transformation.
|
|
||||||
|
|
||||||
return (typeof reviver === "function") ?
|
|
||||||
walk({
|
|
||||||
"": j
|
|
||||||
}, "") :
|
|
||||||
j;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If the text is not JSON parseable, then a SyntaxError is thrown.
|
|
||||||
|
|
||||||
throw new SyntaxError("JSON.parse");
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,109 +0,0 @@
|
|||||||
//data.js
|
|
||||||
|
|
||||||
const fs = require('fs');
|
|
||||||
const readline = require('readline');
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//require the Elasticsearch librray
|
|
||||||
const elasticsearch = require('elasticsearch');
|
|
||||||
// instantiate an Elasticsearch client
|
|
||||||
const client = new elasticsearch.Client({
|
|
||||||
hosts: [ 'http://localhost:9200']
|
|
||||||
});
|
|
||||||
// ping the client to be sure Elasticsearch is up
|
|
||||||
client.ping({
|
|
||||||
requestTimeout: 30000,
|
|
||||||
}, function(error) {
|
|
||||||
// at this point, eastic search is down, please check your Elasticsearch service
|
|
||||||
if (error) {
|
|
||||||
console.error('Elasticsearch cluster is down!');
|
|
||||||
} else {
|
|
||||||
console.log('Everything is ok');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
client.indices.create({
|
|
||||||
index: 'skweb'
|
|
||||||
}, function(error, response, status) {
|
|
||||||
if (error) {
|
|
||||||
console.log(error);
|
|
||||||
} else {
|
|
||||||
console.log("created a new index", response);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
const bulkIndex = function bulkIndex(index, type, data) {
|
|
||||||
let bulkBody = [];
|
|
||||||
id = 1;
|
|
||||||
const errorCount = 0;
|
|
||||||
data.forEach(item => {
|
|
||||||
bulkBody.push({
|
|
||||||
index: {
|
|
||||||
_index: index,
|
|
||||||
_type: type,
|
|
||||||
_id : id++,
|
|
||||||
}
|
|
||||||
});
|
|
||||||
bulkBody.push(item);
|
|
||||||
});
|
|
||||||
console.log(bulkBody);
|
|
||||||
client.bulk({body: bulkBody})
|
|
||||||
.then(response => {
|
|
||||||
|
|
||||||
response.items.forEach(item => {
|
|
||||||
if (item.index && item.index.error) {
|
|
||||||
console.log(++errorCount, item.index.error);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
console.log(
|
|
||||||
`Successfully indexed ${data.length - errorCount}
|
|
||||||
out of ${data.length} items`
|
|
||||||
);
|
|
||||||
})
|
|
||||||
.catch(console.err);
|
|
||||||
};
|
|
||||||
|
|
||||||
async function indexData() {
|
|
||||||
|
|
||||||
let documents = [];
|
|
||||||
const readInterface = readline.createInterface({
|
|
||||||
input: fs.createReadStream('/home/jan/Documents/skweb/skusobny_subor.txt'),
|
|
||||||
// output: process.stdout,
|
|
||||||
console: false
|
|
||||||
});
|
|
||||||
readInterface.on('line', function(line) {
|
|
||||||
//const article = JSON.parse(line);
|
|
||||||
|
|
||||||
try {
|
|
||||||
const article = JSON.parse(line);
|
|
||||||
documents.push(article);
|
|
||||||
//console.log(JSON.parse(line));
|
|
||||||
} catch (article) {
|
|
||||||
if (article instanceof SyntaxError) {
|
|
||||||
console.log( "Chyba, neplatny JSON" );
|
|
||||||
} //else {
|
|
||||||
//console.log(article, "bezchyby");
|
|
||||||
//}
|
|
||||||
}
|
|
||||||
|
|
||||||
// documents.push(article);
|
|
||||||
|
|
||||||
});
|
|
||||||
readInterface.on('close', function() {
|
|
||||||
//console.log(documents);
|
|
||||||
bulkIndex('skweb', 'web_page', documents);
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
indexData();
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,792 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "elastic-node",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"lockfileVersion": 1,
|
|
||||||
"requires": true,
|
|
||||||
"dependencies": {
|
|
||||||
"@types/long": {
|
|
||||||
"version": "4.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz",
|
|
||||||
"integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w=="
|
|
||||||
},
|
|
||||||
"@types/node": {
|
|
||||||
"version": "14.11.10",
|
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.11.10.tgz",
|
|
||||||
"integrity": "sha512-yV1nWZPlMFpoXyoknm4S56y2nlTAuFYaJuQtYRAOU7xA/FJ9RY0Xm7QOkaYMMmr8ESdHIuUb6oQgR/0+2NqlyA=="
|
|
||||||
},
|
|
||||||
"accepts": {
|
|
||||||
"version": "1.3.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
|
|
||||||
"integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
|
|
||||||
"requires": {
|
|
||||||
"mime-types": "~2.1.24",
|
|
||||||
"negotiator": "0.6.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"adm-zip": {
|
|
||||||
"version": "0.4.16",
|
|
||||||
"resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz",
|
|
||||||
"integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg=="
|
|
||||||
},
|
|
||||||
"agentkeepalive": {
|
|
||||||
"version": "3.5.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz",
|
|
||||||
"integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==",
|
|
||||||
"requires": {
|
|
||||||
"humanize-ms": "^1.2.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ansi-regex": {
|
|
||||||
"version": "2.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
|
|
||||||
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
|
|
||||||
},
|
|
||||||
"ansi-styles": {
|
|
||||||
"version": "2.2.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
|
|
||||||
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
|
|
||||||
},
|
|
||||||
"array-filter": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz",
|
|
||||||
"integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM="
|
|
||||||
},
|
|
||||||
"array-flatten": {
|
|
||||||
"version": "1.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
|
|
||||||
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
|
|
||||||
},
|
|
||||||
"assert": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz",
|
|
||||||
"integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==",
|
|
||||||
"requires": {
|
|
||||||
"es6-object-assign": "^1.1.0",
|
|
||||||
"is-nan": "^1.2.1",
|
|
||||||
"object-is": "^1.0.1",
|
|
||||||
"util": "^0.12.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"available-typed-arrays": {
|
|
||||||
"version": "1.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz",
|
|
||||||
"integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==",
|
|
||||||
"requires": {
|
|
||||||
"array-filter": "^1.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"body-parser": {
|
|
||||||
"version": "1.19.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
|
|
||||||
"integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
|
|
||||||
"requires": {
|
|
||||||
"bytes": "3.1.0",
|
|
||||||
"content-type": "~1.0.4",
|
|
||||||
"debug": "2.6.9",
|
|
||||||
"depd": "~1.1.2",
|
|
||||||
"http-errors": "1.7.2",
|
|
||||||
"iconv-lite": "0.4.24",
|
|
||||||
"on-finished": "~2.3.0",
|
|
||||||
"qs": "6.7.0",
|
|
||||||
"raw-body": "2.4.0",
|
|
||||||
"type-is": "~1.6.17"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"bytes": {
|
|
||||||
"version": "3.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
|
|
||||||
"integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
|
|
||||||
},
|
|
||||||
"cassandra-driver": {
|
|
||||||
"version": "4.6.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/cassandra-driver/-/cassandra-driver-4.6.0.tgz",
|
|
||||||
"integrity": "sha512-OCYJ3Zuy2La0qf+7dfeYlG3X4C0ns1cbPu0hhpC3xyUWqTy1Ai9a4mlQjSBqbcHi51gdFB5UbS0fWJzZIY6NXw==",
|
|
||||||
"requires": {
|
|
||||||
"@types/long": "^4.0.0",
|
|
||||||
"@types/node": ">=8",
|
|
||||||
"adm-zip": "^0.4.13",
|
|
||||||
"long": "^2.2.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"chalk": {
|
|
||||||
"version": "1.1.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
|
|
||||||
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
|
|
||||||
"requires": {
|
|
||||||
"ansi-styles": "^2.2.1",
|
|
||||||
"escape-string-regexp": "^1.0.2",
|
|
||||||
"has-ansi": "^2.0.0",
|
|
||||||
"strip-ansi": "^3.0.0",
|
|
||||||
"supports-color": "^2.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"content-disposition": {
|
|
||||||
"version": "0.5.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
|
|
||||||
"integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
|
|
||||||
"requires": {
|
|
||||||
"safe-buffer": "5.1.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"content-type": {
|
|
||||||
"version": "1.0.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
|
|
||||||
"integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
|
|
||||||
},
|
|
||||||
"cookie": {
|
|
||||||
"version": "0.4.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
|
|
||||||
"integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
|
|
||||||
},
|
|
||||||
"cookie-signature": {
|
|
||||||
"version": "1.0.6",
|
|
||||||
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
|
|
||||||
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
|
|
||||||
},
|
|
||||||
"debug": {
|
|
||||||
"version": "2.6.9",
|
|
||||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
|
||||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
|
||||||
"requires": {
|
|
||||||
"ms": "2.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"define-properties": {
|
|
||||||
"version": "1.1.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
|
|
||||||
"integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
|
|
||||||
"requires": {
|
|
||||||
"object-keys": "^1.0.12"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"depd": {
|
|
||||||
"version": "1.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
|
|
||||||
"integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
|
|
||||||
},
|
|
||||||
"destroy": {
|
|
||||||
"version": "1.0.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
|
|
||||||
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
|
|
||||||
},
|
|
||||||
"ee-first": {
|
|
||||||
"version": "1.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
|
|
||||||
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
|
|
||||||
},
|
|
||||||
"elasticsearch": {
|
|
||||||
"version": "16.7.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/elasticsearch/-/elasticsearch-16.7.1.tgz",
|
|
||||||
"integrity": "sha512-PL/BxB03VGbbghJwISYvVcrR9KbSSkuQ7OM//jHJg/End/uC2fvXg4QI7RXLvCGbhBuNQ8dPue7DOOPra73PCw==",
|
|
||||||
"requires": {
|
|
||||||
"agentkeepalive": "^3.4.1",
|
|
||||||
"chalk": "^1.0.0",
|
|
||||||
"lodash": "^4.17.10"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"encodeurl": {
|
|
||||||
"version": "1.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
|
|
||||||
"integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
|
|
||||||
},
|
|
||||||
"es-abstract": {
|
|
||||||
"version": "1.18.0-next.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz",
|
|
||||||
"integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==",
|
|
||||||
"requires": {
|
|
||||||
"es-to-primitive": "^1.2.1",
|
|
||||||
"function-bind": "^1.1.1",
|
|
||||||
"has": "^1.0.3",
|
|
||||||
"has-symbols": "^1.0.1",
|
|
||||||
"is-callable": "^1.2.2",
|
|
||||||
"is-negative-zero": "^2.0.0",
|
|
||||||
"is-regex": "^1.1.1",
|
|
||||||
"object-inspect": "^1.8.0",
|
|
||||||
"object-keys": "^1.1.1",
|
|
||||||
"object.assign": "^4.1.1",
|
|
||||||
"string.prototype.trimend": "^1.0.1",
|
|
||||||
"string.prototype.trimstart": "^1.0.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"es-to-primitive": {
|
|
||||||
"version": "1.2.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
|
|
||||||
"integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
|
|
||||||
"requires": {
|
|
||||||
"is-callable": "^1.1.4",
|
|
||||||
"is-date-object": "^1.0.1",
|
|
||||||
"is-symbol": "^1.0.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"es6-object-assign": {
|
|
||||||
"version": "1.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz",
|
|
||||||
"integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw="
|
|
||||||
},
|
|
||||||
"escape-html": {
|
|
||||||
"version": "1.0.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
|
|
||||||
"integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
|
|
||||||
},
|
|
||||||
"escape-string-regexp": {
|
|
||||||
"version": "1.0.5",
|
|
||||||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
|
|
||||||
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
|
|
||||||
},
|
|
||||||
"etag": {
|
|
||||||
"version": "1.8.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
|
|
||||||
"integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
|
|
||||||
},
|
|
||||||
"express": {
|
|
||||||
"version": "4.17.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
|
|
||||||
"integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
|
|
||||||
"requires": {
|
|
||||||
"accepts": "~1.3.7",
|
|
||||||
"array-flatten": "1.1.1",
|
|
||||||
"body-parser": "1.19.0",
|
|
||||||
"content-disposition": "0.5.3",
|
|
||||||
"content-type": "~1.0.4",
|
|
||||||
"cookie": "0.4.0",
|
|
||||||
"cookie-signature": "1.0.6",
|
|
||||||
"debug": "2.6.9",
|
|
||||||
"depd": "~1.1.2",
|
|
||||||
"encodeurl": "~1.0.2",
|
|
||||||
"escape-html": "~1.0.3",
|
|
||||||
"etag": "~1.8.1",
|
|
||||||
"finalhandler": "~1.1.2",
|
|
||||||
"fresh": "0.5.2",
|
|
||||||
"merge-descriptors": "1.0.1",
|
|
||||||
"methods": "~1.1.2",
|
|
||||||
"on-finished": "~2.3.0",
|
|
||||||
"parseurl": "~1.3.3",
|
|
||||||
"path-to-regexp": "0.1.7",
|
|
||||||
"proxy-addr": "~2.0.5",
|
|
||||||
"qs": "6.7.0",
|
|
||||||
"range-parser": "~1.2.1",
|
|
||||||
"safe-buffer": "5.1.2",
|
|
||||||
"send": "0.17.1",
|
|
||||||
"serve-static": "1.14.1",
|
|
||||||
"setprototypeof": "1.1.1",
|
|
||||||
"statuses": "~1.5.0",
|
|
||||||
"type-is": "~1.6.18",
|
|
||||||
"utils-merge": "1.0.1",
|
|
||||||
"vary": "~1.1.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"finalhandler": {
|
|
||||||
"version": "1.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
|
|
||||||
"integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
|
|
||||||
"requires": {
|
|
||||||
"debug": "2.6.9",
|
|
||||||
"encodeurl": "~1.0.2",
|
|
||||||
"escape-html": "~1.0.3",
|
|
||||||
"on-finished": "~2.3.0",
|
|
||||||
"parseurl": "~1.3.3",
|
|
||||||
"statuses": "~1.5.0",
|
|
||||||
"unpipe": "~1.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"foreach": {
|
|
||||||
"version": "2.0.5",
|
|
||||||
"resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
|
|
||||||
"integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k="
|
|
||||||
},
|
|
||||||
"forwarded": {
|
|
||||||
"version": "0.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
|
|
||||||
"integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
|
|
||||||
},
|
|
||||||
"fresh": {
|
|
||||||
"version": "0.5.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
|
|
||||||
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
|
|
||||||
},
|
|
||||||
"function-bind": {
|
|
||||||
"version": "1.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
|
|
||||||
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
|
|
||||||
},
|
|
||||||
"has": {
|
|
||||||
"version": "1.0.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
|
|
||||||
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
|
|
||||||
"requires": {
|
|
||||||
"function-bind": "^1.1.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has-ansi": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
|
|
||||||
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
|
|
||||||
"requires": {
|
|
||||||
"ansi-regex": "^2.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has-symbols": {
|
|
||||||
"version": "1.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
|
|
||||||
"integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg=="
|
|
||||||
},
|
|
||||||
"http-errors": {
|
|
||||||
"version": "1.7.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
|
|
||||||
"integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
|
|
||||||
"requires": {
|
|
||||||
"depd": "~1.1.2",
|
|
||||||
"inherits": "2.0.3",
|
|
||||||
"setprototypeof": "1.1.1",
|
|
||||||
"statuses": ">= 1.5.0 < 2",
|
|
||||||
"toidentifier": "1.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"humanize-ms": {
|
|
||||||
"version": "1.2.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
|
|
||||||
"integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=",
|
|
||||||
"requires": {
|
|
||||||
"ms": "^2.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"iconv-lite": {
|
|
||||||
"version": "0.4.24",
|
|
||||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
|
|
||||||
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
|
|
||||||
"requires": {
|
|
||||||
"safer-buffer": ">= 2.1.2 < 3"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"inherits": {
|
|
||||||
"version": "2.0.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
|
|
||||||
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
|
|
||||||
},
|
|
||||||
"ipaddr.js": {
|
|
||||||
"version": "1.9.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
|
|
||||||
"integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
|
|
||||||
},
|
|
||||||
"is-arguments": {
|
|
||||||
"version": "1.0.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz",
|
|
||||||
"integrity": "sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA=="
|
|
||||||
},
|
|
||||||
"is-callable": {
|
|
||||||
"version": "1.2.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz",
|
|
||||||
"integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA=="
|
|
||||||
},
|
|
||||||
"is-date-object": {
|
|
||||||
"version": "1.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",
|
|
||||||
"integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g=="
|
|
||||||
},
|
|
||||||
"is-generator-function": {
|
|
||||||
"version": "1.0.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.7.tgz",
|
|
||||||
"integrity": "sha512-YZc5EwyO4f2kWCax7oegfuSr9mFz1ZvieNYBEjmukLxgXfBUbxAWGVF7GZf0zidYtoBl3WvC07YK0wT76a+Rtw=="
|
|
||||||
},
|
|
||||||
"is-nan": {
|
|
||||||
"version": "1.3.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.0.tgz",
|
|
||||||
"integrity": "sha512-z7bbREymOqt2CCaZVly8aC4ML3Xhfi0ekuOnjO2L8vKdl+CttdVoGZQhd4adMFAsxQ5VeRVwORs4tU8RH+HFtQ==",
|
|
||||||
"requires": {
|
|
||||||
"define-properties": "^1.1.3"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"is-negative-zero": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz",
|
|
||||||
"integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE="
|
|
||||||
},
|
|
||||||
"is-regex": {
|
|
||||||
"version": "1.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz",
|
|
||||||
"integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==",
|
|
||||||
"requires": {
|
|
||||||
"has-symbols": "^1.0.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"is-symbol": {
|
|
||||||
"version": "1.0.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
|
|
||||||
"integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
|
|
||||||
"requires": {
|
|
||||||
"has-symbols": "^1.0.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"is-typed-array": {
|
|
||||||
"version": "1.1.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.3.tgz",
|
|
||||||
"integrity": "sha512-BSYUBOK/HJibQ30wWkWold5txYwMUXQct9YHAQJr8fSwvZoiglcqB0pd7vEN23+Tsi9IUEjztdOSzl4qLVYGTQ==",
|
|
||||||
"requires": {
|
|
||||||
"available-typed-arrays": "^1.0.0",
|
|
||||||
"es-abstract": "^1.17.4",
|
|
||||||
"foreach": "^2.0.5",
|
|
||||||
"has-symbols": "^1.0.1"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"es-abstract": {
|
|
||||||
"version": "1.17.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz",
|
|
||||||
"integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==",
|
|
||||||
"requires": {
|
|
||||||
"es-to-primitive": "^1.2.1",
|
|
||||||
"function-bind": "^1.1.1",
|
|
||||||
"has": "^1.0.3",
|
|
||||||
"has-symbols": "^1.0.1",
|
|
||||||
"is-callable": "^1.2.2",
|
|
||||||
"is-regex": "^1.1.1",
|
|
||||||
"object-inspect": "^1.8.0",
|
|
||||||
"object-keys": "^1.1.1",
|
|
||||||
"object.assign": "^4.1.1",
|
|
||||||
"string.prototype.trimend": "^1.0.1",
|
|
||||||
"string.prototype.trimstart": "^1.0.1"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"lodash": {
|
|
||||||
"version": "4.17.15",
|
|
||||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
|
|
||||||
"integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A=="
|
|
||||||
},
|
|
||||||
"long": {
|
|
||||||
"version": "2.4.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/long/-/long-2.4.0.tgz",
|
|
||||||
"integrity": "sha1-n6GAux2VAM3CnEFWdmoZleH0Uk8="
|
|
||||||
},
|
|
||||||
"media-typer": {
|
|
||||||
"version": "0.3.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
|
|
||||||
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
|
|
||||||
},
|
|
||||||
"merge-descriptors": {
|
|
||||||
"version": "1.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
|
|
||||||
"integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
|
|
||||||
},
|
|
||||||
"methods": {
|
|
||||||
"version": "1.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
|
|
||||||
"integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
|
|
||||||
},
|
|
||||||
"mime": {
|
|
||||||
"version": "1.6.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
|
|
||||||
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
|
|
||||||
},
|
|
||||||
"mime-db": {
|
|
||||||
"version": "1.44.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
|
|
||||||
"integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="
|
|
||||||
},
|
|
||||||
"mime-types": {
|
|
||||||
"version": "2.1.27",
|
|
||||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
|
|
||||||
"integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
|
|
||||||
"requires": {
|
|
||||||
"mime-db": "1.44.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ms": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
|
||||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
|
||||||
},
|
|
||||||
"negotiator": {
|
|
||||||
"version": "0.6.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
|
|
||||||
"integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
|
|
||||||
},
|
|
||||||
"object-inspect": {
|
|
||||||
"version": "1.8.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz",
|
|
||||||
"integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA=="
|
|
||||||
},
|
|
||||||
"object-is": {
|
|
||||||
"version": "1.1.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.3.tgz",
|
|
||||||
"integrity": "sha512-teyqLvFWzLkq5B9ki8FVWA902UER2qkxmdA4nLf+wjOLAWgxzCWZNCxpDq9MvE8MmhWNr+I8w3BN49Vx36Y6Xg==",
|
|
||||||
"requires": {
|
|
||||||
"define-properties": "^1.1.3",
|
|
||||||
"es-abstract": "^1.18.0-next.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"object-keys": {
|
|
||||||
"version": "1.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
|
|
||||||
"integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
|
|
||||||
},
|
|
||||||
"object.assign": {
|
|
||||||
"version": "4.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.1.tgz",
|
|
||||||
"integrity": "sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA==",
|
|
||||||
"requires": {
|
|
||||||
"define-properties": "^1.1.3",
|
|
||||||
"es-abstract": "^1.18.0-next.0",
|
|
||||||
"has-symbols": "^1.0.1",
|
|
||||||
"object-keys": "^1.1.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"on-finished": {
|
|
||||||
"version": "2.3.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
|
|
||||||
"integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
|
|
||||||
"requires": {
|
|
||||||
"ee-first": "1.1.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"pagerank.js": {
|
|
||||||
"version": "1.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/pagerank.js/-/pagerank.js-1.0.2.tgz",
|
|
||||||
"integrity": "sha1-jw2LK2jrb63eCq14DfBF0ib3dYQ="
|
|
||||||
},
|
|
||||||
"parseurl": {
|
|
||||||
"version": "1.3.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
|
|
||||||
"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
|
|
||||||
},
|
|
||||||
"path-to-regexp": {
|
|
||||||
"version": "0.1.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
|
|
||||||
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
|
|
||||||
},
|
|
||||||
"proxy-addr": {
|
|
||||||
"version": "2.0.6",
|
|
||||||
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
|
|
||||||
"integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
|
|
||||||
"requires": {
|
|
||||||
"forwarded": "~0.1.2",
|
|
||||||
"ipaddr.js": "1.9.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"qs": {
|
|
||||||
"version": "6.7.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
|
|
||||||
"integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
|
|
||||||
},
|
|
||||||
"range-parser": {
|
|
||||||
"version": "1.2.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
|
|
||||||
"integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
|
|
||||||
},
|
|
||||||
"raw-body": {
|
|
||||||
"version": "2.4.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
|
|
||||||
"integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
|
|
||||||
"requires": {
|
|
||||||
"bytes": "3.1.0",
|
|
||||||
"http-errors": "1.7.2",
|
|
||||||
"iconv-lite": "0.4.24",
|
|
||||||
"unpipe": "1.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"safe-buffer": {
|
|
||||||
"version": "5.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
|
||||||
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
|
|
||||||
},
|
|
||||||
"safer-buffer": {
|
|
||||||
"version": "2.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
|
||||||
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
|
|
||||||
},
|
|
||||||
"send": {
|
|
||||||
"version": "0.17.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
|
|
||||||
"integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
|
|
||||||
"requires": {
|
|
||||||
"debug": "2.6.9",
|
|
||||||
"depd": "~1.1.2",
|
|
||||||
"destroy": "~1.0.4",
|
|
||||||
"encodeurl": "~1.0.2",
|
|
||||||
"escape-html": "~1.0.3",
|
|
||||||
"etag": "~1.8.1",
|
|
||||||
"fresh": "0.5.2",
|
|
||||||
"http-errors": "~1.7.2",
|
|
||||||
"mime": "1.6.0",
|
|
||||||
"ms": "2.1.1",
|
|
||||||
"on-finished": "~2.3.0",
|
|
||||||
"range-parser": "~1.2.1",
|
|
||||||
"statuses": "~1.5.0"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"ms": {
|
|
||||||
"version": "2.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
|
|
||||||
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"serve-static": {
|
|
||||||
"version": "1.14.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
|
|
||||||
"integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
|
|
||||||
"requires": {
|
|
||||||
"encodeurl": "~1.0.2",
|
|
||||||
"escape-html": "~1.0.3",
|
|
||||||
"parseurl": "~1.3.3",
|
|
||||||
"send": "0.17.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"setprototypeof": {
|
|
||||||
"version": "1.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
|
|
||||||
"integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
|
|
||||||
},
|
|
||||||
"statuses": {
|
|
||||||
"version": "1.5.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
|
|
||||||
"integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
|
|
||||||
},
|
|
||||||
"string.prototype.trimend": {
|
|
||||||
"version": "1.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz",
|
|
||||||
"integrity": "sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==",
|
|
||||||
"requires": {
|
|
||||||
"define-properties": "^1.1.3",
|
|
||||||
"es-abstract": "^1.17.5"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"es-abstract": {
|
|
||||||
"version": "1.17.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz",
|
|
||||||
"integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==",
|
|
||||||
"requires": {
|
|
||||||
"es-to-primitive": "^1.2.1",
|
|
||||||
"function-bind": "^1.1.1",
|
|
||||||
"has": "^1.0.3",
|
|
||||||
"has-symbols": "^1.0.1",
|
|
||||||
"is-callable": "^1.2.2",
|
|
||||||
"is-regex": "^1.1.1",
|
|
||||||
"object-inspect": "^1.8.0",
|
|
||||||
"object-keys": "^1.1.1",
|
|
||||||
"object.assign": "^4.1.1",
|
|
||||||
"string.prototype.trimend": "^1.0.1",
|
|
||||||
"string.prototype.trimstart": "^1.0.1"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"string.prototype.trimstart": {
|
|
||||||
"version": "1.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz",
|
|
||||||
"integrity": "sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==",
|
|
||||||
"requires": {
|
|
||||||
"define-properties": "^1.1.3",
|
|
||||||
"es-abstract": "^1.17.5"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"es-abstract": {
|
|
||||||
"version": "1.17.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz",
|
|
||||||
"integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==",
|
|
||||||
"requires": {
|
|
||||||
"es-to-primitive": "^1.2.1",
|
|
||||||
"function-bind": "^1.1.1",
|
|
||||||
"has": "^1.0.3",
|
|
||||||
"has-symbols": "^1.0.1",
|
|
||||||
"is-callable": "^1.2.2",
|
|
||||||
"is-regex": "^1.1.1",
|
|
||||||
"object-inspect": "^1.8.0",
|
|
||||||
"object-keys": "^1.1.1",
|
|
||||||
"object.assign": "^4.1.1",
|
|
||||||
"string.prototype.trimend": "^1.0.1",
|
|
||||||
"string.prototype.trimstart": "^1.0.1"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"strip-ansi": {
|
|
||||||
"version": "3.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
|
|
||||||
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
|
|
||||||
"requires": {
|
|
||||||
"ansi-regex": "^2.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"supports-color": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
|
|
||||||
"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
|
|
||||||
},
|
|
||||||
"toidentifier": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
|
|
||||||
"integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
|
|
||||||
},
|
|
||||||
"type-is": {
|
|
||||||
"version": "1.6.18",
|
|
||||||
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
|
|
||||||
"integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
|
|
||||||
"requires": {
|
|
||||||
"media-typer": "0.3.0",
|
|
||||||
"mime-types": "~2.1.24"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"unpipe": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
|
|
||||||
"integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
|
|
||||||
},
|
|
||||||
"util": {
|
|
||||||
"version": "0.12.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/util/-/util-0.12.3.tgz",
|
|
||||||
"integrity": "sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog==",
|
|
||||||
"requires": {
|
|
||||||
"inherits": "^2.0.3",
|
|
||||||
"is-arguments": "^1.0.4",
|
|
||||||
"is-generator-function": "^1.0.7",
|
|
||||||
"is-typed-array": "^1.1.3",
|
|
||||||
"safe-buffer": "^5.1.2",
|
|
||||||
"which-typed-array": "^1.1.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"utils-merge": {
|
|
||||||
"version": "1.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
|
|
||||||
"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
|
|
||||||
},
|
|
||||||
"vary": {
|
|
||||||
"version": "1.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
|
|
||||||
"integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
|
|
||||||
},
|
|
||||||
"which-typed-array": {
|
|
||||||
"version": "1.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.2.tgz",
|
|
||||||
"integrity": "sha512-KT6okrd1tE6JdZAy3o2VhMoYPh3+J6EMZLyrxBQsZflI1QCZIxMrIYLkosd8Twf+YfknVIHmYQPgJt238p8dnQ==",
|
|
||||||
"requires": {
|
|
||||||
"available-typed-arrays": "^1.0.2",
|
|
||||||
"es-abstract": "^1.17.5",
|
|
||||||
"foreach": "^2.0.5",
|
|
||||||
"function-bind": "^1.1.1",
|
|
||||||
"has-symbols": "^1.0.1",
|
|
||||||
"is-typed-array": "^1.1.3"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"es-abstract": {
|
|
||||||
"version": "1.17.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz",
|
|
||||||
"integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==",
|
|
||||||
"requires": {
|
|
||||||
"es-to-primitive": "^1.2.1",
|
|
||||||
"function-bind": "^1.1.1",
|
|
||||||
"has": "^1.0.3",
|
|
||||||
"has-symbols": "^1.0.1",
|
|
||||||
"is-callable": "^1.2.2",
|
|
||||||
"is-regex": "^1.1.1",
|
|
||||||
"object-inspect": "^1.8.0",
|
|
||||||
"object-keys": "^1.1.1",
|
|
||||||
"object.assign": "^4.1.1",
|
|
||||||
"string.prototype.trimend": "^1.0.1",
|
|
||||||
"string.prototype.trimstart": "^1.0.1"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "elastic-node",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"main": "index.js",
|
|
||||||
"scripts": {
|
|
||||||
"test": "echo \"Error: no test specified\" && exit 1"
|
|
||||||
},
|
|
||||||
"author": "",
|
|
||||||
"license": "ISC",
|
|
||||||
"dependencies": {
|
|
||||||
"assert": "^2.0.0",
|
|
||||||
"body-parser": "^1.19.0",
|
|
||||||
"cassandra-driver": "^4.6.0",
|
|
||||||
"elasticsearch": "^16.7.1",
|
|
||||||
"express": "^4.17.1",
|
|
||||||
"pagerank.js": "^1.0.2"
|
|
||||||
},
|
|
||||||
"description": ""
|
|
||||||
}
|
|
@ -1,149 +0,0 @@
|
|||||||
//"use strict";
|
|
||||||
// pagerank.js 0.0.1
|
|
||||||
|
|
||||||
//Use a random surfer algorithm to determine the relative
|
|
||||||
//rank of nodes. The importance of each node is determined
|
|
||||||
//by the number of incoming links as well as the importance
|
|
||||||
//of those incoming links.
|
|
||||||
|
|
||||||
// Expose
|
|
||||||
// ----------
|
|
||||||
|
|
||||||
//Expose our library to be called externally
|
|
||||||
module.exports = function (nodeMatrix, linkProb, tolerance, callback, debug) {
|
|
||||||
if (!nodeMatrix || !linkProb || !tolerance || !callback) {
|
|
||||||
throw new Error("Provide 4 arguments: "+
|
|
||||||
"nodeMatrix, link probability, tolerance, callback");
|
|
||||||
}
|
|
||||||
//If debug is unset set it to false
|
|
||||||
if (!debug) {
|
|
||||||
debug=false;
|
|
||||||
}
|
|
||||||
return new Pagerank(nodeMatrix, linkProb, tolerance, callback, debug);
|
|
||||||
};
|
|
||||||
|
|
||||||
// Initialize
|
|
||||||
// ----------
|
|
||||||
function Pagerank(nodeMatrix, linkProb, tolerance, callback, debug) {
|
|
||||||
//**OutgoingNodes:** represents an array of nodes. Each node in this
|
|
||||||
//array contains an array of nodes to which the corresponding node has
|
|
||||||
//outgoing links.
|
|
||||||
this.outgoingNodes = nodeMatrix;
|
|
||||||
|
|
||||||
//console.log(this.outgoingNodes);
|
|
||||||
//**LinkProb:** a value ??
|
|
||||||
this.linkProb = linkProb;
|
|
||||||
//**Tolerance:** the point at which a solution is deemed optimal.
|
|
||||||
//Higher values are more accurate, lower values are faster to computer.
|
|
||||||
this.tolerance = tolerance;
|
|
||||||
this.callback = callback;
|
|
||||||
|
|
||||||
//Number of outgoing nodes
|
|
||||||
this.pageCount = Object.keys(this.outgoingNodes).length;
|
|
||||||
//console.log(this.pageCount);
|
|
||||||
//**Coeff:** coefficient for the likelihood that a page will be visited.
|
|
||||||
this.coeff = (1-linkProb)/this.pageCount;
|
|
||||||
|
|
||||||
this.probabilityNodes = !(nodeMatrix instanceof Array) ? {} : [];
|
|
||||||
this.incomingNodes = !(nodeMatrix instanceof Array) ? {} : [];
|
|
||||||
//console.log(this.incomingNodes);
|
|
||||||
this.debug=debug;
|
|
||||||
|
|
||||||
this.startRanking();
|
|
||||||
}
|
|
||||||
|
|
||||||
//Start ranking
|
|
||||||
// ----------
|
|
||||||
Pagerank.prototype.startRanking = function () {
|
|
||||||
|
|
||||||
//we initialize all of our probabilities
|
|
||||||
var initialProbability = 1/this.pageCount,
|
|
||||||
outgoingNodes = this.outgoingNodes, i, a, index;
|
|
||||||
|
|
||||||
//rearray the graph and generate initial probability
|
|
||||||
for (i in outgoingNodes) {
|
|
||||||
this.probabilityNodes[i]=initialProbability;
|
|
||||||
for (a in outgoingNodes[i]) {
|
|
||||||
index = outgoingNodes[i][a];
|
|
||||||
if (!this.incomingNodes[index]) {
|
|
||||||
this.incomingNodes[index]=[];
|
|
||||||
}
|
|
||||||
this.incomingNodes[index].push(i);
|
|
||||||
// console.log(this.incomingNodes);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//if debug is set, print each iteration
|
|
||||||
if (this.debug) this.reportDebug(1)
|
|
||||||
|
|
||||||
this.iterate(1);
|
|
||||||
};
|
|
||||||
|
|
||||||
//Log iteration to console
|
|
||||||
// ----------
|
|
||||||
Pagerank.prototype.reportDebug = function (count) {
|
|
||||||
//console.log("____ITERATION "+count+"____");
|
|
||||||
//console.log("Pages: " + Object.keys(this.outgoingNodes).length);
|
|
||||||
//console.log("outgoing %j", this.outgoingNodes);
|
|
||||||
//console.log("incoming %j",this.incomingNodes);
|
|
||||||
//console.log("probability %j",this.probabilityNodes);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
//Calculate new weights
|
|
||||||
// ----------
|
|
||||||
Pagerank.prototype.iterate = function(count) {
|
|
||||||
var result = [];
|
|
||||||
var resultHash={};
|
|
||||||
var prob, ct, b, a, sum, res, max, min;
|
|
||||||
|
|
||||||
//For each node, we look at the incoming edges and
|
|
||||||
//the weight of the node connected via each edge.
|
|
||||||
//This weight is divided by the total number of
|
|
||||||
//outgoing edges from each weighted node and summed to
|
|
||||||
//determine the new weight of the original node.
|
|
||||||
for (b in this.probabilityNodes) {
|
|
||||||
|
|
||||||
sum = 0;
|
|
||||||
if( this.incomingNodes[b] ) {
|
|
||||||
for ( a=0; a<this.incomingNodes[b].length; a++) {
|
|
||||||
prob = this.probabilityNodes[ this.incomingNodes[b][a] ];
|
|
||||||
ct = this.outgoingNodes[ this.incomingNodes[b][a] ].length;
|
|
||||||
sum += (prob/ct) ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//determine if the new probability is within tolerance.
|
|
||||||
res = this.coeff+this.linkProb*sum;
|
|
||||||
max = this.probabilityNodes[b]+this.tolerance;
|
|
||||||
min = this.probabilityNodes[b]-this.tolerance;
|
|
||||||
|
|
||||||
//if the result has changed push that result
|
|
||||||
if (min <= res && res<= max) {
|
|
||||||
resultHash[b]=res;
|
|
||||||
result.push(res);
|
|
||||||
}
|
|
||||||
|
|
||||||
//update the probability for node *b*
|
|
||||||
this.probabilityNodes[b]=res;
|
|
||||||
//console.log(this.probabilityNodes[b]);
|
|
||||||
//console.log(res);
|
|
||||||
}
|
|
||||||
|
|
||||||
//When we have all results (no weights are changing) we return via callback
|
|
||||||
if (result.length == this.pageCount) {
|
|
||||||
if( !(this.outgoingNodes instanceof Array)) {
|
|
||||||
return this.callback(null, resultHash);
|
|
||||||
}
|
|
||||||
return this.callback(null, result);
|
|
||||||
}
|
|
||||||
|
|
||||||
//if debug is set, print each iteration
|
|
||||||
if (this.debug) {
|
|
||||||
this.reportDebug(count);
|
|
||||||
}
|
|
||||||
|
|
||||||
++count;
|
|
||||||
return this.iterate(count);
|
|
||||||
};
|
|
@ -1,20 +0,0 @@
|
|||||||
funguje indexovanie z cassandry do ES
|
|
||||||
funguje vyhladavanie
|
|
||||||
|
|
||||||
|
|
||||||
navod na spustenie :
|
|
||||||
|
|
||||||
1. vymazanie indexu :
|
|
||||||
curl -XDELETE http://localhost:9200/skweb2/
|
|
||||||
|
|
||||||
2. spustenie indexovania :
|
|
||||||
|
|
||||||
nodejs cassandra.js
|
|
||||||
|
|
||||||
3. spustenie web aplikacie
|
|
||||||
|
|
||||||
nodejs app.js
|
|
||||||
|
|
||||||
4. otvorime prehliadac
|
|
||||||
|
|
||||||
http://localhost:3001/
|
|
@ -1,124 +0,0 @@
|
|||||||
<!-- template.html -->
|
|
||||||
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
|
|
||||||
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
|
|
||||||
<div class="container" id="app">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-6 col-md-offset-3">
|
|
||||||
<h1>Search engine for Slovak internet</h1>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-4 col-md-offset-3">
|
|
||||||
<form action="" class="search-form">
|
|
||||||
<div class="form-group has-feedback">
|
|
||||||
<label for="search" class="sr-only">Search</label>
|
|
||||||
<input type="text" class="form-control" name="search" id="search" placeholder="search" v-model="query" >
|
|
||||||
<span class="glyphicon glyphicon-search form-control-feedback"></span>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-3" v-for="result in results">
|
|
||||||
<div class="panel panel-default">
|
|
||||||
<div class="panel-heading">
|
|
||||||
{{ result._source.target_link}}
|
|
||||||
</div>
|
|
||||||
<div class="panel-heading">
|
|
||||||
{{ result._source.title}}
|
|
||||||
</div>
|
|
||||||
<div class="panel-body">
|
|
||||||
<!-- display the latitude and longitude of the city -->
|
|
||||||
<p>{{ result._source.body }}</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!--- styling -->
|
|
||||||
<style>
|
|
||||||
.search-form .form-group {
|
|
||||||
float: right !important;
|
|
||||||
transition: all 0.35s, border-radius 0s;
|
|
||||||
width: 32px;
|
|
||||||
height: 32px;
|
|
||||||
background-color: #fff;
|
|
||||||
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075) inset;
|
|
||||||
border-radius: 25px;
|
|
||||||
border: 1px solid #ccc;
|
|
||||||
}
|
|
||||||
|
|
||||||
.search-form .form-group input.form-control {
|
|
||||||
padding-right: 20px;
|
|
||||||
border: 0 none;
|
|
||||||
background: transparent;
|
|
||||||
box-shadow: none;
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.search-form .form-group input.form-control::-webkit-input-placeholder {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.search-form .form-group input.form-control:-moz-placeholder {
|
|
||||||
/* Firefox 18- */
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.search-form .form-group input.form-control::-moz-placeholder {
|
|
||||||
/* Firefox 19+ */
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.search-form .form-group input.form-control:-ms-input-placeholder {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.search-form .form-group:hover,
|
|
||||||
.search-form .form-group.hover {
|
|
||||||
width: 100%;
|
|
||||||
border-radius: 4px 25px 25px 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.search-form .form-group span.form-control-feedback {
|
|
||||||
position: absolute;
|
|
||||||
top: -1px;
|
|
||||||
right: -2px;
|
|
||||||
z-index: 2;
|
|
||||||
display: block;
|
|
||||||
width: 34px;
|
|
||||||
height: 34px;
|
|
||||||
line-height: 34px;
|
|
||||||
text-align: center;
|
|
||||||
color: #3596e0;
|
|
||||||
left: initial;
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
var app = new Vue({
|
|
||||||
el: '#app',
|
|
||||||
data: {
|
|
||||||
results: [],
|
|
||||||
query: ''
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
search: function() {
|
|
||||||
axios.get("http://127.0.0.1:3001/search?q=" + this.query)
|
|
||||||
.then(response => {
|
|
||||||
this.results = response.data;
|
|
||||||
console.log(response.data);
|
|
||||||
|
|
||||||
})
|
|
||||||
}
|
|
||||||
},
|
|
||||||
watch: {
|
|
||||||
query: function() {
|
|
||||||
this.search();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
})
|
|
||||||
</script>
|
|
@ -1,125 +0,0 @@
|
|||||||
## Návod na prácu s Elasticsearch
|
|
||||||
### Inštalácia
|
|
||||||
|
|
||||||
ES je dostupný na všetky operačné systémy ako Windows, MacOs aj Linux. Pre
|
|
||||||
prácu bol zvolený operačný systém Linux, ktorý je vhodnejší ako Windows. V systéme sme vytvorili adresár, ktorý bude obsahovať všetky potrebné súčasti. Do tohto
|
|
||||||
adresára sme si stiahli ES, ktorý stačilo rozbaliť a je pripravený na použitie aj bez
|
|
||||||
inštalácie. Pre spustením je potrebné mať prostredie Java Runtime Environment vo
|
|
||||||
verzii aspoň 1.8
|
|
||||||
|
|
||||||
|
|
||||||
Na tejto stránke najdeme najnosvsiu verziu ES
|
|
||||||
[Návod na instalaciu ES - oficialna stranka](https://www.elastic.co/guide/en/elasticsearch/reference/current/deb.html)
|
|
||||||
|
|
||||||
**Zopár prikazov na lepsie fungovanie ES**
|
|
||||||
|
|
||||||
sudo -i service elasticsearch start //start ES
|
|
||||||
sudo -i service elasticsearch stop //stop ES
|
|
||||||
|
|
||||||
**Ak chceme aby sa ES spustal automaticky po spusteni OS**
|
|
||||||
|
|
||||||
sudo /bin/systemctl daemon-reload
|
|
||||||
sudo /bin/systemctl enable elasticsearch.service
|
|
||||||
|
|
||||||
**potom vieme ES spustat takto**
|
|
||||||
|
|
||||||
sudo systemctl start elasticsearch.service
|
|
||||||
|
|
||||||
sudo systemctl stop elasticsearch.service
|
|
||||||
|
|
||||||
**alebo zistime v akom stave sa nachadza**
|
|
||||||
|
|
||||||
sudo service elasticsearch status
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Podpora slovenčiny
|
|
||||||
|
|
||||||
Pre použitie Hunspell token filtru, stačí jeho obsah stiahnuť z webovej stránky a
|
|
||||||
rozbaliť ho. Po rozbalení obsahu je potrebné otvoriť adresár kde máme nainštalovaný
|
|
||||||
ES. Konkrétne v adresári config vytvoríme nový adresár s názvom hunspell, v ňom
|
|
||||||
ďalej vytvoríme adresár sk_SK. Do tohto adresára nakopírujeme súbory, ktoré sme
|
|
||||||
získali rozbalením Hunspellu. Výsledná súborová štruktúru si môžeme pozrieť na
|
|
||||||
obrázku :
|
|
||||||
|
|
||||||
![Súborová štruktúra Hunspell](suborova_struktura.PNG)
|
|
||||||
|
|
||||||
Pre správne fungovanie už potrebujeme len nastaviť analyzér správne. Dôležité
|
|
||||||
je poradie v akom sa filtre budú aplikovať na text. Na obrázku si môžeme pozrieť
|
|
||||||
kompletné nastavenie analyzéru(pozn. ES musí byť spustený). Ak je všetko správne
|
|
||||||
ES nám odpovie hláškou "true". Ako definovať analyzér si môžeme pozrieť na obrázku :
|
|
||||||
|
|
||||||
![Definícia analýzeru](def_analyzeru.PNG)
|
|
||||||
|
|
||||||
### Mapping
|
|
||||||
|
|
||||||
Po nastavení analyzéra potrebujeme ešte pred samotným indexovaním dát nastaviť mapping. Je dôležité nastaviť to na začiatku, kedže mapping už potom nie je
|
|
||||||
možné upraviť. Bolo by potrebné zmazať celý index a nastaviť mapping znova. Pri
|
|
||||||
mappingu potrebujeme vedieť, že každý článok bude obsahovať svoje jedinečné ID,
|
|
||||||
názov(title) a telo(body) článku. Týmto poliam musíme definovať štruktúru, čiže ID
|
|
||||||
bude typu integer, polia title a body budú typu text.
|
|
||||||
|
|
||||||
### Indexovanie dát
|
|
||||||
|
|
||||||
Na indexovanie použijeme pripravený zdrojový kód s názvom elasticsearch.js. Na
|
|
||||||
spustenie javascript kód potrebujeme mať nainštalovaný program Nodejs, najlepšie
|
|
||||||
v čo najnovšej verzii. Kód spustíme pomocou príkazového riadka zadaním príkazu:
|
|
||||||
nodejs elasticsearch.js.
|
|
||||||
Zdrojový kód načítava súbor, v ktorom sú všetky novinové články vo formáte
|
|
||||||
JSON, kde jeden riadok je jeden JSON, čiže jeden novinový článok. Načítavanie
|
|
||||||
prebieha po riadkoch, kde každému riadku je priradený index postupne v rozsahu 1
|
|
||||||
až 4781. každý článok obsahuje jedinečné ID, názov a telo.
|
|
||||||
Po spustení kódu sa nám zobrazí hláška, ktorá nás informuje o počte indexovaných článkov a vytvorí index s názvom "skweb", kde sa indexuje 4781 novinových
|
|
||||||
článkov, ktorým budú priradené ID. Po úspešnom indexovaní môžeme začať dáta
|
|
||||||
vyhľadávať. Ukážka správneho indexovania je na obrázku :
|
|
||||||
|
|
||||||
![Ukážka indexovania](ukazka_indexovania.PNG)
|
|
||||||
|
|
||||||
### Vyhľadávanie
|
|
||||||
|
|
||||||
Po úspešnom indexovaní môžeme začať s vyhľadávaním. Musíme si pripraviť dotaz
|
|
||||||
pre ES. Obrázok znázorňuje komunikáciu s ES a vyhľadávanie pomocou neho.
|
|
||||||
Odpoveď ES si môžeme pozrieť na obrázku. Sú tam zobrazené informácie
|
|
||||||
o trvaní vyhľadávania v ms, počte nájdených dokumentov, indexe, v ktorom sa
|
|
||||||
nachádza nájdený dokument, type, v ktorom je uložený dokument a ID dokumentu.
|
|
||||||
|
|
||||||
![Vyhľadávanie](vyhladavanie.PNG)
|
|
||||||
|
|
||||||
![Odpoveď]( odpoved.PNG)
|
|
||||||
|
|
||||||
|
|
||||||
### Výpočet presnosti
|
|
||||||
|
|
||||||
Použijeme metódu precision-recall. V priečinku ../scnc21 sa nachádza súbor answers,
|
|
||||||
ktorý obsahuje ID všetkých relevantných článkov pre každú otázku. Pri vyhľadávaní
|
|
||||||
majú články ID v rozsahu 1-4871. V súbore answers majú články ID dokumentov
|
|
||||||
označené inými číslami. Preto je potrebné každému ID z nášho vyhľadávača priradiť ID zo súboru answers aby sme správne vedeli vypočítať presnosť. Keďže naše indexovanie článkov prebiehalo načítavaním po riadkoch tak ID dokumentu, ktorý
|
|
||||||
nám našiel vyhľadávač je vlastne číslo riadku, pomocou ktorého sme indexovali dáta.
|
|
||||||
Stačí si pozrieť súbor info.txt , pomocou ktorého vieme prideliť správne ID.
|
|
||||||
Potom nám stačí použiť nástroj na výpočet precision-recall, môžeme to byť npm
|
|
||||||
balíček precision-recall alebo online kalkulátor. Ak vypočítame presnosť pre každú
|
|
||||||
otázku na záver stačí vypočítať aritmetický priemer všetkých otázok.
|
|
||||||
|
|
||||||
|
|
||||||
**Všetky potrebné zdrojové súbory su priložené v tomto repozitári**
|
|
||||||
|
|
||||||
**Môžu nastať menšie rozdiely kvôli novším verziám použitých nástrojov napr. ES, Nodejs**
|
|
||||||
|
|
||||||
**Užitočné odkazy** :
|
|
||||||
|
|
||||||
Dáta na indexovanie k stiahnutiu, články zo slovenského internetu:
|
|
||||||
|
|
||||||
https://nlp.web.tuke.sk/static/files/scnc1.zip
|
|
||||||
|
|
||||||
Súbory potrebné na výpočet presnosti, konkrétne otázky a a súbor správnych odpovedí:
|
|
||||||
|
|
||||||
https://nlp.web.tuke.sk/static/files/scnc21.zip
|
|
||||||
|
|
||||||
Všetko doležité ohľadom ES je na ich oficiálnej stránke :
|
|
||||||
https://www.elastic.co/elasticsearch/
|
|
||||||
|
|
||||||
Dôležité veci ohľadom Nodejs nájdete tu :
|
|
||||||
https://nodejs.org/en/blog/
|
|
||||||
|
|
||||||
Pre viac informácií stači pozrieť bakalársku prácu :
|
|
||||||
https://opac.crzp.sk/?fn=detailBiblioForm&sid=A4CA3C451D400D4BD034603141D1&seo=CRZP-detail-kniha
|
|
Before Width: | Height: | Size: 137 KiB |
@ -1,11 +0,0 @@
|
|||||||
**8.4.2020**
|
|
||||||
|
|
||||||
- pridaný návod na prácu s ES z bakalárskej práce
|
|
||||||
- pridané zdrojové súbory z bakalárskej práce
|
|
||||||
|
|
||||||
|
|
||||||
**24.4.2020**
|
|
||||||
|
|
||||||
- web aplikácia ako rozhranie pre vyhľadávač hotová
|
|
||||||
- pridané zdrojové súbory a postup ako spustiť web aplikáciu v localhoste
|
|
||||||
- preštudované zdrojové súbory agenta na získavanie informáci (problémy popísané v maily)
|
|
Before Width: | Height: | Size: 85 KiB |
Before Width: | Height: | Size: 216 KiB |
Before Width: | Height: | Size: 248 KiB |
Before Width: | Height: | Size: 81 KiB |
@ -1,32 +0,0 @@
|
|||||||
# Návod na spustenie web aplikácie ako rozhrania pre vyhľadávač
|
|
||||||
|
|
||||||
**1.** Nainšatujeme elasticsearch podľa predošlého návodu, alebo pre lepšie info sa môžeme riadiť týmto návodom kde je najnovsia verzia ES
|
|
||||||
|
|
||||||
[Návod na instalaciu ES- oficialna stranka ](https://www.elastic.co/guide/en/elasticsearch/reference/current/deb.html)
|
|
||||||
|
|
||||||
**2.** vytvoríme svoj vlastný priečinok v Documents alebo skopirujeme skweb.zip a extrahujeme
|
|
||||||
|
|
||||||
|
|
||||||
**3.** v priečinku skweb spustime niekolko príkazov
|
|
||||||
|
|
||||||
npm init // vytvori subor package.json, kt sa tam uz nachadza tak ho prepise
|
|
||||||
|
|
||||||
npm install express body-parser elasticsearch // nainstaluje kniznice
|
|
||||||
|
|
||||||
sudo -i service elasticsearch start // zapneme ES
|
|
||||||
|
|
||||||
**4.** Zaindexujeme databazu
|
|
||||||
|
|
||||||
nodejs data.js //nacita subor a zaindexuje databazu
|
|
||||||
|
|
||||||
nodejs idnex.js //najlepsie otvorit v novom okne, musi bezat aby aplikacia fungovala
|
|
||||||
|
|
||||||
**5.** Otvorime prehliadač a zadáme http://localhost:3001/
|
|
||||||
|
|
||||||
**6.** Môžeme vyhľadávať
|
|
||||||
|
|
||||||
![ukazka](ukazka.PNG)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
**zatial ide len o demo verziu**
|
|
@ -1,44 +0,0 @@
|
|||||||
|
|
||||||
const fs = require('fs');
|
|
||||||
const readline = require('readline');
|
|
||||||
|
|
||||||
|
|
||||||
var result = [];
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const readInterface = readline.createInterface({
|
|
||||||
input : fs.createReadStream('/home/elastic/BP/skweb/server/scnc2/answers'),
|
|
||||||
console : false
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
readInterface.on('line', function(line){
|
|
||||||
var tokens = line.split(" ");
|
|
||||||
var id_query = parseInt(tokens[0]);
|
|
||||||
var id_document = parseInt(tokens[1]);
|
|
||||||
// console.log([id_query]);
|
|
||||||
|
|
||||||
if (!(id_query in result)){
|
|
||||||
result[id_query]=[id_document];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
result[id_query].push(id_document);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// console.log(result);
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
readInterface.on('close', function() {
|
|
||||||
for (let i = 0 ; i < result.length; i++){
|
|
||||||
|
|
||||||
console.log(i);
|
|
||||||
console.log(result[i]);
|
|
||||||
}
|
|
||||||
console.log("koniec");
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
@ -1,105 +0,0 @@
|
|||||||
//Jan Holp, DP 2021
|
|
||||||
|
|
||||||
|
|
||||||
//client1 = cassandra
|
|
||||||
//client2 = elasticsearch
|
|
||||||
//-----------------------------------------------------------------
|
|
||||||
|
|
||||||
//require the Elasticsearch librray
|
|
||||||
const elasticsearch = require('elasticsearch');
|
|
||||||
const client2 = new elasticsearch.Client({
|
|
||||||
hosts: [ 'localhost:9200']
|
|
||||||
});
|
|
||||||
client2.ping({
|
|
||||||
requestTimeout: 30000,
|
|
||||||
}, function(error) {
|
|
||||||
// at this point, eastic search is down, please check your Elasticsearch service
|
|
||||||
if (error) {
|
|
||||||
console.error('Elasticsearch cluster is down!');
|
|
||||||
} else {
|
|
||||||
console.log('Everything is ok');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
//create new index skweb2
|
|
||||||
client2.indices.create({
|
|
||||||
index: 'skweb2'
|
|
||||||
}, function(error, response, status) {
|
|
||||||
if (error) {
|
|
||||||
console.log(error);
|
|
||||||
} else {
|
|
||||||
console.log("created a new index", response);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
const cassandra = require('cassandra-driver');
|
|
||||||
const client1 = new cassandra.Client({ contactPoints: ['localhost:9042'], localDataCenter: 'datacenter1', keyspace: 'websucker' });
|
|
||||||
const query = 'SELECT title FROM websucker.content WHERE body_size > 0 ALLOW FILTERING';
|
|
||||||
client1.execute(query)
|
|
||||||
.then(result => console.log(result)),function(error) {
|
|
||||||
if(error){
|
|
||||||
console.error('Something is wrong!');
|
|
||||||
console.log(error);
|
|
||||||
} else{
|
|
||||||
console.log('Everything is ok');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
async function indexData() {
|
|
||||||
|
|
||||||
var i = 0;
|
|
||||||
const query = 'SELECT title FROM websucker.content WHERE body_size > 0 ALLOW FILTERING';
|
|
||||||
client1.execute(query)
|
|
||||||
.then((result) => {
|
|
||||||
try {
|
|
||||||
//for ( i=0; i<15;i++){
|
|
||||||
console.log('%s', result.row[0].title)
|
|
||||||
//}
|
|
||||||
} catch (query) {
|
|
||||||
if (query instanceof SyntaxError) {
|
|
||||||
console.log( "Neplatne query" );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
//indexing method
|
|
||||||
const bulkIndex = function bulkIndex(index, type, data) {
|
|
||||||
let bulkBody = [];
|
|
||||||
id = 1;
|
|
||||||
const errorCount = 0;
|
|
||||||
data.forEach(item => {
|
|
||||||
bulkBody.push({
|
|
||||||
index: {
|
|
||||||
_index: index,
|
|
||||||
_type: type,
|
|
||||||
_id : id++,
|
|
||||||
}
|
|
||||||
});
|
|
||||||
bulkBody.push(item);
|
|
||||||
});
|
|
||||||
console.log(bulkBody);
|
|
||||||
client.bulk({body: bulkBody})
|
|
||||||
.then(response => {
|
|
||||||
|
|
||||||
response.items.forEach(item => {
|
|
||||||
if (item.index && item.index.error) {
|
|
||||||
console.log(++errorCount, item.index.error);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
console.log(
|
|
||||||
`Successfully indexed ${data.length - errorCount}
|
|
||||||
out of ${data.length} items`
|
|
||||||
);
|
|
||||||
})
|
|
||||||
.catch(console.err);
|
|
||||||
};
|
|
||||||
*/
|
|
@ -1,72 +0,0 @@
|
|||||||
|
|
||||||
const elasticsearch = require('elasticsearch');
|
|
||||||
const fs = require('fs');
|
|
||||||
const readline = require('readline');
|
|
||||||
|
|
||||||
const client = new elasticsearch.Client({
|
|
||||||
hosts: [ 'http://localhost:9200']
|
|
||||||
});
|
|
||||||
|
|
||||||
client.indices.create({
|
|
||||||
index: 'skweb'
|
|
||||||
}, function(error, response, status) {
|
|
||||||
if (error) {
|
|
||||||
console.log(error);
|
|
||||||
} else {
|
|
||||||
console.log("created a new index", response);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
const bulkIndex = function bulkIndex(index, type, data) {
|
|
||||||
let bulkBody = [];
|
|
||||||
id = 1;
|
|
||||||
const errorCount = 0;
|
|
||||||
data.forEach(item => {
|
|
||||||
bulkBody.push({
|
|
||||||
index: {
|
|
||||||
_index: index,
|
|
||||||
_type: type,
|
|
||||||
_id : id++,
|
|
||||||
}
|
|
||||||
});
|
|
||||||
bulkBody.push(item);
|
|
||||||
});
|
|
||||||
console.log(bulkBody);
|
|
||||||
client.bulk({body: bulkBody})
|
|
||||||
.then(response => {
|
|
||||||
|
|
||||||
response.items.forEach(item => {
|
|
||||||
if (item.index && item.index.error) {
|
|
||||||
console.log(++errorCount, item.index.error);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
console.log(
|
|
||||||
`Successfully indexed ${data.length - errorCount}
|
|
||||||
out of ${data.length} items`
|
|
||||||
);
|
|
||||||
})
|
|
||||||
.catch(console.err);
|
|
||||||
};
|
|
||||||
|
|
||||||
async function indexData() {
|
|
||||||
|
|
||||||
let documents = [];
|
|
||||||
const readInterface = readline.createInterface({
|
|
||||||
input: fs.createReadStream('/home/elastic/BP/skweb/server/text.txt'),
|
|
||||||
// output: process.stdout,
|
|
||||||
console: false
|
|
||||||
});
|
|
||||||
readInterface.on('line', function(line) {
|
|
||||||
const article = JSON.parse(line);
|
|
||||||
documents.push(article);
|
|
||||||
|
|
||||||
});
|
|
||||||
readInterface.on('close', function() {
|
|
||||||
console.log(documents);
|
|
||||||
bulkIndex('skweb', 'web_page', documents);
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
indexData();
|
|
@ -1,28 +0,0 @@
|
|||||||
(function () {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
const elasticsearch = require('elasticsearch');
|
|
||||||
const esClient = new elasticsearch.Client({
|
|
||||||
host: '127.0.0.1:9200',
|
|
||||||
log: 'error'
|
|
||||||
});
|
|
||||||
|
|
||||||
const indices = function indices() {
|
|
||||||
return esClient.cat.indices({v: true})
|
|
||||||
.then(console.log)
|
|
||||||
.catch(err => console.error(`Error connecting to the es client: ${err}`));
|
|
||||||
};
|
|
||||||
|
|
||||||
// only for testing purposes
|
|
||||||
// all calls should be initiated through the module
|
|
||||||
const test = function test() {
|
|
||||||
console.log(`elasticsearch indices information:`);
|
|
||||||
indices();
|
|
||||||
};
|
|
||||||
|
|
||||||
test();
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
indices
|
|
||||||
};
|
|
||||||
} ());
|
|
Before Width: | Height: | Size: 143 KiB |
@ -1,79 +0,0 @@
|
|||||||
---
|
|
||||||
title: Získavanie informácií
|
|
||||||
published: true
|
|
||||||
taxonomy:
|
|
||||||
category: [tp2020]
|
|
||||||
tag: [ir,nlp]
|
|
||||||
author: Ján Holp
|
|
||||||
---
|
|
||||||
# Tímový projekt
|
|
||||||
|
|
||||||
# Learning to Rank for Information Retrieval and Natural Language Processing
|
|
||||||
|
|
||||||
Autor, Hang Li , v knihe ukazuje rôzne problémy s hodnotením pri získavaní informácií a spracovaní v prirodzenom jazyku. Autor podáva podrobné vysvetlenia o učení sa pri tvorbe rebríčka a agregácií rebríčka, vrátane školení a testovania, hodnotenia, tvorby prvkov a hlavných prístupov. Na vytvorenie rebríčka bolo navrhnutých veľa metód.
|
|
||||||
|
|
||||||
## Získavanie informácií
|
|
||||||
Získavanie informácií (ang. Information retrieval, skratka IR) je veda o vyhľadávaní relevantných údajov v dokumentoch alebo samotnom vyhľadávaní dokumentov. Môžeme to chápať aj ako plne automatický proces, ktorý reaguje na požiadavku užívateľa preskúmaním dokumentov a vrátením zoznamu zoradených dokumentov, ktorý by mal byť relevantný voči požiadavke užívateľa. Takýto automatizovaný systém na získavanie informácií sa používa na zníženie preťaženia informáciami. Typickými systémami na takéto získavanie informácií sú webové prehliadače. Každé vyhľadávanie musí začať analýzou požiadavky, ktorú do systému zadal užívateľ.
|
|
||||||
|
|
||||||
## Machine learning
|
|
||||||
Strojové učenie je vedecká štúdia z algoritmov a štatistických modelov, ktoré počítačové systémy používajú na vykonanie určitej úlohy bez použitia jasného návodu. Je to vnímané taktiež ako podskupina umelej inteligencie. Algoritmy strojového učenia vytvárajú matematický model založený na vzorkách údajov, známych ako „školiace údaje“, aby mohli vykonať predpovede alebo rozhodnutia bez toho aby boli výslovne naprogramované na vykonanie úlohy.
|
|
||||||
|
|
||||||
## Learning to rank
|
|
||||||
Existuje mnoho otázok v oblasti získavania informácií a spracovania prirodzeného jazyka (ang. natural language processing), medzi ktoré patrí aj hodnotenie (ranking). Naučiť sa hodnotiť je užitočné pre mnoho aplikácií v oblasti získavania informácií, spracovania prirodzeného jazyka a získavania
|
|
||||||
údajov. Pri získavaní informácií je veľmi dôležité určiť, resp. ohodnotiť správnosť vyhľadaných informácií. Je potrebné určiť či sú tieto informácie pre nás relevantné alebo nie. Učenie správne hodnotiť je založené na hodnotení pomocou strojového učenia.
|
|
||||||
|
|
||||||
## Natural language processing
|
|
||||||
Spracovanie prirodzeného jazyka (NLP) je odvetvie umelej inteligencie, ktoré pomáha počítačom porozumieť, interpretovať a manipulovať s ľudským jazykom. NLP čerpá z mnohých disciplín, vrátane počítačovej vedy a výpočtovej lingvistiky, v snahe zaplniť medzeru medzi ľudskou komunikáciou a počítačovým porozumením.
|
|
||||||
|
|
||||||
## Ranking creation
|
|
||||||
Autor v knihe opisuje problémy s vytváraním hodnotenia, ktoré je možné rozdeliť na dve základné úlohy :
|
|
||||||
- Tvorba hodnotenia (ranking) - Ranking aggregation
|
|
||||||
Môžeme predpokladať, že pri vytváraní hodnotenia máme 2 množiny :
|
|
||||||
Q = {q1, q2, ···, qi, ···, qm}
|
|
||||||
O = {o1, o2, ···, oj, ···, on}
|
|
||||||
Množina Q môže obsahovať otázky pri vyhľadávaní dokumentov. Množina O môže byť množina, ktorá obsahuje cieľové vety, resp. odpovede na naše otázky. Obe množiny môžu byť nekonečné. Hodnotenie sa vytvára pomocou tzv. funkcie bodovania.
|
|
||||||
|
|
||||||
## Ranking aggregation
|
|
||||||
Agregácia klasifikácie môže byť pod dohľadom alebo bez dozoru. Agregácia klasifikácie je vlastne proces kombinovania viacerých zoznamov rebríčkov do jediného rebríčka, ktorý je určený pre väčšinu ostatných vedúcich zoznamov.
|
|
||||||
|
|
||||||
## PageRank
|
|
||||||
PageRank je algoritmus, ktorý pridelí čísla s ohodnotením každému prvku v množine, ktoré sú navzájom prepojené, napr. World Wide Web. Čísla prideľuje s cieľom ohodnotiť významnosť daného prvku (dokumentu) v množine. Tento algoritmus je pomenovaný podľa svojho zakladateľa – Larry Page. Tento algoritmus používa aj Google na určenie popularity . Pre tvorcov webových stránok to znamená toľko, že čím väčší je náš PageRank, tým väčšiu dôležitosť stránke prideľuje Google a iné vyhľadávače. A čím je dôležitosť väčšia, tým vyššie je umiestnenie medzi výsledkami vyhľadávania. Samozrejme to nie je jediné kritérium, ktoré stránky posúva medzi výsledkami vyššie. Druhou výhodou je, že vyhľadávač prehľadáva najviac stránky, ktoré majú najväčší PageRank. Google aktualizuje PageRank cca v 3-mesačnom intervale.
|
|
||||||
PageRank funguje spočítaním počtu a kvality odkazov na stránku, aby určil hrubý odhad dôležitosti webovej stránky. Základný predpoklad je, že dôležitejšie webové stránky pravdepodobne získajú viac odkazov z iných webových stránok.
|
|
||||||
|
|
||||||
![PageRank](pagerank.jpg)
|
|
||||||
|
|
||||||
PageRank vyjadruje hodnotenie v percentách. Algoritmus Googlu používa logaritmické vyjadrenie. Na obrázku môžeme vidieť, že stránka s označením C má vyšší PageRank ako stránka E, aj keď je na stránku E viacero odkazov. PageRank vypočítame podľa tohto vzorca :
|
|
||||||
|
|
||||||
![vzorec](vzorec1.PNG)
|
|
||||||
|
|
||||||
Kde P(d) je pravdepodobnosť zobrazenia stránky d, P(di) je pravdepodobnosť zobrazenia stránky di a M(d) je množina stránok pripojená k d, L(di) je počet odkazov grafu, α je váha.
|
|
||||||
|
|
||||||
## Okapi BM25
|
|
||||||
Pri získavaní informácií je Okapi BM25 algoritmus hodnotenia, ktorý používajú vyhľadávacie nástroje na odhad relevantnosti dokumentov pre daný vyhľadávací dopyt. Je založený na pravdepodobnostnom vyhľadávacom rámci, ktorý v 70. a 80. rokoch 20. storočia vypracovali Stephen E. Robertson , Karen Spärck Jones a ďalší.
|
|
||||||
BM25 je funkcia získavania slov, ktorá hodnotí skupinu dokumentov na základe výrazov, ktoré sa objavujú v každom dokumente. Vypočíta sa podľa tohto vzorca :
|
|
||||||
|
|
||||||
![vzorec](vzorec2.PNG)
|
|
||||||
|
|
||||||
Kde w označuje slovo v dokumente d, a q, t𝒇(𝒘) označujú frekvenciu slov v dokumente d. id𝒇(𝒘) označuje inverznú frekvenciu slov w v dokumente. dl označuje dĺžku dokumentu d, avgdl označuje priemernú dĺžku dokumentu, b aj k sú konštanty.
|
|
||||||
|
|
||||||
|
|
||||||
## Použitá literatúra
|
|
||||||
[1] LI, H.: Learning to Rank for Information Retrieval and Natural Language Processing: Second Edition. ., 2011, [ cit. 19.december. 2019 ]. Dostupné na webovskej stránke (world wide web): https://ieeexplore.ieee.org/document/6949403
|
|
||||||
|
|
||||||
[2] S.E. Robertson and S.Walker.Some simple effective approximations to the 2-poisson model for probabilistic weighted retrieval. In Proceedings of the17th annual international ACM SIGIR conference on Research and development in information retrieval,SIGIR’94, pages232–241, New York, NY, USA, 1994. Springer-Verlag New York, Inc. [ cit. 19.december. 2019 ].
|
|
||||||
|
|
||||||
[3] Alekh Agarwal, Soumen Chakrabarti, and Sunny Aggarwal. Learning to rank networked entities. In KDD,pages 14–23,2006 [ cit. 19.december. 2019 ].
|
|
||||||
|
|
||||||
[4] C. Cortesand V. Vapnik. Support-vector networks. Machine Learning,20(3):273–297,1995 [ cit. 19.december. 2019 ].
|
|
||||||
|
|
||||||
[5] Christopher D. Manning, Prabhakar Raghavan Hinrich Schütze.: Introduction to Information Retrieval. : Cambridge University Press, 2008. [ cit. 19.december. 2019 ].
|
|
||||||
|
|
||||||
[6] L. Page, S. Brin, R. Motwani, and T. Winograd. The pagerank citation ranking: Bringing order to the web. Technical report, Stanford University, Stanford, CA, 1998. [ cit. 19.december. 2019 ].
|
|
||||||
|
|
||||||
[7] Zhe Cao, Tao Qin, Tie-Yan Liu, Ming-Feng Tsai, and Hang Li. Learning to rank: from pairwise approach to listwise approach. In ICML ’07: Proceedings of the 24th international conference on Machine learning, pages 129–136, 2007 [ cit. 19.december. 2019 ].
|
|
||||||
|
|
||||||
[8] Altman, Alon; Moshe Tennenholtz (2005). "Ranking Systems: The PageRank Axioms" (PDF). Proceedings of the 6th ACM conference on Electronic commerce (EC-05). Vancouver, BC. [ cit. 19.december. 2019 ].
|
|
||||||
|
|
||||||
[9] Langville, Amy N.; Meyer, Carl D. (2006). Google's PageRank and Beyond: The Science of Search Engine Rankings. Princeton University Press, [ cit. 19.december. 2019 ].
|
|
||||||
|
|
||||||
[10] Michael Bendersky,W.Bruce Croft,andYanlei Diao. Quality-biased ranking of web documents. InWSDM,pages 95–104,2011, [cit. 19.december. 2019 ].
|
|
Before Width: | Height: | Size: 96 KiB |
Before Width: | Height: | Size: 11 KiB |