質問編集履歴

7

エラーの変更

2016/12/18 17:53

投稿

manchester
manchester

スコア7

test CHANGED
File without changes
test CHANGED
@@ -70,17 +70,7 @@
70
70
 
71
71
  ```
72
72
 
73
- このようなエラーが出てきます。
73
+ このようなエラーが出てきます。
74
-
75
- TF1.java:22: 互換性のない型
76
-
77
- 期待値: java.lang.String
78
-
79
- 検出値: java.lang.String[]
80
-
81
- String doc2 = str.split(" ");
82
-
83
- ^
84
74
 
85
75
  TF1.java:23: null {5}のtf(java.util.List<java.lang.String>,java.lang.String) TF1は指定された型に適用できません
86
76
 
@@ -90,12 +80,6 @@
90
80
 
91
81
  double tf1 = tf(str, doc2);
92
82
 
93
- ^
83
+ ^ ^
94
84
 
95
- TF1.java:24: foreachは式のタイプに使用できません
96
-
97
- for(String words : doc2){
98
-
99
- ^
100
-
101
- エラー3
85
+ エラー1

6

字下げ

2016/12/18 17:53

投稿

manchester
manchester

スコア7

test CHANGED
File without changes
test CHANGED
@@ -1,8 +1,4 @@
1
- ```ここに言語を入力
2
-
3
- コード
4
-
5
- ```Javaを独学で勉強中のJava初心者です。Javaで英文テキストファイルを読み込みそれぞれの英単語のTFIDFを表示させるプログラムを作りたいのですが、どうしてもうまくできません。TFのみを作ってみました。
1
+ Javaを独学で勉強中のJava初心者です。Javaで英文テキストファイルを読み込みそれぞれの英単語のTFIDFを表示させるプログラムを作りたいのですが、どうしてもうまくできません。TFのみを作ってみました。
6
2
 
7
3
  エラーの意味がわかりません。
8
4
 
@@ -12,7 +8,7 @@
12
8
 
13
9
 
14
10
 
15
- import java.util.Arrays;
11
+ ```import java.util.Arrays;
16
12
 
17
13
  import java.util.List;
18
14
 
@@ -72,6 +68,8 @@
72
68
 
73
69
  }
74
70
 
