FutureGoingOn 2018-01-17 06:22 采纳率: 50%
浏览 973
已结题

txt如何去除bom以用作libsvm的数据集

1、目的是:python使用libsvm处理数据
2、问题是:txt不能更改为无bom的utf-8,如果使用python的open打开也必须指定encoding=utf-8或者rb,而且第一个数据前面都有\ufeff。
但是libsvm不能指定第二个参数,永远报错_UnicodeDecodeError: 'gbk' codec can't decode byte 0xbf in position 2: illegal multibyte sequence。
3、尝试过的方法有:直接另存为、使用notepad++,eclipse等插件都没用;尝试运行代码判断bom删除文本前3个字符也无用。。。
希望找到一个不复杂又可行的方法
_感谢!!!

  • 写回答

4条回答 默认 最新

  • Shirleylibo 2018-01-17 06:37
    关注

    libsvm处理数据的步骤
    这里进行处理的训练集是train.1.txt 测试集是 test.1.txt
    1. 利用svm-scale 进行数据缩放的处理(对训练集和测试集进行缩放的处理)
    svm-scale -l -1 -u 1 train.1.txt > train1.txt
    svm-scale -l -1 -u 0 test.1.txt > test1.txt
    这里是将train.1.txt和test.1.txt中的数据压缩到了-1到1的范围,然后将压缩后的文件存储为train1.txt,test1.txt
    2. 利用grid.py 训练得到最佳的c和g
    python grid.py train1.txt 在进行了训练之后再控制台会给出三个值,分别为c,g,精确度
    3.生成训练的模板
    svm-train -c xxx -g xxx train1.txt train1.model
    将通过训练train1.txt得到的模板存储为train1.model
    4. 获得正确率
    svm-predict test1.txt train1.model test1.out
    通过传入测试集和训练集的模板生成一个out文件同时获得了预测的正确率。

    评论

报告相同问题?

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值