GoLang - чтение большого текстового файла кусками - PullRequest
0 голосов
/ 02 мая 2020

Ниже приведен код для чтения файла, разделения и появления слова:

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) Можете ли вы предложить пакет обработки текста для подсчета слов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...