gpt4 book ai didi

java - 使用 java 从推文中排除一些单词

转载 作者:行者123 更新时间:2023-12-02 04:12:27 25 4
gpt4 key购买 nike

我正在尝试编写一个程序来检索特定用户的推文并计算最常用的单词。在我的代码中,除了重复次数之外,我还得到了用户时间轴中写入的每个单词。但我只需要获取最常用的单词和计数。

我如何修复我的代码来做到这一点?

for(Status status2 : status){
status2.getText();
//System.out.println(status2.getCreatedAt());

String s = status2.toString();
String[] splitted = s.split(" ");
HashMap hm = new HashMap();
int x;

for (int i = 0; i < splitted.length; i++) {
if (!hm.containsKey(splitted[i])) {
hm.put(splitted[i], 1);
} else {
hm.put(splitted[i], (Integer) hm.get(splitted[i]) + 1);
}
for (Object word : hm.keySet()){
System.out.println(word + " " + (Integer) hm.get(word));
}
}
}

最佳答案

我使用 String 变量的 list 来完成此操作,但相同的概念也适用于推文。只需循环每条推文并获取消息所在的 String,而不是循环遍历 List 对象中的 String 变量。

  • 在推文循环之外初始化您的 map 。当您在循环内初始化它时,它将为每条推文重新创建 map 。这将删除您找到的所有数据。
  • 在推文循环之外输出 map 中的值。否则,您将在每次推文迭代时输出数据。这可能是期望的结果,但从我收集的情况来看,这不是您想要的结果。
  • 生活质量类型更新,但您应该使用 foreach 循环来循环拆分数组。无需为 int 计数器使用额外的内存。

结果的问题在于,您在每次迭代中都重新创建了 map ,从而清除了之前的所有数据。如果您在循环之前初始化 map ,并且不重新初始化每次迭代,则可以跟踪所有推文中的数据。这样做的示例是:

public static void main(String[] args) throws Exception {

List<String> statusTweets = new ArrayList<String>();
statusTweets.add("At the bar");
statusTweets.add("At the house");
statusTweets.add("Out with friends");

Map<String,Integer> wordHits = new HashMap<String,Integer>();

for(String status : statusTweets){
String[] statusSplitOnSpace = status.split(" ");
for(String wordInStatus : statusSplitOnSpace){
if (!wordHits.containsKey(wordInStatus)) {
wordHits.put(wordInStatus, 1);
} else {
wordHits.put(wordInStatus, wordHits.get(wordInStatus)+1);
}
}
}

for(Entry<String,Integer> wordHit : wordHits.entrySet()){
System.out.println("Word (" + wordHit.getKey() + ") was found " + wordHit.getValue() + " times.");
}

}

循环结束后,您可以使用找到的数据执行您需要的操作。找到更高的字数,删除某些单词等。我只是做了一个循环来输出结果。这给了我:

Word (the) was found 2 times.
Word (with) was found 1 times.
Word (bar) was found 1 times.
Word (At) was found 2 times.
Word (house) was found 1 times.
Word (friends) was found 1 times.
Word (Out) was found 1 times.

关于java - 使用 java 从推文中排除一些单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33678921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com