Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
13
Task/Word-frequency/Java/word-frequency-1.java
Normal file
13
Task/Word-frequency/Java/word-frequency-1.java
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
30
Task/Word-frequency/Java/word-frequency-2.java
Normal file
30
Task/Word-frequency/Java/word-frequency-2.java
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
void printWordFrequency() throws URISyntaxException, IOException {
|
||||
URL url = new URI("https://www.gutenberg.org/files/135/135-0.txt").toURL();
|
||||
try (BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()))) {
|
||||
Pattern pattern = Pattern.compile("(\\w+)");
|
||||
Matcher matcher;
|
||||
String line;
|
||||
String word;
|
||||
Map<String, Integer> map = new HashMap<>();
|
||||
while ((line = reader.readLine()) != null) {
|
||||
matcher = pattern.matcher(line);
|
||||
while (matcher.find()) {
|
||||
word = matcher.group().toLowerCase();
|
||||
if (map.containsKey(word)) {
|
||||
map.put(word, map.get(word) + 1);
|
||||
} else {
|
||||
map.put(word, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
/* print out top 10 */
|
||||
List<Map.Entry<String, Integer>> list = new ArrayList<>(map.entrySet());
|
||||
list.sort(Map.Entry.comparingByValue());
|
||||
Collections.reverse(list);
|
||||
int count = 1;
|
||||
for (Map.Entry<String, Integer> value : list) {
|
||||
System.out.printf("%-20s%,7d%n", value.getKey(), value.getValue());
|
||||
if (count++ == 10) break;
|
||||
}
|
||||
}
|
||||
}
|
||||
43
Task/Word-frequency/Java/word-frequency-3.java
Normal file
43
Task/Word-frequency/Java/word-frequency-3.java
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class WordCount {
|
||||
public static void main(String[] args) throws IOException {
|
||||
Path path = Paths.get("135-0.txt");
|
||||
byte[] bytes = Files.readAllBytes(path);
|
||||
String text = new String(bytes);
|
||||
text = text.toLowerCase();
|
||||
|
||||
Pattern r = Pattern.compile("\\p{javaLowerCase}+");
|
||||
Matcher matcher = r.matcher(text);
|
||||
Map<String, Integer> freq = new HashMap<>();
|
||||
while (matcher.find()) {
|
||||
String word = matcher.group();
|
||||
Integer current = freq.getOrDefault(word, 0);
|
||||
freq.put(word, current + 1);
|
||||
}
|
||||
|
||||
List<Map.Entry<String, Integer>> entries = freq.entrySet()
|
||||
.stream()
|
||||
.sorted((i1, i2) -> Integer.compare(i2.getValue(), i1.getValue()))
|
||||
.limit(10)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
System.out.println("Rank Word Frequency");
|
||||
System.out.println("==== ==== =========");
|
||||
int rank = 1;
|
||||
for (Map.Entry<String, Integer> entry : entries) {
|
||||
String word = entry.getKey();
|
||||
Integer count = entry.getValue();
|
||||
System.out.printf("%2d %-4s %5d\n", rank++, word, count);
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue