Как сократить время классификации темы в наивном байесовском классификаторе textblob

Я использую pickle для сохранения классифицированной модели с помощью теоремы Байеса, я сохранил файл размером 2,1 ГБ после классификации с 5600 записями. но когда я загружаю этот файл, это занимает почти 2 минуты, но для классификации некоторого текста требуется 5,5 минут. Я использую следующий код для его загрузки и классификации.

classifierPickle = pickle.load(open( "classifier.pickle", "rb" ) )
   classifierPickle.classify("want to go some beatifull work place"))

Первая строка для загрузки объекта pickle и вторая для классификации текста определяет, какая тема (категория) это. Я использую следующий код для сохранения модели.

file = open('C:/burberry_model/classifier.pickle','wb')
pickle.dump(object,file,-1)

Все, что я использую из textblob. Окружающая среда - это Windows, 28 ГБ ОЗУ, четыре основных процессора. Было бы очень полезно, если бы кто-нибудь мог решить эту проблему.


person Balaji    schedule 11.08.2016    source источник


Ответы (1)


Поскольку textblob построен поверх NLTK, это чистая реализация Python, которая значительно снижает его скорость. Во-вторых, поскольку размер вашего файла Pickle составляет 2,1 ГБ, он значительно расширяется и сохраняется непосредственно в оперативной памяти, что еще больше увеличивает время.

Кроме того, поскольку вы используете Windows, скорость Python относительно ниже. Если скорость является для вас главной задачей, то было бы полезно использовать селектор функций и конструктор векторов из textblob/NLTK и использовать классификатор scikit-learn NB, который имеет C-Bindings, поэтому я предполагаю, что это будет значительно быстрее.

person Ankit Vadehra    schedule 30.11.2016