-
Notifications
You must be signed in to change notification settings - Fork 0
/
Ngrama.py
51 lines (38 loc) · 1.24 KB
/
Ngrama.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
"""
Universidade Federal de Pernambuco (UFPE) (http://www.ufpe.com.br)
Centro de Informatica (CIn) (http://www.cin.ufpe.br)
IF969 - Algoritmos e Estrutura de Dados
Autor: José Sheldon Brito Fekete (jsbf)
Email: [email protected]
Data: 2018-10-10
Copyright(c) 2018 José Sheldon Brito Fekete
"""
import numpy as np
class Ngrama(object):
'''
A classe Ngrama representa uma subsequência de N palavras de um certo texto.
'''
def __init__(self,*palavras):
self.__ngrama = np.array(palavras)
self.__tamanho = self.__ngrama.size
def __str__(self):
'''
Quando printando ou transformado em string retorna a sua sequencia de palavras.
'''
return str(tuple(self.__ngrama))
def __repr__(self):
return 'Ngrama'+str(tuple((self.__ngrama)))
def __len__(self):
'''
Retorna a quantidade de palavras do Ngrama.
'''
return self.__tamanho
def __eq__(self,outro):
'''
Determina como irá se comportar o "==" quando usado no objeto.
Se comportará comparando o str dos dois elementos comparados.
'''
return str(self) == str(outro)
@property
def ngrama(self):
return self.__ngrama