Java 做 wordcount
有个 3 列的 csv 文件
title,text,date exampleTitle,This is is is an example example, April 2022 The 2nd Title,This this is an an example 4 K k,April 2023 |
用 Java 实现:遍历每一行,每次先输出第 1 列,再将第 2 列拆分为单词,输出每个单词的出现次数。要求不统计数字,不统计单个字母,仅大小写不同的单词算一个单词。上面计算结果应当是:
exampleTitle an 1 example 2 is 3 this 1 The 2nd Title an 2 example 1 is 1 this 2 |
编写SPL脚本:
A |
B |
|
1 |
for T("data.csv") |
>output(A1.title) |
2 |
=A1.text.words().(lower(~)) |
|
3 |
=B2.groups(~;count(1)) |
|
4 |
=B3.select(len(#1)>1) |
|
5 |
>output(B4.export()) |
A1:将csv解析为二维表,并循环每一行。
B2:将text列拆分单词,并转为小写。
B3:统计每个单词的出现次数。
B4:过滤出字符数大于1的单词。
Java 集成 SPL 可参考 Java 如何调用 SPL 脚本
问题来源:https://stackoverflow.com/questions/71804040/how-do-i-count-word-occurrences-in-a-csv-file
英文版 https://c.scudata.com/article/1722216166953