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
分享到:
相关推荐
总结来说,Pymining是Python生态系统中一个强大的数据挖掘工具,它以其简洁而全面的特性,为数据科学家提供了高效的数据挖掘解决方案。无论你是初学者还是经验丰富的专业人士,Pymining都能成为你探索数据世界的一把...
在本毕业设计项目中,...通过这个项目,学生将深入理解Python在数据处理和机器学习中的应用,同时掌握自然语言处理的关键技术和文本分类的实战技能,为未来在人工智能和数据分析领域的进一步学习和工作奠定坚实基础。
毕业设计-基于python招聘数据分析可视化系统毕业设计与实现源码+文档说明.zip毕业设计-基于python招聘数据分析可视化系统毕业设计与实现源码+文档说明.zip毕业设计-基于python招聘数据分析可视化系统毕业设计与实现...
人工智能-项目实践-情感分析-基于python的金融文本情感分析模型源码+文档说明,该项目是个人毕设项目,答辩评审分达到98分,代码都经过调试测试,确保可以运行!欢迎下载使用,可用于小白学习、进阶。该资源主要针对...
基于Python的恶意代码检测分类平台项目源码基于Python的恶意代码检测分类平台项目源码基于Python的恶意代码检测分类平台项目源码基于Python的恶意代码检测分类平台项目源码本科毕业设计-基于Python的恶意代码检测...
基于Python的学生校园消费行为分析(数据+完整代码),高分项目期末大作业开发的97分高分设计项目,可作为高分课程设计和期末大作业的参考,含有代码注释小白也可看的懂,有能力的小伙伴也可以在此基础上进行二开,...
课设新项目-基于python爬虫的电影数据管理系统源码.zip课设新项目-基于python爬虫的电影数据管理系统源码.zip课设新项目-基于python爬虫的电影数据管理系统源码.zip课设新项目-基于python爬虫的电影数据管理系统源码...
毕设-基于Python的股票自动交易系统的设计与实现源码.zip毕设-基于Python的股票自动交易系统的设计与实现源码.zip毕设-基于Python的股票自动交易系统的设计与实现源码.zip毕设-基于Python的股票自动交易系统的设计与...
Python数据可视化大作业-基于Python实现的数字唐诗可视化项目源码+文档说明+答辩PPTPython数据可视化大作业-基于Python实现的数字唐诗可视化项目源码+文档说明+答辩PPTPython数据可视化大作业-基于Python实现的数字...
Python毕业设计-基于Python的二手房数据采集及可视化分析项目源码+论文PPT,该项目是个人毕设项目,答辩评审分达到98分,代码都经过调试测试,确保可以运行!欢迎下载使用,可用于小白学习、进阶。该资源主要针对...
数据挖掘-数据预处理-基于Python的数据标准化方法
《Python与数据挖掘》这本书是针对想要学习使用Python进行数据挖掘技术的读者而编写的。源码文件提供了书中实例的详细实现,对于深入理解和实践书中的理论知识非常有帮助。以下将详细介绍书中涉及的一些关键知识点。...
自动办公-20 Python文本数据可视化之“词云”图自动办公-20 Python文本数据可视化之“词云”图自动办公-20 Python文本数据可视化之“词云”图自动办公-20 Python文本数据可视化之“词云”图自动办公-20 Python文本...
数据挖掘大作业-基于python实现的葡萄酒质量分析项目源码+全部数据(高分项目).zip个人98分期末大作业项目,代码完整下载可用。主要针对计算机相关专业的正在做课程设计和期末大作业的学生和需要项目实战练习的学习...
通过阅读本书,读者将深入了解文本数据挖掘的原理、技术和方法,并学会如何运用Python进行有效的文本数据处理和分析。 《文本数据挖掘与Python应用》这本书是一本非常实用的文本数据挖掘与Python编程的参考书籍。它...
基于python深度学习的多任务文本分类.zip基于python深度学习的多任务文本分类.zip基于python深度学习的多任务文本分类.zip基于python深度学习的多任务文本分类.zip基于python深度学习的多任务文本分类.zip基于python...
文件列表: 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\文
基于Huggingface的文本分类python源码.zip课程作业-基于Huggingface的文本分类python源码.zip课程作业-基于Huggingface的文本分类python源码.zip课程作业-基于Huggingface的文本分类python源码.zip课程作业-基于...
基于python+深度学习进行长文本分类处理算法源码+项目说明(采用keras).zip基于python+深度学习进行长文本分类处理算法源码+项目说明(采用keras).zip基于python+深度学习进行长文本分类处理算法源码+项目说明...
基于Python字向量TextRCNN实现的文本分类源码+运行说明+数据.zip基于Python字向量TextRCNN实现的文本分类源码+运行说明+数据.zip基于Python字向量TextRCNN实现的文本分类源码+运行说明+数据.zip基于Python字向量...