【问题标题】:How to convert a text file into ARFF format?如何将文本文件转换为 ARFF 格式?
【发布时间】:2012-02-29 19:53:50
【问题描述】:

我正在使用 WEKA 工具进行文本分类,我必须将纯文本文件转换为 ARFF 格式。但是,我不知道该怎么做。谁能帮我把一个文本文件转换成 ARFF 格式?


感谢 Renklauf 的回复,

我不明白这些点“由于像记事本这样的文本编辑器只允许有限数量的列,因此您需要获得像 Notepad++ 这样的东西才能将所有内容放在一行上。” ..你能简单解释一下吗..

假设文本数据就像一个简单的体育文章之类的

" 篮球是一项团队运动,其目标是在遵循一系列规则的同时通过水平放置的篮筐投篮得分。通常,两支由五名球员组成的球队在一个有标记的矩形球场上比赛,每支球队都有一个篮筐宽度结束。篮球是世界上最受欢迎和广受关注的运动之一” ...

这是我的文本文档,我想将其转换为 arff 格式.. 之后我需要使用该 arff 格式文件进行 SVM 文本分类..

【问题讨论】:

  • 你的txt文件是什么格式的?你试过CSVLoader吗?
  • @Mahesh:每篇文章必须单独一行并用引号括起来。您引用的文章有 4 行长。所有 4 行都需要放在单行上并用引号括起来。如果您使用像记事本这样的文本编辑器,根据文章的长度,您可能会用完列。这就是为什么我建议您使用 Notepad++,它允许您拥有无限长度的行(使用 Join Lines 功能)。

标签: weka


【解决方案1】:

对于文档分类任务,每个文档都被视为一个属性,并且必须用引号引起来。假设您有一个包含 10 篇体育文章的语料库,标记为亲洋基队或亲红袜队,分类器自动将体育文章分类为亲洋基队或亲红袜队。您需要获取每个文档,将其括在引号中,将其放在一行中,然后将 {yankees, red_sox} 属性值放在引号括起来的字符串之后。

 @relation yankeesOrRedSox
 @attribute article string
 @attribute yankeesOrSox { yankees, red_sox }
 @data

 "text of article 1 here", yankees
 .
 .
 .
 "text of article 10 here", red_sox

文章放在一行是关键。当我开始使用 Weka 进行文本分类时,这一点一开始让我非常沮丧。由于像记事本这样的文本编辑器只允许有限数量的列,因此您需要获得像 Notepad++ 这样的东西才能将所有内容都放在一行上。 Notepad++ 有一个 Join Lines 功能,允许您在一行中放置大量文本。

希望这会有所帮助。

【讨论】:

  • No .. 在 arff 的数据格式的情况下它会工作...实际上这是一个纯文本,即关于体育的文章,我需要将该纯文本转换为 arff 格式.. . tnx 为你的回应...
  • 但是,weka 分类器(用于分类的 SMO 算法)不支持这种格式......它给出了一个错误,比如 SMO 无法处理字符串数据......我应该怎么做做 ???使用 SVM(支持向量机)进行文本分类有更好的选择吗?
  • @Mahesh 您是否使用 StringToWordVector 过滤器将每篇文章转换为单词向量?我刚刚用 SMO 试了一下,效果很好。
  • ya ...我也尝试过那个..但是这次weka不允许使用SMO进行分类(即,在分类中未突出显示SMO以进行选择)...。我没有不知道为什么???
  • 如果txt文件有10,000,000条记录怎么办?
猜你喜欢
  • 2013-11-11
  • 2012-12-13
  • 1970-01-01
  • 2015-06-10
  • 1970-01-01
  • 1970-01-01
  • 2018-03-06
  • 2014-02-10
  • 2014-06-11
相关资源
最近更新 更多