`
strayly
  • 浏览: 97460 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

sklearn学习--读取mysql数据源进行训练样本和预测文本分类

 
阅读更多
# coding=utf-8
import re
import pandas as pd
import string
import MySQLdb
import jieba

from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.cross_validation import train_test_split
from sklearn.metrics import confusion_matrix
from sklearn import metrics
from sklearn.metrics import roc_curve, auc
from sklearn.svm import LinearSVC

#jieba分词 
def jieba_tokenizer(x): return jieba.cut(x,cut_all=True)
def partition(x): return x
def filter_html(s):
    d = re.compile(r'<[^>]+>',re.S)
    return d.sub('',s)

#链接mysql数据库
conn=MySQLdb.connect(host='localhost',user='root',passwd='',db='article',port=3306,charset="utf8")
cursor =conn.cursor()
cursor.execute("SET NAMES utf8")

#训练数据样本
data_ret = pd.DataFrame()
for i in range(0,5):
    sql = "SELECT a.id,a.title,a.classid,b.artcontent FROM article a,article_txt b WHERE a.id=b.aid AND b.artcontent IS NOT NULL AND a.id>100 ORDER BY a.id ASC LIMIT "+str(i*1000)+",1000"
    #print sql
    ret = pd.read_sql_query(sql, conn)   
    data_ret = data_ret.append(ret)

Score = data_ret['classid']
data_ret['artcontent'] = [filter_html(msg) for msg in data_ret['artcontent']] 

X_train = data_ret['artcontent']
Y_train = Score.map(partition)

corpus = []
for txt in X_train:
    corpus.append(' '.join(jieba_tokenizer(txt)))
count_vect = CountVectorizer()
X_train_counts = count_vect.fit_transform(corpus)     
tfidf_transformer = TfidfTransformer()
X_train_tfidf = tfidf_transformer.fit_transform(X_train_counts)
clf = LinearSVC().fit(X_train_tfidf, Y_train)


#可以把clf持久化

#测试数据 预测分类
test_set = []
test_txt_data = pd.read_sql_query("SELECT a.id,a.title,a.classid,b.artcontent FROM article a,article_txt b WHERE a.id=b.aid AND b.artcontent IS NOT NULL AND a.id<50 ORDER BY a.id ASC", conn)
X_test = [filter_html(msg) for msg in test_txt_data['artcontent']] 

for text in X_test:
    text=' '.join(jieba_tokenizer(text))
    test_set.append(text)

        
X_new_counts = count_vect.transform(test_set)
X_test_tfidf = tfidf_transformer.transform(X_new_counts)

result = dict()
result = clf.predict(X_test_tfidf)

for i in range(0, len(result)):
    print "ID:"+str(test_txt_data['id'][i])+" -> classid:"+str(result[i])


cursor.close()
conn.close()
分享到:
评论

相关推荐

    基于Pytorch的GBDT+word2vec的长文本分类识别项目源码+项目说明.zip

    * 基于 mysql 数据库的读写,直接读取数据库源数据,进行逐条文本预测,并实时存储到结果表。能基本保证预测效率和数据同步性。 * 实现基于 python multiprocessing 的多进程并行处理,提升 CPU 利用率 3. textCNN...

    Mysql的表对象Sql语句转换单表,转换成Oracle创建表sql

    1. **数据迁移需求分析**:在开始转换之前,了解源MySQL表的结构和数据类型至关重要。这包括表的名称、列名、数据类型、主键、外键、索引、约束等。 2. **SQL语法差异**:MySQL与Oracle之间的主要语法差异包括: -...

    工业大数据分析-文件输入与输出教学讲义.docx

    首先,我们将学习如何创建 MySQL 数据源,并将其连接到大数据平台中。然后,我们将学习如何使用文件输入节点从本地文件中读取数据,并将其上传到大数据平台中。最后,我们将学习如何将处理后的数据输出到外部文件中...

    datax的json范例

    DataX是阿里巴巴开源的一款强大的数据同步工具,它能够高效、稳定地进行大数据迁移工作,支持多种数据源之间的数据同步。这个“datax的json范例...在学习过程中,可以结合实际的数据源和目标数据源进行实践,加深理解。

    办公自动化管理

    在论文中,作者可能详细阐述了如何使用ADO连接到不同的数据源,以及在办公自动化环境中如何进行数据交互和管理。 数据源在OAM系统中是不可或缺的,它存储着企业的各种办公信息,如文档、任务分配、日程安排等。在...

    GoldenGate Oracle同步到Mysql配置手册

    金桥 Oracle 到 MySQL 配置的图解显示了 Oracle 数据源被复制到 MySQL 目标数据库的过程。其中涉及的组件包括源数据库(Oracle Source)、管理者服务器(Manager)、网络(Network)、日志提取(Extract)、收集器...

    测试通过的dtree实例

    4. **数据库交互**:实例中提到的“读取数据库代码”表明,数据可能存储在数据库中,如MySQL、SQLite等。Python的`sqlite3`或`pyodbc`等库可用于连接和操作数据库,获取数据并加载到决策树模型进行训练。 5. **参数...

    spring boot jsp mvc jpa hibernate mysql 示例 sample

    在 Spring Boot 应用中,我们可以通过配置 `application.properties` 文件,设置数据源连接信息,使应用能够连接到 MySQL 数据库。Spring Boot 提供了对多种数据库的开箱即用支持,包括 MySQL。 6. **整合流程**:...

    Python实现商场商品推荐系统,基于主动学习推荐系统【优质毕业设计、课程设计项目】

    1. 数据导入与清洗:读取数据库中的用户行为数据,进行缺失值处理和数据格式转换。 2. 特征工程:根据业务理解提取特征,如用户购买历史、浏览行为等。 3. 模型训练:利用主动学习策略训练推荐模型。 4. 用户反馈:...

    kettle4.3 用于抽取数据

    1. **数据抽取**:Kettle支持多种数据源,包括关系型数据库(如MySQL、Oracle)、文本文件、Excel、XML、Web服务等。通过其直观的图形化界面,用户可以设计和执行数据抽取作业,无需编写复杂的SQL或编程代码。 2. *...

    Excel数据导入数据库中

    在我们的场景中,Excel数据将被看作是待导入数据库的数据源。 接下来,我们关注Delphi的角色。Delphi是一款集成开发环境(IDE),支持Object Pascal语言,常用于构建桌面应用程序。它提供了丰富的库和组件,使得与...

    数据集成工具.zip

    数据集成工具是IT行业中至关重要的一个领域,尤其是在大数据和云计算时代。这个名为“数据集成工具”的压缩包文件...开发者可以通过分析和运行“eai-main”中的代码,了解和学习如何使用Go语言构建高效的数据集成工具。

    05 输出组件.pptx

    与Excel输出类似,设置好输入和输出组件后,数据将从MySQL的user表中读取并保存到指定的文本文件。 **SQL文件输出** SQL文件输出组件则提供了一种将数据库表的结构和数据导出为SQL脚本文件的功能。这在数据库迁移、...

    基于视觉和嗅觉的控烟防火智能监控系统.pdf

    软件设计主要包含四个方面:使用深度学习框架Caffe中的ssd训练样本、使用Python调用Opencv对图像进行处理、使用MySQL实时读取烟雾传感器数据、数据结果保存。 该系统的主要功能包括: 1. 智能监控系统具有吸烟动作...

    ETL工具Kettle用户手册(上)

    Kettle作为一款成熟的开源ETL工具,提供了丰富且强大的功能,涵盖了数据抽取、转换和加载的全过程,不仅支持多种数据源和目标,还提供了多种数据处理步骤和配置选项,能够满足各种数据集成需求。通过上述知识点的...

    Excel2SQL第二版.zip

    1. 数据源:.xlsx文件是Microsoft Excel的开放XML格式,常用于存储表格数据。它可能包含多个工作表,每个工作表可以看作一个数据表。 2. 数据预处理:在转换前,可能需要对Excel数据进行预处理,例如清洗(去除空格...

    基于python的语音和背景音乐分离算法及系统源码数据库.zip

    5. 软件/插件:在Python中,可能会用到一些音频处理相关的库,如librosa用于音频读写和分析,numpy和pandas用于数据操作,scikit-learn用于机器学习算法,以及PyTorch或TensorFlow进行深度学习模型的构建。...

    基于Python机器视觉实现害虫种类及数量检测【优质毕业设计、课程设计项目】.zip

    8. **项目结构与源代码**:项目文件可能包括数据集、模型训练脚本、预测脚本、结果展示代码等,它们通常按照良好的编程实践组织,便于理解和复用。 9. **结果评估**:项目的最后部分可能涉及到性能评估,通过混淆...

    Poi.rar_POI_poi数据导入

    1. 数据源连接:程序需要能够连接到不同的数据库系统,如MySQL、Oracle、SQL Server等,以便进行数据导入和导出。 2. Excel文件处理:利用Apache POI库解析Excel文件,读取单元格数据,并能处理不同工作表和行列。 3...

    OLAP数据挖掘技术在QAD产品审计中研究.doc

    数据库设计包括六张数据表,为OLAP提供高效的数据源。接着,利用SSAS进行维度建模,包括度量、维度和粒度的设计,构建审计信息的多维立方体。这样,通过Excel的透视表,可以轻松读取多维数据,生成各种审计结果报表...

Global site tag (gtag.js) - Google Analytics