http://code.google.com/p/python-data-mining-platform/
里面有介绍一些关于机器学习的一些算法。
从搜狗实验室下载语料
http://www.sogou.com/labs/dl/c.html
注:这些都是分好类别的 http://code.google.com/p/python-data-mining-platform/wiki/Additional_Tools
解压到d盘。
检出pymining代码 http://python-data-mining-platform.googlecode.com/svn/trunk/
将整个代码复制到一个python的项目。
将搜狗的语料转换成pymining的语料格式。
tools/sogou_importer.py
#encoding=utf-8
import dircache
import sys
import os
if __name__ == "__main__":
# if len(sys.argv) <> 3:
# print "python sogou_importer.py sogou_path output_file_path"
# sys.exit()
dirNameDict = { \
"C000008":0, \
"C000010":1, \
"C000013":2, \
"C000014":3, \
"C000016":4, \
"C000020":5, \
"C000022":6, \
"C000023":7, \
"C000024":8, \
}
# outputPath = sys.argv[2]
# inputDir = sys.argv[1]
outputPath = "sougou_train.txt"
inputDir = "D:\Reduced";
ofs = open(outputPath, "w")
if inputDir[len(inputDir) - 1] != "/":
inputDir += "/"
for dirName in dirNameDict.keys():
newDir = inputDir + dirName + "/"
if (not os.path.exists(newDir)):
continue
fileList = dircache.listdir(newDir)
for fileName in fileList:
filePath = newDir + fileName
if (not os.path.exists(filePath)):
continue
ifs = open(filePath, "r")
fileContent = ifs.read()
fileContent = fileContent.decode("gb18030", "ignore")
fileContent = fileContent.replace("\n", " ")
fileContent = fileContent.replace("\t", " ")
ofs.write(fileContent.encode("utf-8") + "\t" + str(dirNameDict[dirName]) + "\n")
ifs.close()
ofs.close()
一共8个类别,自行判断每个文件夹的新闻类别
将格式化后的语料复制到项目的example/data/目录下。在example目录下新建mining目录
开始测试分类的准确性:
在example/data/sougou_train.txt中复制一个语料保存到example/data/sougou_test.txt中(后面带一个数字,这个数字代表的一个新闻的类别)。格式要与sougou_train.txt的格式保持一致。
运行 example/naive_bayes_only_test.py
#coding: utf8
import sys, os
sys.path.append(os.path.join(os.getcwd(), '../'))
from pymining.math.matrix import Matrix
from pymining.math.text2matrix import Text2Matrix
from pymining.nlp.segmenter import Segmenter
from pymining.common.global_info import GlobalInfo
from pymining.common.configuration import Configuration
from pymining.preprocessor.chisquare_filter import ChiSquareFilter
from pymining.classifier.naive_bayes import NaiveBayes
if __name__ == "__main__":
config = Configuration.FromFile("conf/test.xml")
GlobalInfo.Init(config, "__global__")
txt2mat = Text2Matrix(config, "__matrix__")
[trainx, trainy] = txt2mat.CreateTrainMatrix("data/sougou_train.txt")
chiFilter = ChiSquareFilter(config, "__filter__")
chiFilter.TrainFilter(trainx, trainy)
[trainx, trainy] = chiFilter.MatrixFilter(trainx, trainy)
nbModel = NaiveBayes(config, "naive_bayes")
nbModel.Train(trainx, trainy)
[testx, testy] = txt2mat.CreatePredictMatrix("data/sougou_test.txt")
[testx, testy] = chiFilter.MatrixFilter(testx, testy)
[resultY, precision] = nbModel.Test(testx, testy)
print precision
一会就输出准确率了
example/mining目录下会生成一些文件,这是pymining的一些学习模型,分类的时候可以加载这些文件来判别新的新闻来分类,或者直接在线的学习不加载这些文件。
参考http://code.google.com/p/python-data-mining-platform/wiki/Tutorial
比如ClassifiterMatrix类初始化的时候,将读取标签为matrix的信息(某些模块如果不需要读取某种标签的信息,这个标签下面将是无内容的,具体请见后面的xml)。
初始化的时候,需要指定最后一个布尔参数(isFromFile),表示是否这个模块从配置类中指定的文件中载入得到。
一般在训练的时候,指定这个参数为False,而在单独测试的时候,需要指定这个参数为True,因为需要从训练的时候生成的文件中载入训练的模型才能够进行测试。
开始分类:
我们选择不加载学习模型的文件来分类,从百度的新闻中找一个新闻。
运行example/naive_bayes_train_test_bysample.py
#encoding=utf8
import sys, os
sys.path.append(os.path.join(os.getcwd(), '../'))
from pymining.math.matrix import Matrix
from pymining.math.text2matrix import Text2Matrix
from pymining.nlp.segmenter import Segmenter
from pymining.common.global_info import GlobalInfo
from pymining.common.configuration import Configuration
from pymining.preprocessor.chisquare_filter import ChiSquareFilter
from pymining.classifier.naive_bayes import NaiveBayes
if __name__ == "__main__":
config = Configuration.FromFile("conf/test.xml")
GlobalInfo.Init(config, "__global__")
txt2mat = Text2Matrix(config, "__matrix__")
[trainx, trainy] = txt2mat.CreateTrainMatrix("data/sougou_train.txt")
chiFilter = ChiSquareFilter(config, "__filter__")
chiFilter.TrainFilter(trainx, trainy)
nbModel = NaiveBayes(config, "naive_bayes")
nbModel.Train(trainx, trainy)
inputStr = "朝鲜人民军总参谋长李英浩被解职后,美韩不断猜测朝鲜内幕。据环球网报道,韩国《京乡新闻》22日分析称,“炸铜像事件可能成为朝鲜半岛紧张的新火种”,甚至揣测朝鲜可能借此牵制美国并实施第三次核试验。据京华时报报道,7月19日,朝方当天在首都平壤召开记者会,一名嫌疑人自称受韩国和美国情报机构指使,企图炸毁朝鲜建国领袖金日成的铜像。朝鲜外务省发言人20日表示,由于美国不改变其对朝敌视政策,朝鲜“不得不全面重新考虑核问题”。"
[cols, vals] = txt2mat.CreatePredictSample(inputStr.decode("utf-8"))
[cols, vals] = chiFilter.SampleFilter(cols, vals)
probTuple = nbModel.TestSample(cols, vals)
print probTuple
输出这个新闻的每个类别的相似概率。
朝鲜人民军总参谋长李英浩被解职后,美韩不断猜测朝鲜内幕。
据环球网报道,韩国《京乡新闻》22日分析称,“炸铜像事件可能成为朝鲜半岛紧张的新火种”,甚至揣测朝鲜可能借此牵制美国并实施第三次核试验。
据京华时报报道,7月19日,朝方当天在首都平壤召开记者会,一名嫌疑人自称受韩国和美国情报机构指使,企图炸毁朝鲜建国领袖金日成的铜像。
朝鲜外务省发言人20日表示,由于美国不改变其对朝敌视政策,朝鲜“不得不全面重新考虑核问题”。
((0, 3.9413063433550935e-60), (1, 1.5063156437023602e-39), (2, 6.35241774643204e-48), (3, 2.2260167379491118e-68), (4, 7.13553884486322e-30), (5, 7.708008674579432e-40), (6, 1.5767993409024485e-48), (7, 0.06578001159339009), (8, 0.9342199884066099))
(8, 0.9342199884066099)从这个可以看出,这个新闻属于我们的新闻类别中的第8类。
- 大小: 15.4 KB
- 大小: 19.1 KB
分享到:
相关推荐
数据挖掘大作业-基于python的电信客户流失预测与分析源码(满分大作业项目)数据挖掘大作业-基于python的电信客户流失预测与分析源码(满分大作业项目)数据挖掘大作业-基于python的电信客户流失预测与分析源码...
毕业设计-基于python招聘数据分析可视化系统毕业设计与实现源码+文档说明.zip毕业设计-基于python招聘数据分析可视化系统毕业设计与实现源码+文档说明.zip毕业设计-基于python招聘数据分析可视化系统毕业设计与实现...
人工智能-项目实践-情感分析-基于python的金融文本情感分析模型源码+文档说明,该项目是个人毕设项目,答辩评审分达到98分,代码都经过调试测试,确保可以运行!欢迎下载使用,可用于小白学习、进阶。该资源主要针对...
基于Python的学生校园消费行为分析(数据+完整代码),高分项目期末大作业开发的97分高分设计项目,可作为高分课程设计和期末大作业的参考,含有代码注释小白也可看的懂,有能力的小伙伴也可以在此基础上进行二开,...
课设新项目-基于python爬虫的电影数据管理系统源码.zip课设新项目-基于python爬虫的电影数据管理系统源码.zip课设新项目-基于python爬虫的电影数据管理系统源码.zip课设新项目-基于python爬虫的电影数据管理系统源码...
Python数据可视化大作业-基于Python实现的数字唐诗可视化项目源码+文档说明+答辩PPTPython数据可视化大作业-基于Python实现的数字唐诗可视化项目源码+文档说明+答辩PPTPython数据可视化大作业-基于Python实现的数字...
数据挖掘-数据预处理-基于Python的数据标准化方法
《Python与数据挖掘》这本书是针对想要学习使用Python进行数据挖掘技术的读者而编写的。源码文件提供了书中实例的详细实现,对于深入理解和实践书中的理论知识非常有帮助。以下将详细介绍书中涉及的一些关键知识点。...
通过阅读本书,读者将深入了解文本数据挖掘的原理、技术和方法,并学会如何运用Python进行有效的文本数据处理和分析。 《文本数据挖掘与Python应用》这本书是一本非常实用的文本数据挖掘与Python编程的参考书籍。它...
#Python数据挖掘平台客观的这是一个用 Python 编写的平台,可以使用变体数据挖掘算法从源(如矩阵、文本文档)中获取结果。 算法可以使用xml配置,让它们一一运行。 例如,首先,我们可能会运行 PCA(主成分分析)...
文件列表: LICENSE (1066, 2023-03-10) Python (0, 2023-03-10) Python\保险客户价值聚类分析 (0, 2023-03-10) ...Python\文本挖掘 (0, 2023-03-10) Python\文本挖掘\Data (0, 2023-03-10) Python\文
基于python+深度学习进行长文本分类处理算法源码+项目说明(采用keras).zip基于python+深度学习进行长文本分类处理算法源码+项目说明(采用keras).zip基于python+深度学习进行长文本分类处理算法源码+项目说明...
基于Python字向量TextRCNN实现的文本分类源码+运行说明+数据.zip基于Python字向量TextRCNN实现的文本分类源码+运行说明+数据.zip基于Python字向量TextRCNN实现的文本分类源码+运行说明+数据.zip基于Python字向量...
机器学习-基于AEDA的数据增强技术的中文文本分类python源码+数据集.zip机器学习-基于AEDA的数据增强技术的中文文本分类python源码+数据集.zip机器学习-基于AEDA的数据增强技术的中文文本分类python源码+数据集.zip...
在探讨利用Python实现基于支持向量机(SVM)的文本分类之前,首先需要对文本分类问题有一个基本的理解。文本分类是指根据文本内容将其分入一个或多个类别中,例如将新闻分为体育、科技、娱乐等类别。在文本分类问题中...
在本项目"基于Python实现多类别文本分类.zip"中,我们主要探讨如何使用Python编程语言进行多类别文本分类。这通常涉及到自然语言处理(NLP)和机器学习领域,是数据科学和人工智能的重要组成部分。多类别文本分类是...
本次研究主要是基于python语言对智联 招聘网的数据进行数据挖掘分析和建模,进而得出招聘信息薪资待遇预测分类模 型。 本次研究主要分为如下步骤:数据源选择、数据采集、数据存储、数据预处理、 数据建模和模型...
探索电影数据集.zip基于python数据分析-探索电影数据集.zip基于python数据分析-探索电影数据集.zip基于python数据分析-探索电影数据集.zip基于python数据分析-探索电影数据集.zip基于python数据分析-探索电影数据集....
数据挖掘课程大作业-基于情感词典法、传统机器学习及深度学习完成情感分类python源码专为大学期间课程设计和期末大作业开发的高分设计项目,可作为高分课程设计和期末大作业的参考,含有代码注释小白也可看的懂,有...