将.dat文件导入数据库

时间:2024-02-22 14:15:46

  *最近在搞文本分类,就是把一批文章分成[军事]、[娱乐]、[政治]等等。

但是这个先需要一些样本进行训练,感觉文本分类和"按图索骥"差不多,训练的文章样本就是"图",真正分类的就是“骥”。

去搜狗实验室找到了一些样本进行下载,先下载了一些迷你版的样本数据,看着还不错,就下载吧,压缩包就不到700M,解压後,1G+。

特别是看到文件后缀是.dat,当场是懵逼的。

  **以前用过sqlLite,网上搜了下,答案是sqlLite是可以打开.dat的文件,下载了一个可视化的sqlLite来打开.dat文件,报错...
  ***如果网上说MS SQL可以打开.dat文件,但是MS SQL打开.dat文件报错的话,我可能还较真的继续下去找找别的原因,但是sqlLite报错,

就算了,不继续这条路了,毕竟自己也不怎么用过sqlLite,,,终于又看到了一个解决方案,说可以将.dat文件导入到MySQL数据库中,

  ****但是需要Toad for MySQL软件的帮助,这个软件貌似貌似不太好找,只好去官网下载了,好需要注册账号才能有权限下载,吧啦吧啦,下载好了,

这个软件的图标是个青蛙,寓意是王子嘛,不过还挺可爱的。我还去MySQL中建了一个数据库,又建了一个账号。然后连接。

  *****然后去看下.dat中的数据样式,我下载的样式是:

<doc>
<url>http://gongyi.sohu.com/20120706/n347457739.shtml</url>
<docno>98590b972ad2f0ea-34913306c0bb3300</docno>
<contenttitle>深圳地铁将设立VIP头等车厢 买双倍票可享坐票</contenttitle>
<content>南都讯 记者刘凡 周昌和 任笑一 继推出日票后,深圳今后将设地铁VIP头等车厢,设坐票制。昨日,《南都METRO》创刊仪式暨2012年深港地铁圈高峰论坛上透露,在未来的11号线上将增加特色服务,满足不同消费层次的乘客的不同需求,如特设行李架的车厢和买双倍票可有座位坐的VIP车厢等。论坛上,深圳市*副秘书长、轨道交通建设办公室主任赵鹏林透露,地铁未来的方向将分等级,满足不同层次的人的需求,提供不同层次的有针对的服务。其中包括一些档次稍微高一些的服务。“我们要让公共交通也能满足档次稍高一些的服务”。比如,尝试有座位的地铁票服务。尤其是一些远道而来的乘客,通过提供坐票服务,让乘坐地铁也能享受到非常舒适的体验。他说,这种坐票的服务有望在地铁3期上实行,将加挂2节车厢以实施花钱可买座位的服务。“我们希望轨道交通和家里开的车一样,分很多种。”赵鹏林说,比如有些地铁是“观光线”,不仅沿途的风光非常好,还能凭一张票无数次上下,如同旅游时提供的“通票服务”。再比如,设立可以放大件行李的车厢,今后通过设专门可放大件行李的座位,避免像现在放行李不太方便的现象。“未来地铁初步不仅在干线上铺设,还会在支线、城际线上去建设。”“觉得如果车费不太贵的话,还是愿意考虑的。”昨日市民黄小姐表示,尤其是从老街到机场这一段,老街站每次上下客都很多人,而如果赶上上下班高峰期,特别拥挤,要一路从老街站站到机场,40、50分钟还是挺吃力的,宁愿多花点钱也能稍微舒适一点。但是白领林先生则表示,自己每天上下班都要坐地铁,出双倍车资买坐票费用有点高。</content>
</doc>
<doc>
<url>http://gongyi.sohu.com/20120724/n348878190.shtml</url>
<docno>5fa7926d2cd2f0ea-34913306c0bb3300</docno>
<contenttitle>爸爸为女儿百万建幼儿园 消防设施3年仍不过关</contenttitle>
<content></content>
</doc>
<doc>
<url>http://gongyi.sohu.com/s2008/sourceoflife/</url>
<docno>f2467af22cd2f0ea-34913306c0bb3300</docno>
<contenttitle>中国西部是地球上主要干旱带之一,妇女是当地劳动力...</contenttitle>
<content>同心县地处宁夏中部干旱带的核心区, 冬寒长,春暖迟,夏热短,秋凉早,干旱少雨,蒸发强烈,风大沙多。主要自然灾害有沙尘暴、干热风、霜冻、冰雹等,其中以干旱危害最为严重。由于生态环境的极度恶劣,导致农村经济发展缓慢,人民群众生产、生活水平低下,靠天吃饭的被动局面依然存在,同心,又是*老、少、边、穷县之一…[详细]</content>
</doc>
//还有很多...

看下这些数据,每条数据有用标签<doc></doc>包着,每个doc标签有4个标签,所以我建了有5列的一个表,test

每列都是varchar,长度也尽量给的大一点,别万一导入的时候报错了;

  ******下面需要一个语句来进行插入到MySQL中:

LOAD DATA LOCAL INFILE \'E:\\b.dat\'#E:\\b.dat 为.dat文件在你电脑上的位置
INTO TABLE test#表名
FIELDS TERMINATED BY \'\n\'#(每条数据中)每一列的隔开的标签
LINES TERMINATED BY \'</doc>\n<doc>\'#每条数据的隔开的标签
(c1, c2, c3,c4,c5); #导入数据的对应列

然后点下图↓中的运行SQL语句的按钮,

 

只要没有报错,就是对了,再去看看MySQL中test数据库中的test表,

果然有数据,但是中文乱码!!!

在MySQL中执行sql:

SHOW VARIABLES LIKE \'character_set_%\';
SHOW VARIABLES LIKE \'collation_%\';

我这里显示的这个就是不乱码的,怎么更改这个值?传送走你

如果是MYSQL数据库编码不正确: 可以在MYSQL执行如下命令: 
ALTER DATABASE `test` DEFAULT CHARACTER SET gb2312 COLLATE gb2312_chinese_ci
 修改MYSQL表的编码:
ALTER TABLE `test` DEFAULT CHARACTER SET gb2312 COLLATE gb2312_chinese_ci
 修改字段的编码:
ALTER TABLE `test` CHANGE `c1`  VARCHAR(4000) CHARACTER SET gb2312 COLLATE gb2312_chinese_ci 

到这里就可以了,当然导入的时候,数据还不太完美,但是这就够我用了。。。GG

二〇一六年十一月二十一日 21:38:21