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