kais@praktika1 ~ $ cd public_html kais@praktika1 ~/public_html $ cd DHtehnoloogiad kais@praktika1 ~/public_html/DHtehnoloogiad $ mkdir estnltk kais@praktika1 ~/public_html/DHtehnoloogiad $ python3.5 Python 3.5.2 (default, Nov 12 2018, 13:43:14) [GCC 5.4.0 20160609] on linux Type "help", "copyright", "credits" or "license" for more information. >>> from estnltk import Text >>> t = Text("Juku tuli kooli liiga hilja.") >>> t.get.word_texts.lemmas.postags.as_dataframe word_texts lemmas postags 0 Juku Juku H 1 tuli tulema V 2 kooli kool S 3 liiga liiga D 4 hilja hilja D 5 . . Z >>> t.get.word_texts.lemmas.postags.postag_descriptions.as_dataframe word_texts lemmas postags postag_descriptions 0 Juku Juku H pärisnimi 1 tuli tulema V tegusõna 2 kooli kool S nimisõna 3 liiga liiga D määrsõna 4 hilja hilja D määrsõna 5 . . Z lausemärk >>> t.get.word_texts.lemmas.postags.postag_descriptions.as_dict {'postag_descriptions': ['pärisnimi', 'tegusõna', 'nimisõna', 'määrsõna', 'määrs õna', 'lausemärk'], 'postags': ['H', 'V', 'S', 'D', 'D', 'Z'], 'lemmas': ['Juku' , 'tulema', 'kool', 'liiga', 'hilja', '.'], 'word_texts': ['Juku', 'tuli', 'kool i', 'liiga', 'hilja', '.']} >>> t.postags ['H', 'V', 'S', 'D', 'D', 'Z'] >>> from collections import Counter >>> Counter(t.postags) Counter({'D': 2, 'H': 1, 'Z': 1, 'V': 1, 'S': 1}) >>> Text(open("uudis.txt").read()).postags ['S', 'V', 'S', 'S', 'V', 'H', 'S', 'D', 'A|V', 'A', 'H', 'S', 'Z', 'A|V', 'S', 'V', 'H', 'A', 'S', 'Z', 'S', 'H', 'A|V', 'S', 'V', 'N', 'S', 'J', 'V', 'S', 'D', 'H', 'D', 'A', 'S', 'S', 'S', 'Z', 'H', 'S', 'S', 'H', 'H', 'V', 'Z', 'J', 'S', 'V', 'D', 'A', 'S', 'S', 'C', 'S', 'Z', 'D', 'A|V', 'S', 'V', 'S', 'A', 'S', 'S', 'K', 'Z', 'Z', 'S', 'V', 'P', 'D', 'J', 'P', 'V', 'D', 'D', 'S', 'S', 'K', 'Z', 'V', 'P', 'Z', 'S', 'V', 'N', 'S', 'P', 'A', 'S', 'A|V', 'S', 'A', 'S', 'Z', 'S', 'S', 'S', 'Z', 'S', 'Z', 'S', 'J', 'S', 'J', 'D', 'D', 'S', 'S', 'J', 'S', 'A|V', 'S', 'A', 'S', 'Z', 'S', 'S', 'A', 'S', 'V', 'S', 'A|V', 'S', 'Z', 'P', 'S', 'K', 'S', 'A|V', 'S', 'J', 'S', 'S', 'Z', 'Z', 'S', 'V', 'S', 'D', 'N', 'A', 'S', 'Z', 'J', 'S', 'S', 'S', 'V', 'D', 'D', 'H', 'H', 'S', 'J', 'S', 'S', 'V', 'D', 'D', 'S', 'Z', 'H', 'V', 'S', 'D', 'A', 'S', 'J', 'A', 'S', 'V', 'S', 'Z', 'S', 'J', 'P', 'K', 'Z', 'V', 'P', 'J', 'V', 'Z', 'J', 'A|V', 'S', 'V', 'A', 'S', 'Z', 'D|J', 'A', 'V', 'P', 'A|V', 'S', 'Z', 'D', 'D', 'A', 'S', 'J', 'A|V', 'S', 'S', 'Z', 'Z', 'P', 'V', 'S', 'V', 'S', 'D', 'C', 'S', 'J', 'V', 'P', 'S', 'Z', 'V', 'S', 'Z'] >>> Counter(Text(open("uudis.txt").read()).postags) Counter({'S': 79, 'Z': 27, 'V': 26, 'D': 19, 'A': 15, 'J': 15, 'H': 11, 'A|V': 11, 'P': 10, 'K': 4, 'N': 3, 'C': 2, 'D|J': 1}) >>> len(Text(open("uudis.txt").read()).postags) 223 >>> Sosakaal = 79 / (223 - 27) >>> Sosakaal 0.4030612244897959 #sonaliigid.py: from estnltk import Text import pandas as pd andmed = Text(open("uudis.txt").read()).get.postags.as_dataframe print(len(andmed)) >>> exit() kais@praktika1 ~/public_html/DHtehnoloogiad $ python3.5 sonaliigid.py 223 #sonaliigid.py: from estnltk import Text import pandas as pd andmed = Text(open("uudis.txt").read()).get.postags.as_dataframe print(andmed.groupby("postags").postags.count()) print(len(andmed)) kais@praktika1 ~/public_html/DHtehnoloogiad $ python3.5 sonaliigid.py postags A 15 A|V 11 C 2 D 19 D|J 1 H 11 J 15 K 4 N 3 P 10 S 79 V 26 Z 27 Name: postags, dtype: int64 223 #sonaliigid.py from estnltk import Text import pandas as pd andmed = Text(open("uudis.txt").read()).get.postags.as_dataframe loendurid = andmed.groupby("postags").postags.count() print(str(loendurid["S"]+ " nimisõna")) print(str(loendurid["S"]/len(andmed)) + " kõigist üksustest") print(str(loendurid["S"]/(len(andmed)-loendurid["Z"])) + " sõnadest on nimisõnad") kais@praktika1 ~/public_html/DHtehnoloogiad $ python3.5 sonaliigid.py File "sonaliigid.py", line 6 SyntaxError: Non-UTF-8 code starting with '\xf5' in file sonaliigid.py on line 6, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details >>> from estnltk import Text >>> import urllib.request >>> urllib.request.urlopen("http://www.tlu.ee/~jaagup/andmed/keel/kunglarahvas.txt").read().decode("utf8") 'Kui Kungla rahvas kuldsel aal\r\nkord istus maha sööma,\r\nsiis Vanemuine murumaal\r\nläks kandle lugu lööma.\r\n\r\nLäks aga metsa mängima,\r\nläks aga laande lauluga.\r\n\r\nSealt saivad lind ja lehepuu\r\nja loomad laululugu;\r\nsiis laulis mets ja mere suu\r\nja Eesti rahva sugu.\r\n\r\nSiis kõlas kaunis lauluviis\r\nja pärjad pandi pähe.\r\nJa murueide tütreid siis\r\nsai Eesti rahvas näha.\r\n\r\nMa laulan mättal, mäe peal\r\nja õhtu hilja õues\r\nja Vanemuise kandle hääl,\r\nsee põksub minu põues.\r\n' >>> Text(urllib.request.urlopen("http://www.tlu.ee/~jaagup/andmed/keel/kunglarahvas.txt").read().decode("utf8")).postags ['D|J', 'H', 'S', 'A', 'S', 'D', 'V', 'D', 'V', 'Z', 'J', 'H', 'S', 'V', 'S', 'S', 'V', 'Z', 'V', 'J', 'S', 'V', 'Z', 'V', 'J', 'S', 'S', 'Z', 'D', 'S', 'S', 'J', 'S', 'J', 'S', 'S', 'Z', 'D', 'V', 'S', 'J', 'S', 'S', 'J', 'H', 'S', 'S', 'Z', 'D', 'V', 'A', 'S', 'J', 'S', 'V', 'S', 'Z', 'J', 'S', 'S', 'D', 'V', 'H', 'S', 'V', 'Z', 'P', 'V', 'S', 'Z', 'S', 'K', 'J', 'S', 'D', 'S', 'J', 'H', 'S', 'S', 'Z', 'P', 'V', 'P', 'S', 'Z'] >>> kungla = Text(urllib.request.urlopen("http://www.tlu.ee/~jaagup/andmed/keel/kunglarahvas.txt").read().decode("utf8")).get.postags.as_dataframe.groupby("postags").postags.count().to_frame() >>> kungla postags postags A 2 D 7 D|J 1 H 5 J 11 K 1 P 3 S 31 V 14 Z 11 >>> import pandas as pd >>> lyhendid = pd.read_csv("http://www.tlu.ee/~jaagup/andmed/keel/sonaliikide_lyhendid.txt") >>> lyhendid liigilyhend liigikirjeldus 0 A omadussõna algvõrre 1 C omadussõna keskvõrre 2 D määrsõna 3 G käändumatu omadussõna 4 H pärisnimi 5 I hüüdsõna 6 J sidesõna 7 K kaassõna 8 N põhiarvsõna 9 O järgarvsõna 10 P asesõna 11 S nimisõna 12 U omadussõna ülivõrre 13 V tegusõna 14 X verbi juurde kuuluv sõna 15 Y lühend 16 Z lausemärk >>> kungla.head() postags postags A 2 D 7 D|J 1 H 5 J 11 >>> kungla["sonaliik"]=kungla.index >>> kungla.head() postags sonaliik postags A 2 A D 7 D D|J 1 D|J H 5 H J 11 J >>> kungla=kungla.rename(columns={"postags":"kogus"}) >>> kungla.head() kogus sonaliik postags A 2 A D 7 D D|J 1 D|J H 5 H J 11 J