2015-11-28 8 views
0

Я создал анализатор содержания текста в питоне, который анализирует данные из файла и выводатекста анализатор содержания в питоне

  1. Общее количество слов
  2. Графа уникальных слов
  3. Количества предложений

Вот код:

import re 
import string 
import os 
import sys 

def function(s): 
    return re.sub("[%s]" % re.escape(string.punctuation), '', s.lower()) 

def main(): 
    words_list = [] 

    with open(sys.argv[1], "r") as f: 
     for line in f: 
      words_list.extend(line.split()) 

    print "Total word count:", len(words_list) 

    new_words = map(function, words_list) 

    print "Unique words:", len(set(new_words)) 

    nb_sentence = 0 
    for word in words_list: 
     if re.search(r'[.!?][' "'" '"]*', word): 
      nb_sentence += 1 

    print "Sentences:", nb_sentence 

if __name__ == "__main__": 
    main() 

Теперь я пытаюсь рассчитать среднюю длину предложения в словах, найти часто используемые фразы (фраза из 3 или более слов, используемых более 3 раз), и составить список используемых слов в порядке убывания частоты. Может ли кто-нибудь помочь?

ответ

0

Вот некоторые подходы, которые могут помочь:

  • Для средней длины предложения в словах, можно разделить на периоды, чтобы получить массив предложений, а затем разделить каждое предложение в этом массиве на пространствах, чтобы получить массив слов в каждом предложении. Затем вы можете рассчитать длину каждого массива слов в массиве предложений и усреднить эти длины.

  • Чтобы сделать список слов, используемых в порядке убывания частоты, вы можете разбить текст на пробелы на каждое слово и сохранить количество в словаре, где ключ - это слово, а значение - количество вхождений , Затем вы можете перебирать ключи в этом словаре, создавать кортежи слов и счетчиков и сортировать эти кортежи, чтобы выяснить наиболее распространенные слова. Вот решение связанной проблемы, решение для общих символов в строке: https://gist.github.com/geoff616/6df5320a1f720411a180

  • Для часто используемых фраз (фраза из 3 слов, используемых более 3 раз), вы можете выполнить тот же расчет, что и выше, но разделить на каждое третье пространство (с регулярным выражением) вместо того, чтобы анализировать каждое слово индивидуально и отфильтровывать что-либо со счетом меньше 3. Вычисление общих фраз из слов 3 or more сложнее, но если вы решите все предыдущие проблемы, ответ может стать более очевидным.

 Смежные вопросы

  • Нет связанных вопросов^_^