需求
最近在作文本上分类,收到的数据很混乱。 要进入下一步,即使分词是tfidf,也要先进行数据分类。 python
元数据
有3万篇文章,在一个excel中,每行有每篇文章的id、内容(title_content )、分类(relative breeds )、)三列。 全球资讯科技
目标
按分类制作子目录,将文章按分类配置在子目录中,每篇文章写入txt文件,将txt文件的标题作为文章idgithub
自述文件
虽然使用pandas导入excel,但pandas的逐行读取功能很容易使用。 函数
虽然在网上的一些教程中使用了xlrd,但是感觉有点复杂。 此外,xlrd似乎有文件大小限制。 pandas相对没有大小限制,我的体感速度也很快。 编码
使用了python标准库操作系统进行路径操作。 net
也可以用同样的方法读取txt并写入excel,读取csv并写入excel。 更改pandas读取文件函数就可以了。 埃克塞尔
pandas真的很好用啊code
''''
@version:python3.6
@author:chenyaooo
@ conc act : sunchingyo @ I cloud.com
''''
导入pandas as PD
导入操作系统
efcreatcatesdir (数据,目标) :
''''
创建类别目录
''''
#取得除重后的分类列表
cates=list (data [ ' relative breeds ' ].unique () )
是打印(cates )
for cate in cates:
连接子目录路径
final_path=target cate
try:
创建OS.mkdir(final_path ) #目录
except Exception as e:
打印(str (e ) )
def excel2txt (数据,目标) :
#创建类目录
creatcatesdir (数据,目标) )。
逐条获取excel的内容
for index,row in data.iterrows () :
#文章内容
content=row['title_content']
#文件名-文章id
filename=row['id']
子目录-类别
cate=row['relative breeds']
#连接文件路径
txt_path=target cate os.sep
#将文章内容写入txt
withopen(txt_pathstr(filename ).txt )、(wt ) ) as f:
f.write (内容)
defmain(: )
用pandas导入excel
data=PD.read _ excel (./data/processed/article _ breeds 20k _ TC.xls ) )。
#必须提前创建主目录
targetfile='./article/'
excel2txt (数据,目标文件) )。
if __name__=='__main__':
主() )
上述所有编码使用的python缺省编码utf-8blog
如果有更好的方法,请留言告诉我。 教程
所有数据组织都是为了进行以下文本分类,因此建议使用良好的文本分类教程