
Google рдиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдШреЛрд╖рдгрд╛ рдХреА рдХрд┐ рдпрд╣ рдХреАрд╡рд░реНрдб рдЦреЛрдЬ рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд░реНрде рдЦреЛрдЬ рдкрд░ рдЖрдЧреЗ рдмрдврд╝ рд░рд╣рд╛ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ рдХрд┐ рджреБрдирд┐рдпрд╛ рдХреЗ рджрд┐рдЧреНрдЧрдЬреЛрдВ рдХреЗ рдмреАрдЪ рд╢рд╛рдВрдд рдЦреЛрдЬ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреИрд╕реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдЫреЛрдЯреЗ рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдореЗрдВ рдЦреЛрдЬ рдХрд╛рдлреА рдЕрд░реНрдердкреВрд░реНрдг рд╣реИред рдмреЗрд╢рдХ, рдЕрдзрд┐рдХ рдпрд╛ рдХрдо рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдЦреЛрдЬ рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рдЗрддрдирд╛ рд░рд╕реАрд▓рд╛ рдирд╣реАрдВ рд╣реИ, рдЖрдкрдХреЛ рд╢рдмреНрджреЛрдВ рдХреЛ рдмрд╣реБрдд рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреАред
рдореИрдВ рддреБрд░рдВрдд рдПрдХ рдЖрд░рдХреНрд╖рдг рдХрд░реВрдБрдЧрд╛: рдЬреЛ рдХреЛрдИ рднреА рдХреЗрд╡рд▓ рд╕рд┐рджреНрдзрд╛рдВрдд рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддрд╛ рд╣реИ, рдЙрд╕рдХреЗ рдмрд╛рдж
Habr├й рдкрд░ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛
рд▓реЗрдЦ рджреЗрдЦреЗрдВ, рдЬреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдпрд╣ рдЬрд╛рдирдиреЗ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИ, рдлрд┐рд░ рд╡рд╣
рдЕрдЬрдЧрд░ рдореЗрдВ рдЕрд░реНрде рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рдПрдХ
рдЕрдЪреНрдЫреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рджрд░реНрдЬрди рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реВрдЪреА рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рджреЗрдЦреЗрдВрдЧреЗ:
titles =[ " WikiLeaks", " , ", " 19 ", " Wikileaks ", " ", " Wikileaks", " ", " WikiLeaks, , ", " " ]
рджрд░рдЕрд╕рд▓ рдпрд╣ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рд╣реИред рдЕрдм рд╣рдореЗрдВ рддреАрди рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ:
1) рдпрджрд┐ рдкрд╛рда рд╕реЗ html рдФрд░ рдЕрдиреНрдп рдХрдЪрд░рд╛ рд╣реИ, рддреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо, рдЕрд╡рдзрд┐, рдХреЙрд▓реЛрди рдирд┐рдХрд╛рд▓реЗрдВред
2) рдХрдо рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдм рдХреБрдЫ рд▓рд╛рдУ рдФрд░ рдкрд░, рдкрд░, рдФрд░ рдЗрддрдиреЗ рдкрд░ рд╕рднреА рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВред
3) рд╢рдмреНрджреЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рдореЗрдВ рд▓рд╛рдПрдБ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╢рдмреНрдж рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╢рдмреНрдж рд╣реЛрдВрдЧреЗ рдЬреИрд╕реЗ рдХрд┐ рдкреНрд░реАрдорд┐рдпрдо, рдкреНрд░реАрдорд┐рдпрдо рдЗрддреНрдпрд╛рджрд┐, рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
4) рдпрджрд┐ рд╣рдо рдХреЗрд╡рд▓ рд╕рдорд╛рди рджрд╕реНрддрд╛рд╡реЗрдЬ рдвреВрдВрдврдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╢рдмреНрджреЛрдВ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ - рд╕рдорд╛рдирддрд╛рдУрдВ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП, рд╡реЗ рдмреЗрдХрд╛рд░ рд╣реИрдВ рдФрд░ рд╣рдЯрд╛рдП рдЬрд╛рдиреЗ рд╕реЗ рд╕реНрдореГрддрд┐ рдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдмрдЪрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗрдЧрд╛ред
рдЕрдм рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╣реА, рдЕрдЬрдЧрд░ рдЧрдгрд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред
5) рд╣рдо рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд╢рдмреНрдж рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдпрд╛ рдЙрдкрд╕реНрдерд┐рддрд┐ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреЗ рд╣реБрдП, рдХреНрд░рдорд╢рдГ рд╢реВрдиреНрдп рдФрд░ рд▓реЛрдЧреЛрдВ рдХреЗ рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
6) рд╣рдо рдЗрд╕ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдПрдХ рд╡рд┐рд▓рдХреНрд╖рдг рдЕрдкрдШрдЯрди рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣рдо рддреАрди рдЕрдиреНрдп рдореИрдЯреНрд░рд┐рдХреНрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдФрд░ рд╢рдмреНрджреЛрдВ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред
рдЕрдВрддрд┐рдо рдЪрд░рдг рдореЗрдВ, рдПрдХ рд╕рд░рд▓реАрдХреГрдд рд░реВрдк рдореЗрдВ, рд╣рдореЗрдВ рдмрд╕ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдФрд░ / рдпрд╛ рд╢рдмреНрджреЛрдВ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреА рддреБрд▓рдирд╛ рдХрд░рдиреА рд╣реЛрдЧреА: рдЬреЛ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рдмрд╕реЗ рдХрд░реАрдм рд╣реИрдВ рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рдкрд░рд┐рдгрд╛рдо рд╣реИрдВ, рдЬреЛ рджреВрд░ рд╣реИрдВ рд╡реЗ рдХрдо рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИрдВред
рд╣рдо рд╕рднреА
numpy
рдХрд╛ рдЙрдкрдпреЛрдЧ
numpy
рд╕рд╛рде рдХрд░реЗрдВрдЧреЗ
scipy
numpy
рд╣рдо
numpy
рдФрд░
numpy
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ
scipy
рд╣рдо
numpy
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╢рдмреНрджреЛрдВ рдХреЛ рдЙрдирдХреЗ рдореВрд▓ рд░реВрдк рдореЗрдВ рд▓рд╛рдПрдВрдЧреЗред рдЗрдВрд╕реНрдЯреЙрд▓ рд╣реЛ рд░рд╣рд╛ рд╣реИ ...
pip install numpy
pip install nltk
pip install scipy
рдпрджрд┐ рдЖрдк
scipy
рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп рдХрд┐рд╕реА рднреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВ (рдЗрд╕реЗ BLASS рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА) рддреЛ рдпрд╣ рд╕рдВрднрд╡рддрдГ рдорджрдж рдХрд░реЗрдЧрд╛ред
apt-get install gfortran libopenblas-dev liblapack-dev
рдХрдХреНрд╖рд╛ рдЖрд░рдВрднреАрдХрд░рдгред
class LSI(object): def __init__(self, stopwords, ignorechars, docs):
рд╢рдмреНрджреЛрдВ рдХреА рддреИрдпрд╛рд░реА, рд╢рдмреНрджрдХреЛрд╢ рдХреЛ рдлрд┐рд░ рд╕реЗ рднрд░рдирд╛, рдпрджрд┐ рд╢рдмреНрдж рд╢рдмреНрджрдХреЛрд╢ рдореЗрдВ рд╣реИ, рддреЛ рдЙрд╕рдХрд╛ рдирдВрдмрд░ рд▓реМрдЯрд╛рдПрдВ, рдкрд╣рд▓реЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╡рд░реНрдгреЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдХрд░реЗрдВ рдФрд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░реВрдк рдореЗрдВ рд▓рд╛рдПрдВ
def dic(self, word, add = False): if type(word) == unicode: word = word.encode('utf-8')
рдореВрд▓ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг
def build(self):
рд╢реЗрд╖ рдореЗрдЯреНрд░рд┐рд╕реЗрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг
def calc(self): """ U, S Vt - """ self.U, self.S, self.Vt = svd(self.A)
рдПрдХ рдореИрдЯреНрд░рд┐рдХреНрд╕ рдореЗрдВ рд╢рдмреНрджреЛрдВ рдХреЗ рд╡рдЬрди рдпрд╛ рдорд╣рддреНрд╡ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд░рдирд╛ред рд╣рдо рдЗрд╕рдХреА рдШрдЯрдирд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╢рдмреНрдж рдХреЗ рдорд╣рддреНрд╡ рдХреА рдЧрдгрдирд╛ рдХрд░рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╢рдмреНрдж "рдФрд░" рдЕрдХреНрд╕рд░ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕ рд╢рдмреНрдж рдХрд╛ рдХрдо рдорд╣рддреНрд╡ рд╣реЛрдЧрд╛, рдФрд░, рдХрд╣рддреЗ рд╣реИрдВ, "рдпреВрдПрд╕рдП" рд╢рдмреНрдж рдореЗрдВ рдХрд╛рдлреА рдХрдЯреМрддреА рд╣реЛрдЧреА рдФрд░, рддрджрдиреБрд╕рд╛рд░, рдмрд╣реБрдд рдорд╣рддреНрд╡ рд╣реЛрдЧрд╛ред рдорд╛рдирдХ рднрд╛рд╖рдг рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рджреБрд░реНрд▓рдн рд╢рдмреНрдж рдмрдиреЗ рд╣реБрдП рд╣реИрдВред
def TFIDF(self):
рд╕рдордиреНрд╡рдп рдЕрдХреНрд╖ рдкрд░ рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВ рдФрд░ рдЙрди рдкрд░ рдЦреЛрдЬ рдХрд░реЗрдВред
def find(self, word): self.prepare() idx = self.dic(word) if not idx: print ' ' return [] if not idx in self.keys: print ' stopwords' return [] idx = self.keys.index(idx) print 'word --- ', word, '=', self.dictionary[self.keys[idx]], '.\n'
рдкреВрд░рд╛ рдХреЛрдб class LSI(object): def __init__(self, stopwords, ignorechars, docs): self.wdict = {} self.dictionary = [] self.stopwords = stopwords if type(ignorechars) == unicode: ignorechars = ignorechars.encode('utf-8') self.ignorechars = ignorechars for doc in docs: self.add_doc(doc) def prepare(self): self.build() self.calc() def dic(self, word, add = False): if type(word) == unicode: word = word.encode('utf-8') word = word.lower().translate(None, self.ignorechars) word = word.decode('utf-8') word = stemmer.stem(word) if word in self.dictionary: return self.dictionary.index(word) else: if add: self.dictionary.append(word) return len(self.dictionary) - 1 else: return None def add_doc(self, doc): words = [self.dic(word, True) for word in doc.lower().split()] self.docs.append(words) for word in words: if word in self.stopwords: continue elif word in self.wdict: self.wdict[word].append(len(self.docs) - 1) else: self.wdict[word] = [len(self.docs) - 1] def build(self): self.keys = [k for k in self.wdict.keys() if len(self.wdict[k]) > 0] self.keys.sort() self.A = zeros([len(self.keys), len(self.docs)]) for i, k in enumerate(self.keys): for d in self.wdict[k]: self.A[i,d] += 1 def calc(self): self.U, self.S, self.Vt = svd(self.A) def TFIDF(self): wordsPerDoc = sum(self.A, axis=0) docsPerWord = sum(asarray(self.A > 0, 'i'), axis=1) rows, cols = self.A.shape for i in range(rows): for j in range(cols): self.A[i,j] = (self.A[i,j] / wordsPerDoc[j]) * log(float(cols) / docsPerWord[i]) def dump_src(self): self.prepare() print ' ' for i, row in enumerate(self.A): print self.dictionary[i], row def print_svd(self): self.prepare() print ' ' print self.S print ' 3 U ' for i, row in enumerate(self.U): print self.dictionary[self.keys[i]], row[0:3] print ' 3 Vt ' print -1*self.Vt[0:3, :] def find(self, word): self.prepare() idx = self.dic(word) if not idx: print ' ' return [] if not idx in self.keys: print ' stopwords' return [] idx = self.keys.index(idx) print 'word --- ', word, '=', self.dictionary[self.keys[idx]], '.\n'
рдпрд╣ рдКрдкрд░ рджрд┐рдП рдЧрдП рдХреЛрдб рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред
docs =[ " WikiLeaks", " , ", " 19 ", " Wikileaks ", " ", " Wikileaks", " ", " WikiLeaks, , ", " " ] ignorechars = ''',:'!''' word = "" lsa = LSI([], ignorechars, docs) lsa.build() lsa.dump_src() lsa.calc() lsa.print_svd() for res in lsa.find(word): print res[0], res[4], res[1], docs[res[0]]
lsa.dump_src ()
рдмреНрд░рд┐рдЯрд┐рд╢ [1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
рдкреБрд▓рд┐рд╕рдХрд░реНрдореА [1. 0. 0. 0. 0. 0. 0. 0. 0.]
рдЬрд╛рдирддрд╛ рд╣реИ [1. 0. 0. 0. 0. 0. 0. 0. 0.]
...
рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдХреЗ рдХреЙрд▓рдо рдореЗрдВ, рдкрдВрдХреНрддрд┐рдпреЛрдВ рдореЗрдВ, рд╢рдмреНрджреЛрдВ рдореЗрдВред
lsa.print_svd ()
рдпрд╣рд╛рдВ U рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреЗ рдкрд╣рд▓реЗ 3 рдХреЙрд▓рдо рд╣реИрдВ
рдмреНрд░рд┐рдЯрд┐рд╢ [-0.06333698 -0.08969849 0.03023127]
рдкреБрд▓рд┐рд╕ рдЕрдзрд┐рдХрд╛рд░реА [-0.14969793 -0.20853416 0.07106177]
рдЬрд╛рдирддрд╛ рд╣реИ [-0.06333698 -0.08969849 0.03023127]
...
рдпрд╣рд╛рдБ Vt рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдкрд╣рд▓реА 3 рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╣реИрдВ
[[0.25550481 0.47069418 0.27633104 0.39579252 0.21466192 0.26635401 0.32757769 0.3483847 0.3666749]
[0.34469126 -0.18334417 -0.36995197 0.37444485 -0.29101203 0.27916372 -0.26791709 0.45665895 -0.35715836]
[-0.10950444 0.64280654 -0.39672464 -0.1011325 -0.36012511 -0.01213328 0.38644373 -0.14789727 -0.32579232]
res рдХреЗ рд▓рд┐рдП lsa.find (рд╢рдмреНрдж):
рдкреНрд░рд┐рдВрдЯ рд░реЗрд╕ [0], рд░реЗрд╕ [4], рд░реЗрд╕ [1], рдбреЙрдХреНрд╕ [рд░реЗрд╕ [0]]
рд╢рдмреНрдж 9 (рд╢рдмреНрдж рдХреЛрдб рдореЗрдВ рд╢рдмреНрдж) -0.17 (рдкрд╣рд▓рд╛ рд╢рдмреНрдж рд╕рдордиреНрд╡рдп) 0.46 (рджреВрд╕рд░рд╛ рд╕рдордиреНрд╡рдп) рд╕рдВрдпреБрдХреНрдд рд░рд╛рдЬреНрдп рдЕрдореЗрд░рд┐рдХрд╛ (рд╢рдмреНрдж рд╣реА)
рд╕реВрдЪреА рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕рдВрдЦреНрдпрд╛ | рджреВрд░реА | рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЛ рдХреЛрдб рдкрд░ рд░рдЦрд╛ рдЧрдпрд╛ | рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╣реА
6 0.127328977215 [35, 36, 9, 37, 38, 39, 23, 40, 12, 41] рдирд╛рдЯреЛ рдФрд░ рдЕрдореЗрд░рд┐рдХрд╛ рдиреЗ рд░реВрд╕ рдХреЗ рдЦрд┐рд▓рд╛рдл рдмрд╛рд▓реНрдЯрд┐рдХ рджреЗрд╢реЛрдВ рдХреА рд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдпреЛрдЬрдирд╛рдПрдВ рд╡рд┐рдХрд╕рд┐рдд рдХреА рд╣реИрдВ
1 0.182108022464 [7, 8, 9, 9, 10, 11, 12, 13, 14, 15] рдЕрдореЗрд░рд┐рдХреА рдЕрджрд╛рд▓рдд рдореЗрдВ, рд╕реНрдкреИрдо рднреЗрдЬрдиреЗ рд╡рд╛рд▓реЗ рд░реВрд╕реА рдХреЗ рдЦрд┐рд▓рд╛рдл рдореБрдХрджрдорд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ
5 0.649492914495 [31, 8, 32, 33, 34, 5, 6] рд╕реНрд╡реАрдбрд┐рд╢ рдЕрджрд╛рд▓рдд рдиреЗ рд╡рд┐рдХрд┐рд▓рд┐рдХреНрд╕ рдХреЗ рд╕рдВрд╕реНрдерд╛рдкрдХ рдХреА рдЕрдкреАрд▓ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛
0 0.765573367056 [0, 1, 2, 3, 4, 5, 6] рдмреНрд░рд┐рдЯрд┐рд╢ рдкреБрд▓рд┐рд╕ рд╡рд┐рдХреАрд▓реАрдХреНрд╕ рдХреЗ рд╕рдВрд╕реНрдерд╛рдкрдХ рдХреЗ рдард┐рдХрд╛рдиреЗ рдХреЛ рдЬрд╛рдирддреА рд╣реИ
3 0.779637110377 [7, 24, 25, 5, 26, 6, 27, 28] рд╡рд┐рдХреАрд▓реАрдХреНрд╕ рдХреЗ рд╕рдВрд╕реНрдерд╛рдкрдХ рдЬреВрд▓рд┐рдпрди рдЕрд╕рд╛рдВрдЬреЗ рдХреЛ рдмреНрд░рд┐рдЯреЗрди рдореЗрдВ рдЧрд┐рд░рдлреНрддрд╛рд░
8 0.810477163078 [7, 45, 36, 46, 47, 48, 17, 18, 19] рдиреЛрдмрд▓ рдкреБрд░рд╕реНрдХрд╛рд░ рдЖрдЬ рд╕реНрдЯреЙрдХрд╣реЛрдо рдФрд░ рдУрд╕реНрд▓реЛ рдореЗрдВ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛
4 0.831319718049 [29, 30, 16, 17, 18, 19] рдпреВрдХреНрд░реЗрди рдиреЗ рдиреЛрдмреЗрд▓ рдкреБрд░рд╕реНрдХрд╛рд░ рд╕рдорд╛рд░реЛрд╣ рдХреА рдЕрдирджреЗрдЦреА рдХреА
7 0.870710388156 [1, 24, 42, 5, 6, 43, 44, 25] рдмреНрд░рд┐рдЯрд┐рд╢ рдкреБрд▓рд┐рд╕ рдиреЗ рд╡рд┐рдХреАрд▓реАрдХреНрд╕ рдХрд╛ рд╕рдВрд╕реНрдерд╛рдкрдХ рдкрд╛рдпрд╛, рд▓реЗрдХрд┐рди рдЧрд┐рд░рдлреНрддрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛
2 0.88243190531 [16, 17, 18, 19, 20, 21, 22, 23] 19 рджреЗрд╢ рдиреЛрдмреЗрд▓ рд╢рд╛рдВрддрд┐ рдкреБрд░рд╕реНрдХрд╛рд░ рд╕рдорд╛рд░реЛрд╣ рдХрд╛ рдмрд╣рд┐рд╖реНрдХрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ
рдпрд╣ рд╕рдм, рд╡рд┐рд╖рдп рдХрд╛рдлреА рд╡реНрдпрд╛рдкрдХ рд╣реИ, рдореИрдВрдиреЗ рдпрдерд╛рд╕рдВрднрд╡ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред
рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ
-
рдЕрд╡реНрдпрдХреНрдд-рдЕрд░реНрде рдЦреЛрдЬ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рд┐рджреНрдзрд╛рдВрдд (rus)
-
рдЧреЗрдВрд╕рд┐рдо -
рд▓рд╛рдпрдерди рдПрд▓рдПрд╕рдП рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп-
nltk - рд╢рдмреНрджреЛрдВ рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп-
рдорд╢реАрди рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХрд┐рдХрд┐рдЯ-рд▓рд░реНрди рд▓рд╛рдЗрдмреНрд░реЗрд░реА