71
+ ```
72
+
75
73
  このようなエラーが出てきます。
76
74
 
77
75
  TF1.java:22: 互換性のない型

5

字下げ

2016/12/18 17:48

投稿

manchester
manchester

スコア7

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,8 @@
1
+ ```ここに言語を入力
2
+
3
+ コード
4
+
1
- Javaを独学で勉強中のJava初心者です。Javaで英文テキストファイルを読み込みそれぞれの英単語のTFIDFを表示させるプログラムを作りたいのですが、どうしてもうまくできません。TFのみを作ってみました。
5
+ ```Javaを独学で勉強中のJava初心者です。Javaで英文テキストファイルを読み込みそれぞれの英単語のTFIDFを表示させるプログラムを作りたいのですが、どうしてもうまくできません。TFのみを作ってみました。
2
6
 
3
7
  エラーの意味がわかりません。
4
8
 

4

プログラムを追加

2016/12/18 17:28

投稿

manchester
manchester

スコア7

test CHANGED
File without changes
test CHANGED
@@ -1,67 +1,99 @@
1
1
  Javaを独学で勉強中のJava初心者です。Javaで英文テキストファイルを読み込みそれぞれの英単語のTFIDFを表示させるプログラムを作りたいのですが、どうしてもうまくできません。TFのみを作ってみました。
2
+
3
+ エラーの意味がわかりません。
2
4
 
3
5
  ファイルの読み込み方がわからないので直接英文を打ち込みました。こちらでは長いので省略しました。
4
6
 
5
- 降順表示したいです。
7
+ 降順表示したいです。
6
8
 
7
9
 
8
10
 
9
- import java.util.*;
11
+ import java.util.Arrays;
10
12
 
11
- import java.util.Map.Entry;
13
+ import java.util.List;
12
14
 
13
- import java.util.Arrays;
15
+ import java.lang.String;
16
+
17
+ /**
18
+
19
+ * doc 文書
20
+
21
+ term 用語
22
+
23
+ */
24
+
25
+ public class TF1 {
26
+
27
+ public double tf(List<String> doc, String term) {
28
+
29
+ double result = 0;
30
+
31
+ for (String word : doc) {
32
+
33
+ if (term.equalsIgnoreCase(word))
34
+
35
+ result++;
36
+
37
+ }
38
+
39
+ return result / doc.size();
40
+
41
+ }
14
42
 
15
43
 
16
44
 
17
- public class TF2{
18
-
19
45
  public static void main(String[] args) {
20
46
 
21
- double TF;
47
+ String str = new String("//*英文");
22
48
 
23
- String str =("//英単語の文章 長いので省略");
24
49
 
25
- String[] a = str.split("\\s", 0);
26
50
 
27
- Map<String, Integer> m = new HashMap<String, Integer>();
51
+ String doc2 = str.split(" ");
28
52
 
29
- int size=0;
53
+ double tf1 = tf(str, doc2);
30
54
 
31
- for (String s : a) {
55
+ for(String words : doc2){
32
56
 
33
- int v;
57
+ if(!str.equalsIgnoreCase(words)){
34
58
 
35
- if (m.containsKey(s)) {
59
+ System.out.print(doc2 + ":");
36
60
 
37
- // Mapに登録済み
61
+ System.out.println(tf1);
38
62
 
39
- v = m.get(s) + 1;
40
-
41
- size++;
42
-
43
- } else {
44
-
45
- // Mapに未登録
46
-
47
- v = 1;
48
-
49
- size++;
50
-
51
- }
63
+ }
52
-
53
- m.put(s, v);
54
-
55
- }
56
-
57
- for (Entry<String, Integer> entry : m.entrySet()) {
58
-
59
- TF=((double)entry.getValue() / size) * 100;
60
-
61
- System.out.printf("%s : %2f%n", entry.getKey(),TF);
62
64
 
63
65
  }
64
66
 
65
67
  }
66
68
 
67
69
  }
70
+
71
+ このようなエラーが出てきます。
72
+
73
+ TF1.java:22: 互換性のない型
74
+
75
+ 期待値: java.lang.String
76
+
77
+ 検出値: java.lang.String[]
78
+
79
+ String doc2 = str.split(" ");
80
+
81
+ ^
82
+
83
+ TF1.java:23: null {5}のtf(java.util.List<java.lang.String>,java.lang.String) TF1は指定された型に適用できません
84
+
85
+ 期待値:
86
+
87
+ 検出値: java.lang.String,java.lang.String
88
+
89
+ double tf1 = tf(str, doc2);
90
+
91
+ ^
92
+
93
+ TF1.java:24: foreachは式のタイプに使用できません
94
+
95
+ for(String words : doc2){
96
+
97
+ ^
98
+
99
+ エラー3個

3

プログラムの追加

2016/12/18 17:04

投稿

manchester
manchester

スコア7

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  Javaを独学で勉強中のJava初心者です。Javaで英文テキストファイルを読み込みそれぞれの英単語のTFIDFを表示させるプログラムを作りたいのですが、どうしてもうまくできません。TFのみを作ってみました。
2
2
 
3
- ファイルの読み込み方がわからないので直接英文を打ち込みました。
3
+ ファイルの読み込み方がわからないので直接英文を打ち込みました。こちらでは長いので省略しました。
4
4
 
5
5
  降順表示をしたいです。
6
6
 

2

誤字を変更しました。

2016/12/18 16:53

投稿

manchester
manchester

スコア7

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- Javaを独学で勉強中のJava初心者です。Javaで英文テキストファイルを読み込みそれぞれの英単語のTFIDFを表示させるプログラムを作りたいのですが、どうしてもうまくできません。TFのみを作ってました。
1
+ Javaを独学で勉強中のJava初心者です。Javaで英文テキストファイルを読み込みそれぞれの英単語のTFIDFを表示させるプログラムを作りたいのですが、どうしてもうまくできません。TFのみを作ってました。
2
2
 
3
3
  ファイルの読み込み方がわからないので直接英文を打ち込みました。
4
4
 

1

自分で作ったプログラムを載せました。

2016/12/18 16:52

投稿

manchester
manchester

スコア7

test CHANGED
File without changes
test CHANGED
@@ -1 +1,67 @@
1
- Javaを独学で勉強中のJava初心者です。Javaで英文テキストファイルを読み込みそれぞれの英単語のTFIDFを表示させるプログラムを作りたいのですが、どうしてもうまくできません。TFのみを表示させるプログラムでも良いので教えください。流れだけでもよいのでお願います
1
+ Javaを独学で勉強中のJava初心者です。Javaで英文テキストファイルを読み込みそれぞれの英単語のTFIDFを表示させるプログラムを作りたいのですが、どうしてもうまくできません。TFのみを作っ見ま
2
+
3
+ ファイルの読み込み方がわからないので直接英文を打ち込みました。
4
+
5
+ 降順表示をしたいです。
6
+
7
+
8
+
9
+ import java.util.*;
10
+
11
+ import java.util.Map.Entry;
12
+
13
+ import java.util.Arrays;
14
+
15
+
16
+
17
+ public class TF2{
18
+
19
+ public static void main(String[] args) {
20
+
21
+ double TF;
22
+
23
+ String str =("//英単語の文章 長いので省略");
24
+
25
+ String[] a = str.split("\\s", 0);
26
+
27
+ Map<String, Integer> m = new HashMap<String, Integer>();
28
+
29
+ int size=0;
30
+
31
+ for (String s : a) {
32
+
33
+ int v;
34
+
35
+ if (m.containsKey(s)) {
36
+
37
+ // Mapに登録済み
38
+
39
+ v = m.get(s) + 1;
40
+
41
+ size++;
42
+
43
+ } else {
44
+
45
+ // Mapに未登録
46
+
47
+ v = 1;
48
+
49
+ size++;
50
+
51
+ }
52
+
53
+ m.put(s, v);
54
+
55
+ }
56
+
57
+ for (Entry<String, Integer> entry : m.entrySet()) {
58
+
59
+ TF=((double)entry.getValue() / size) * 100;
60
+
61
+ System.out.printf("%s : %2f%n", entry.getKey(),TF);
62
+
63
+ }
64
+
65
+ }
66
+
67
+ }