2013-03-21 2 views
4

У меня есть текстовый файл с меткой и твитами.Как векторизовать текстовый файл в mahout?

positive,I love this car 
    negative,I hate this book 
    positive,Good product. 

Мне нужно преобразовать каждую строку в векторе value.If я использую seq2sparse команды означает, что весь документ преобразуется в вектор, но мне нужно преобразовать каждую строку как вектор не весь документ. ex: ключ: положительное значение: vectorvalue (чирикать) Как мы можем достичь этого в mahout?


/* Вот что я сделал */

StringTokenizer str= new StringTokenizer(line,","); 
      String label=str.nextToken(); 
      while (str.hasMoreTokens()) 
      { 
      tweetline =str.nextToken(); 
      System.out.println("Tweetline"+tweetline); 
      StringTokenizer words = new StringTokenizer(tweetline," "); 
      while(words.hasMoreTokens()){ 
      featureList.add(words.nextToken());} 
      } 
      Vector unclassifiedInstanceVector = new RandomAccessSparseVector(tweetline.split(" ").length); 
FeatureVectorEncoder vectorEncoder = new AdaptiveWordValueEncoder(label); 
      vectorEncoder.setProbes(1); 
      System.out.println("Feature List: "+featureList); 
      for (Object feature: featureList) { 
       vectorEncoder.addToVector((String) feature, unclassifiedInstanceVector); 
      } 
      context.write(new Text("/"+label), new VectorWritable(unclassifiedInstanceVector)); 

Заранее спасибо

ответ

0

Вы можете написать его на приложение HDFS путь с SequenceFile.Writer

  FS = FileSystem.get(HBaseConfiguration.create()); 
      String newPath = "/foo/mahouttest/part-r-00000"; 
      Path newPathFile = new Path(newPath); 
      Text key = new Text(); 
      VectorWritable value = new VectorWritable(); 
      SequenceFile.Writer writer = SequenceFile.createWriter(FS, conf, newPathFile, 
       key.getClass(), value.getClass()); 
       ..... 
      key.set("c/"+label); 
      value.set(unclassifiedInstanceVector); 
      writer.append(key,value);