Use stopwords

This commit is contained in:
Jakub Kolasiński 2021-04-13 20:28:41 +02:00
parent 54ef4f18bf
commit 60b2708888
3 changed files with 459 additions and 90 deletions

View File

@ -1,27 +1,46 @@
from gensim.models.doc2vec import Doc2Vec, TaggedDocument from gensim.models.doc2vec import Doc2Vec, TaggedDocument
from nltk.cluster import KMeansClusterer
from sklearn.cluster import KMeans from sklearn.cluster import KMeans
from collections import Counter
import re
sentences = [] sentences = []
path = 'dev-0/' path = 'dev-0/'
with open(path + 'in.tsv') as f: with open(path + 'in.tsv') as f:
sentences = [line.rstrip() for line in f] sentences = [line.rstrip() for line in f]
clusters_no = len(sentences) clusters_no = 10
stopwords = []
with open('stopwords') as f:
stopwords = [line.rstrip() for line in f]
splited = [] splited = []
for sentence in sentences: for sentence in sentences:
splited.append(sentence.split(' ')) for w in stopwords:
documents = [TaggedDocument(doc, [i]) for i, doc in enumerate(sentences)] pattern = r'\b' + w + r'\b'
model = Doc2Vec(documents, min_count=1) sentence = re.sub(pattern, '', sentence)
spl = sentence.split(' ')
spl = list(filter(lambda x: x != '', spl))
spl = [x.lower() for x in spl]
splited.append(spl)
documents = [TaggedDocument(doc, [i]) for i, doc in enumerate(splited)]
model = Doc2Vec(documents, min_count=0, alpha=0.025, epochs=20)
# for epoch in range(10):
# print('Training epoch %s', epoch)
# model.train()
# model.alpha -= 0.002
# model.min_alpha = model.alpha
X = model.dv.vectors X = model.dv.vectors
kmeans = KMeans(n_clusters=clusters_no).fit(X) kmeans = KMeans(n_clusters=clusters_no, max_iter=1000).fit(X)
labels = kmeans.labels_ labels = kmeans.labels_
centroids = kmeans.cluster_centers_ centroids = kmeans.cluster_centers_
print("Cluster id labels for inputted data")
print(labels) print(labels)
ctr = Counter(labels)
print(ctr.values())
with open(path + 'out.tsv', 'w') as file: with open(path + 'out.tsv', 'w') as file:
for label in labels: for label in labels:
file.write("%i\n" % label) file.write("%i\n" % label)

View File

@ -1,87 +1,87 @@
44 9
51 2
54 8
65 5
33
4
57
17
39
68
21
22
29
0 0
71 2
19 2
40 6
80 1
20
38
72
36
52
66
5 5
2 2
47
13
10
48
30
35
69
12
56
16
14
76
11
84
61
75
74
67
73
3
86
15
27
7
28
41
60
77
79
45
55
50
83
85
31
46
70
37
1
24
58
78
53
43
64
62
63
42
23
26
25
32
59
9
82
18
49
8 8
0
8
8
8
8
8
2
0
8
8
2
2
2
4
9
2
7
8
9
7
2
5
8
7
2
8
9
8
7
5
8
2
7
2
8
0
1
2
0
5
7
8
7
7
7
6 6
81 2
34 8
7
2
2
2
7
8
7
8
8
2
8
2
0
0
9
3
6
7
2
6
5
4
5
7
4
5
9

