【发布时间】:2018-07-24 19:56:08
【问题描述】:
或者问题也可能是: Go 获取词袋的方法是什么?
例如,如果输入是
"This is a big apple tree. I love big big apple! 42"
那么我如何获得每个单词计数的 map 输出(并且,如果方便的话,沿途进行一些简单的字符串解析,例如只保留字母并降低它们):
{this=1, is=1, a=1, big=3, apple=2, tree=1, i=1, love=1}
一些 Kotlin 代码的简单版本可以是:
fun main(args: Array<String>) {
val inputText = "This is a big apple tree. I love big big apple! 42"
val map = inputText.replace("[^a-zA-Z]+".toRegex(), " ") // only keep letters
.trim()
.toLowerCase()
.split(" ")
.groupingBy { it }
.eachCount()
println(map)
}
输出{this=1, is=1, a=1, big=3, apple=2, tree=1, i=1, love=1}
我想知道用 Golang 做这种事情的等效方法是什么。 希望它既快速又易于阅读。
【问题讨论】:
-
Go 的方式是显而易见的方式:play.golang.org/p/XPTJ5q_-mSv
-
@Peter 谢谢 Peter,我是 Go 新手,听说 Go 很容易阅读。只是想更好地体验 Go 做这些事情,因为我正在考虑将一些项目从 Java 迁移到 Go。 BTW 是否可以在 Go 中进行正则表达式操作?
-
你应该去参观一下,感受一下 Go:tour.golang.org