Как использовать NLTK, чтобы найти распределение частот конкретных слов в CSV-файле - PullRequest
0 голосов
/ 03 февраля 2019

Я только начинаю на python и nltk и пытаюсь прочитать записи из файла csv и определить частоту конкретных слов во всех записях.Я могу сделать что-то вроде этого:

with f:
    reader = csv.reader(f)

    # Skip the header
    next(reader)

    for row in reader:
        note = row[4]
        tokens = [t for t in note.split()] 

        # Calculate row frequency distribution
        freq = nltk.FreqDist(tokens) 
        for key,val in freq.items(): 
            print (str(key) + ':' + str(val))

        # Plot the results
        freq.plot(20, cumulative=False)

Я не уверен, как изменить это так, чтобы частота встречалась во всех записях и чтобы были включены только слова, которые меня интересуют.Извиняюсь, если это действительно простой вопрос.

1 Ответ

0 голосов
/ 04 августа 2019

Вы можете определить счетчик вне цикла freq_all = nltk.FreqDist(), а затем обновить его в каждой строке freq_all.update(tokens)

with f:
    reader = csv.reader(f)

    # Skip the header
    next(reader)
    freq_all = nltk.FreqDist()

    for row in reader:
        note = row[4]
        tokens = [t for t in note.split()] 

        # Calculate raw frequency distribution
        freq = nltk.FreqDist(tokens) 
        freq_all.update(tokens)
        for key,val in freq.items(): 
            print (str(key) + ':' + str(val))

        # Plot the results
        freq.plot(20, cumulative=False)

    # Plot the overall results
    freq_all.plot(20, cumulative=False)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...