1 44 9
2 51 2
3 54 8
4 65 5
33
4
57
17
39
68
21
22
29
5 0 0
6 71 2
7 19 2
8 40 6
9 80 1
20
38
72
36
52
66
10 5 5
11 2 2
47
13
10
48
30
35
69
12
56
16
14
76
11
84
61
75
74
67
73
3
86
15
27
7
28
41
60
77
79
45
55
50
83
85
31
46
70
37
1
24
58
78
53
43
64
62
63
42
23
26
25
32
59
9
82
18
49
12 8 8
13 0
14 8
15 8
16 8
17 8
18 8
19 2
20 0
21 8
22 8
23 2
24 2
25 2
26 4
27 9
28 2
29 7
30 8
31 9
32 7
33 2
34 5
35 8
36 7
37 2
38 8
39 9
40 8
41 7
42 5
43 8
44 2
45 7
46 2
47 8
48 0
49 1
50 2
51 0
52 5
53 7
54 8
55 7
56 7
57 7
58 6 6
59 81 2
60 34 8
61 7
62 2
63 2
64 2
65 7
66 8
67 7
68 8
69 8
70 2
71 8
72 2
73 0
74 0
75 9
76 3
77 6
78 7
79 2
80 6
81 5
82 4
83 5
84 7
85 4
86 5
87 9

350
stopwords Normal file
View File

@ -0,0 +1,350 @@
a
aby
ach
acz
aczkolwiek
aj
albo
ale
alez
ależ
ani
az
bardziej
bardzo
beda
bedzie
bez
deda
będą
bede
będę
będzie
bo
bowiem
by
byc
być
byl
byla
byli
bylo
byly
był
była
było
były
bynajmniej
cala
cali
caly
cała
cały
ci
cie
ciebie
cię
co
cokolwiek
cos
coś
czasami
czasem
czemu
czy
czyli
daleko
dla
dlaczego
dlatego
do
dobrze
dokad
dokąd
dosc
dość
duzo
dużo
dwa
dwaj
dwie
dwoje
dzis
dzisiaj
dziś
gdy
gdyby
gdyz
gdyż
gdzie
gdziekolwiek
gdzies
gdzieś
go
i
ich
ile
im
inna
inne
inny
innych
iz
ja
jak
jakas
jakaś
jakby
jaki
jakichs
jakichś
jakie
jakis
jakiś
jakiz
jakiż
jakkolwiek
jako
jakos
jakoś
je
jeden
jedna
jednak
jednakze
jednakże
jedno
jego
jej
jemu
jesli
jest
jestem
jeszcze
jeśli
jezeli
jeżeli
juz
już
kazdy
każdy
kiedy
kilka
kims
kimś
kto
ktokolwiek
ktora
ktore
ktorego
ktorej
ktory
ktorych
ktorym
ktorzy
ktos
ktoś
która
które
którego
której
który
których
którym
którzy
ku
lat
lecz
lub
ma
mają
mało
mam
mi
miedzy
między
mimo
mna
mną
mnie
moga
mogą
moi
moim
moj
moja
moje
moze
mozliwe
mozna
może
możliwe
można
mój
mu
musi
my
na
nad
nam
nami
nas
nasi
nasz
nasza
nasze
naszego
naszych
natomiast
natychmiast
nawet
nia
nią
nic
nich
nie
niech
niego
niej
niemu
nigdy
nim
nimi
niz
niż
no
o
obok
od
około
on
ona
one
oni
ono
oraz
oto
owszem
pan
pana
pani
po
pod
podczas
pomimo
ponad
poniewaz
ponieważ
powinien
powinna
powinni
powinno
poza
prawie
przeciez
przecież
przed
przede
przedtem
przez
przy
roku
rowniez
również
sam
sama
sie
się
skad
skąd
soba
sobą
sobie
sposob
sposób
swoje
ta
tak
taka
taki
takie
takze
także
tam
te
tego
tej
ten
teraz
też
to
toba
tobą
tobie
totez
toteż
totobą
trzeba
tu
tutaj
twoi
twoim
twoj
twoja
twoje
twój
twym
ty
tych
tylko
tym
u
w
wam
wami
was
wasz
wasza
wasze
we
według
wiele
wielu
więc
więcej
wlasnie
właśnie
wszyscy
wszystkich
wszystkie
wszystkim
wszystko
wtedy
wy
z
za
zaden
zadna
zadne
zadnych
zapewne
zawsze
ze
zeby
zeznowu
znow
znowu
znów
zostal
został
żaden
żadna
żadne
żadnych
że
żeby