python textblob 和文本分类

python textblob and text classification

我正在尝试使用 python 和 textblob 构建一个文本分类模型,该脚本正在 运行 我的服务器上运行,未来的想法是用户将能够提交他们的文本,它将被分类。 我正在从 csv 加载训练集:

# -*- coding: utf-8 -*-
import sys
import codecs
sys.stdout = open('yyyyyyyyy.txt',"w");
from nltk.tokenize import word_tokenize
from textblob.classifiers import NaiveBayesClassifier
with open('file.csv', 'r', encoding='latin-1') as fp:
    cl = NaiveBayesClassifier(fp, format="csv")  

print(cl.classify("some text"))

csv 大约有 500 行(字符串在 10 到 100 个字符之间),而 NaiveBayesclassifier 需要大约 2 分钟的时间进行训练,然后才能对我的文本进行分类(不确定需要这么多时间是否正常,可能是我的服务器只有 512mb 内存很慢)。

csv 行示例:

"Oggi alla Camera con la Fondazione Italia-Usa abbiamo consegnato a 140 studenti laureati con 110 e 110 lode i diplomi del Master in Marketing Comunicazione e Made in Italy.",FI-PDL

我不清楚的是,我无法在 textblob 文档中找到答案,是否有办法 'save' 我训练有素的分类器(这样可以节省很多时间),因为现在每次i 运行 它将再次训练分类器的脚本。 我是文本分类和机器学习的新手,所以如果这是一个愚蠢的问题,我深表歉意。

提前致谢。

好的,发现 pickle 模块正是我所需要的:)

培训:

# -*- coding: utf-8 -*-
import pickle
from nltk.tokenize import word_tokenize
from textblob.classifiers import NaiveBayesClassifier
with open('file.csv', 'r', encoding='latin-1') as fp:
    cl = NaiveBayesClassifier(fp, format="csv")  

object = cl
file = open('classifier.pickle','wb') 
pickle.dump(object,file)

正在提取:

import pickle
sys.stdout = open('demo.txt',"w");
from nltk.tokenize import word_tokenize
from textblob.classifiers import NaiveBayesClassifier
cl = pickle.load( open( "classifier.pickle", "rb" ) )
print(cl.classify("text to classify"))