Ниже приведен код для чтения файла, разделения и появления слова:
package main
import (
"fmt"
"io/ioutil"
"strings"
)
type text []string
func (wordList text) wordCount() map[string]int {
keyCounts := make(map[string]int)
for _, word := range wordList {
_, ok := keyCounts[word]
if ok {
keyCounts[word] += 1
} else {
keyCounts[word] = 1
}
}
return keyCounts
}
func main() {
b, err := ioutil.ReadFile("shakespeare.txt")
if err != nil {
fmt.Print(err)
}
//fmt.Println(b)
str := string(b)
var words text = strings.Fields(str)
//fmt.Println(text)
var d [25]string
n := copy(d[:], words[:25])
fmt.Println("Number of elements copied: ", n)
for i := 0; i < len(d); i++ {
d[i] = "'" + d[i] + "'"
}
fmt.Println(d)
fmt.Println(len(words))
fmt.Println(words.wordCount()["MIDSUMMER-NIGHT'S"])
}
и file.txt
имеет нижнее содержание:
日本語 读者 你好吗
A MIDSUMMER-NIGHT'S DREAM
Now , fair Hippolyta , our nuptial hour
Draws on apace : four happy days bring in
Another moon ; but O ! methinks how slow
This old moon wanes ; she lingers my desires ,
Like to a step dame , or a dowager
Long withering out a young man's revenue .
1) Можно ли читать file.txt
кусками? потому что file.txt
размер в ГБ
2) Можете ли вы предложить пакет обработки текста для подсчета слов?