如何计算数据集中每个标签的推文数量,然后按标签拆分数据(java)?
How to count the number of tweets for each label in the dataset and then split data by labels (java)?
这是我的代码,它将数据拆分成句子。每个句子都标有情感。我需要计算每个标签(情感)的句子数量,并根据标签拆分数据集。
public class DataProcessor {
public static void main(String[] args) throws FileNotFoundException {
try (Scanner read = new Scanner (new File("E:\blabla.txt"))) {
read.useDelimiter("::");
String tweet;
while(read.hasNext())
{
tweet = read.next();
System.out.println(tweet + " "+ "\n"); //just for debugging
}
}
}
}
输出看起来像这样
喜悦:
今天考试了但我还是很好
public static void main(String[] args) throws FileNotFoundException {
HashMap<String, List<String>> map = new HashMap<>();
try (Scanner read = new Scanner (new File("E:\blabla.txt"))) {
read.useDelimiter("::");
String tweet;
while(read.hasNext())
{
tweet = read.next();
String[] split = tweet.split(":");
String key = split[0];
if (!map.containsKey(key)) {
map.put(key, new ArrayList<>());
}
map.get(key).add(split[1]);
}
}
}
map
包含了所有带有句子的情绪。要获得句子的数量,我们称它们为推文,因为有时它们包含多个句子,您可以使用 map.get("joy").size()
.
如果推文也可以包含:
我会把tweet.split(":");
改成tweet.split(":", 2);
这样只用第一个分隔符来分割
要检查结果 map
您可以使用此代码:
map.forEach((e, t) -> {
System.out.println(e);
t.forEach(System.out::println);
} );
这是我的代码,它将数据拆分成句子。每个句子都标有情感。我需要计算每个标签(情感)的句子数量,并根据标签拆分数据集。
public class DataProcessor {
public static void main(String[] args) throws FileNotFoundException {
try (Scanner read = new Scanner (new File("E:\blabla.txt"))) {
read.useDelimiter("::");
String tweet;
while(read.hasNext())
{
tweet = read.next();
System.out.println(tweet + " "+ "\n"); //just for debugging
}
}
}
}
输出看起来像这样
喜悦: 今天考试了但我还是很好
public static void main(String[] args) throws FileNotFoundException {
HashMap<String, List<String>> map = new HashMap<>();
try (Scanner read = new Scanner (new File("E:\blabla.txt"))) {
read.useDelimiter("::");
String tweet;
while(read.hasNext())
{
tweet = read.next();
String[] split = tweet.split(":");
String key = split[0];
if (!map.containsKey(key)) {
map.put(key, new ArrayList<>());
}
map.get(key).add(split[1]);
}
}
}
map
包含了所有带有句子的情绪。要获得句子的数量,我们称它们为推文,因为有时它们包含多个句子,您可以使用 map.get("joy").size()
.
如果推文也可以包含:
我会把tweet.split(":");
改成tweet.split(":", 2);
这样只用第一个分隔符来分割
要检查结果 map
您可以使用此代码:
map.forEach((e, t) -> {
System.out.println(e);
t.forEach(System.out::println);
} );