Как найти самые используемые слова в книге посредством питона?

Есть книга в TXT формате. Требуется найти частоту используемых слов и сохранить первые 1000 слов в файл. Не могу понять в какую сторону мне копать. Пока изучаю https://courses.edx.org/courses/course-v1:Microsof... .
  • Вопрос задан
  • 1414 просмотров
Решения вопроса 2
@deliro
from collections import Counter
x = open('Война и мир.txt', encoding='utf8').read()
c = Counter(x.split())  # Сплит нужен, чтобы вышел список слов, иначе посчитаем частотность символов
c.most_common()
Ответ написан
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
import string
from collections import Counter

punctuation_map = dict((ord(char), None) for char in string.punctuation)
prepositions = ['в', 'без', 'до', 'из', 'к', 'на', 'по', 'о', 'от', 'перед', 'при', 'через', 'с', 'у', 'за', 'над', 'об', 'под', 'про', 'для']

text = open('WarAndPeace_rus.txt').read()
clean_data = text.translate(punctuation_map) #Убираем знаки пунктуации
words = Counter([word.strip().lower() for word in clean_data.split() if word not in prepositions]) #Приводим все слова к нижнему регистру и убираем предлоги

with open('words.txt', 'w') as fh:
    fh.write('\n'.join([w[0] for w in words.most_common(1000)]))
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
@vilgeforce
Раздолбай и программист
Копайте в сторону словарей в Питоне, например.
Ответ написан
Комментировать
Denormalization
@Denormalization
nlpx.net/archives/29 раздел "Частотный анализ", оно?
Ответ написан
vt4a2h
@vt4a2h
Senior software engineer (C++/Qt/boost)
Делаете мапу, где ключ - слово, а значение частота. Каждый раз, когда слово встречается увеличивайте частоту на 1. Потом берете 1000 максимальных частот и выводите ключи в файл. Вот и все.
Ответ написан
crawlander
@crawlander
На основе этой программы можно допилить https://ru.wikiversity.org/wiki/%D0%9F%D1%80%D0%B8...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы