Code Monkey home page Code Monkey logo

tokenizator's People

Contributors

alinazakharova1997 avatar

Watchers

 avatar  avatar

tokenizator's Issues

Вопрос: Почему лучше множество?

# почему лучше сделать множество? как тогда обратиться к элементу и напечатать его, чтобы проверить, что все хорошо?

Ответ:
Множество лучше, потому что дальше делаются проверки с использованием оператора in, за которым в случае массива стоит полный перебор элементов массива и сравнение их с искомым, а в случае множества -- одна операция проверки наличия ключа в хеш-таблице.

А зачем Вам обращаться к элементу массива?

С какой целью экземляр токенизатора записывается в качестве атрибута в класс окна?

cls.tokenizator = Tokenizator()

Этот экземпляр сейчас создаётся при каждом вызове get_window(). Смысл записывать его не в обычную переменную, а в класс окна, при такой реализации непонятен. В класс окна его, может быть, и имеет смысл записать, но тогда не в методе get_window(), а непосредственно в определении класса окна:

class Window(object):
    ...
    tokenizer = Tokenizer()

и далее обращаться к нему как cls.tokenizer, не пересоздавая.

Название класса во множественном числе сбивает с толку

class Context_Windows(object):

В python обычно классы именуются в единственном числе, за исключением классов некоторых коллекций (множеств, массивов, словарей), экземпляры которых являются чем-то, что можно назвать существительным во множественном числе, ср.:

class Cat(Animal):
     def meow(self):
         print("Meow!")


 class Cats(list):
     def meow(self):
         for cat in self:
             cat.meow()

некорректно вычисляется позиция начала окна

win_start = token.position+ len(token.s)

token.position + len(token.s) -- это действительно позиция начала окна, но в перевёрнутой подстроке, которая была построена ранее (string[position.end::-1]), а не в строке string, в которой будет выделяться цитата. Эта перевёрнутая подстрока начинается в строке string в позиции position.end и заканчивается в начале string. Соответственно, чтобы перевести любую позицию p в этой перевёрнутой подстроке в позицию в строке string, необходимо вычесть p из position.end. Соответственно, позиция начала окна в строке string выглядит как position.end - (token.position + len(token.s))

Здесь открывается база данных, при этом перед этим не производится действий, которые бы позволили индексатору её закрыть: экземпляр индексатора не удаляется / нет вызова какого-либо метода у индексатора, который бы закрыл или синхронизировал базу

base_dict = dict(shelve.open('database'))

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.