
プログラミングの勉強をしており問題をやっている最中ですが、まわりに聞ける人もおらず,正解もわからず苦戦しております。そこでプログラミングができる方に教えていただきたいです。
まず問題文に「全データを適切なListあるいはMapに収納せよ。」とあり、実際に私もListを使ってデータ内容を収納しました。しかし、それがあっているかどうかわかりません。また収納されたレビューすべてをLIBSVM形式で書き出せと書かれているのですが、そこのやり方がよくわかりません。
おかしな点を指摘していただき、正しいものを教えていただきたいです。そして、わからない部分を詳しく教えてほしいです。
以下は、自分なりのコードを書いてみたものです(恥ずかしながら綺麗でないコードになっていると思います)
≪問題文≫
楽天市場レビューのサンプルデータについて、レビュー1つ分を表すのに適切なクラスを作成せよ。
メインメソッドでデータ(TSV形式)の全てを読み込み、全データを適切なListあるいはMapに収納せよ。
ListあるいはMapに収納されたレビュー全てを、写真のようなLIBSVM形式で書き出せ。
・自分なりのコード
package simonmon;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
public class Simon10 {
public static void main(String[] args) {
try {
File csv = new File("C://Users/bi19029/documents/楽天サンプル/ichiba04_review201001_20140221-sample.tsv");
BufferedReader br = new BufferedReader(new FileReader(csv));
// 最終行まで読み込む
String line = "";
while ((line = br.readLine()) != null) {
// 1行をデータの要素に分割
StringTokenizer st = new StringTokenizer(line, ",");
while (st.hasMoreTokens()) {
// 1行の各要素をタブ区切りで表示
// System.out.print(st.nextToken() + "\t");
// System.out.println();
List<String> list = new ArrayList<>();
list.add(st.nextToken() + "\t");
System.out.println(list);
}
}
br.close();
} catch (FileNotFoundException e) {
// Fileオブジェクト生成時の例外捕捉
e.printStackTrace();
} catch (IOException e) {
// BufferedReaderオブジェクトのクローズ時の例外捕捉
e.printStackTrace();
}
}
}

No.1ベストアンサー
- 回答日時:
> また収納されたレビューすべてをLIBSVM形式で書き出せと書かれているのですが、そこのやり方がよくわかりません。
うん、分からんな(笑)。誰も分からんのじゃないだろうか(笑)。
ええと、調べてみたらLIBSVMっつーのは、国立台湾大学で開発されたSVM(サポートベクターマシン)用のライブラリらしいです。サポートベクターマシンってのは・・・ええと、10年ちょっと前くらいに、統計解析関係で流行った「判別分析」用の手法ですね。機械学習の一分野になんのかな?
ザックリ言うと、古典的な判別分析だと、データをプロットして、二値的にそいつらを一次関数で領域を分ける、と。○と☓に、みたいにね。ただ精度がよく無かった。
それを次元を一つ上げて同じようにやってみたら精度が上がったぞ~、みたいな話になって、その方式を「サポートベクターマシン」って呼んだんですよね。ホンマざっくりと、そういう話なんですが。
で、そいつをJavaでやったりする為のライブラリがLIBSVMらしいです。
んで、ハッキリ言うと、一回LIBSVMをダウンロードして、サンプルが入ってる筈なんで、そいつを自分で調べてみるのが一番でしょう。みんなに「LIBSVMって知ってる?」って訊いても恐らく専門家以外は知らんのでしゃーないですよね。
ライブラリはここにあります。
LIBSVM -- A Library for Support Vector Machines:
https://www.csie.ntu.edu.tw/~cjlin/libsvm/
下の方にJava用の、かつThe latestってのがあるんで、ダウンロードしてインストールしてみてください。Readmeに詳細が書いてある筈です。
・・・・ってか、ぶっちゃけ、「プログラミング初心者用のネタ」じゃないですよ、これ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
InputStream.read()でタイムア...
-
ProcessBuilderを使用して、対...
-
System.err. printlnとSystem.o...
-
VBSエラー"オブジェクト型の変...
-
変数を動的に作るには?
-
javaのコンパイルエラーについ...
-
パソコンキーボードで時分秒を...
-
JSPやサーブレットでSystem.out...
-
JavaScriptの変数をjavaのメソ...
-
「配列定数は、イニシャライザ...
-
javaです
-
jspでの二次元配列
-
JButton-背景の透明化
-
VBで作った乱数を一度も重複さ...
-
C#で、あるクラスのメンバーす...
-
int型のゼロ埋め
-
createImage()を使い コンパイル
-
プログラミングの問題です。大...
-
JavaFXでの表内のチェックボッ...
-
StrutsでJSPからListを受け取り...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
csv出力について
-
yyyymmddからyyyy/mm/d...
-
テキストファイルから空白行をよむ
-
BufferedReaderでのエラー
-
Javaの質問です。テキストファ...
-
equalsの逆
-
戻り値を使用する呼出
-
JAVAでエラーがでる。
-
FileクラスのcanRead/canWrite...
-
Java 出席状況を表す文字列から...
-
Javaでデータに登録する度にID...
-
ファイルの読み飛ばしが出来ま...
-
九九を横に表示する。
-
javaのfor文が機能してないみた...
-
Javaの質問です。テキストファ...
-
Servletでテキストボックスに入...
-
java連結
-
java.lang.NoClassDefFoundErro...
-
拡張子の読み込み制限を設けた...
-
[JAVA]エラーが解決できません。
おすすめ情報