2013-05-05 2 views
2

Анализ включал следующее:Я хочу создать программу, которая может анализировать скачанный текстовый файл в Python

  1. Сколько слов в текстовых данных?
  2. Сколько раз ключевое слово отображается в текстовых данных?

    import os 
    f= open(os.path.join(os.getcwd(), 'test1.txt'), 'r') 
    dataString =f.read() 
    

Этот код просто открыть загруженный текстовый файл. Я понятия не имею, что делать дальше. Я полностью застрял. Пожалуйста, помогите мне. Это просто хорошо дать мне совет или намек.

+0

Это вопрос, который не охватывает дух SO ... Мы не здесь, чтобы объяснить вам, как это делается. Это проблема, легко разрешимая путем чтения Python [docs] (http://docs.python.org/2/library/stdtypes.html). – whatyouhide

+0

Я предполагаю, что этот вопрос скоро будет закрыт, так как на SO есть много q/a, которые уже рассматривают стратегии решения этой проблемы. Я бы посоветовал вам не разочаровываться в том, что он закрыт/Что я узнал, так это то, что, прежде чем я действительно захочу задать вопрос, я начинаю придумывать явный вопрос. Когда я печатаю вопрос, модуль SO заполняет возможные связанные вопросы чуть ниже заголовка вопроса.Посмотрите внимательно на них. вы часто найдете свой ответ. Я сделал это сейчас, чтобы подтвердить, и я нашел отличные ответы на ваш вопрос. – PyNEwbie

+0

спасибо, что ответили на мой глупый вопрос. Я действительно мало знаю о программировании и английском. Я студентка где-то в Азии. Мне сложно выполнить какое-то программирование. Потому что немного мало информации о программировании на питоне, написанном на моем языке. Я посетил веб-страницу документов python, но я не могу понять документы и не знаю, как их использовать. Я все равно хватаюсь за соломинки здесь. – user2351602

ответ

1

Если вы хотите совместить количество уникального слова, которое вам нужно будет сделать так, чтобы считать все без таких случаев, как «привет», вмешиваясь в расчет.

print len(set(re.findall('\w+', dataString.lower()))) # Number of unique words 
print len(re.findall('\w+', dataString.lower())) # Total number of words 

Для отображения количества отсчетов конкретного слова, которое вы можете использовать list comprehension.

words = re.findall('\w+', dataString.lower()) 
print len([word for word in words if word == 'hello']) 

Или вы можете использовать count.

print words.count('hello') 
1

В dataString вы захотите пройти каждое слово и посчитать его. Таким образом, вам понадобится способ идентифицировать отдельные слова в строке. Вы можете использовать метод string.split или немного regex, чтобы разделить слова чуть более чисто.

-1

Чтобы получить количество слов, используйте

f = open('test.txt, 'r') 
text = f.read() 
f.close() 
words = text.split(None) 
ec = len(words) 

Чтобы получить сколько раз слово встречается в файле, добавьте

swc = 0 
for word in words: 
    if word == 'word2count': 
     swc +=1`. 
+1

Не очень хороший совет. 'wc = len (words)' и 'swc = words.count ('targetword')' значительно предпочтительнее повторения грубой силы. Изучите стандартные библиотеки lib и API для основных типов данных. – PaulMcG

+0

Строка 'for word in words do:' недействительна: 'do' не является оператором Python. – BioGeek

+0

@PaulMcGuire: Спасибо за совет. Я забыл об этой команде. – refi64

0

Я не буду решать проблему, но я объясню, как вы будет делать все, потому что Stackoverflow не был создан для вашей работы за вас, но я собираюсь указать вам на то, что вам нужно:

Сколько слов:

dataString.split() возвращает список, где каждый элемент является слово в файле, так что давайте делать

Сколько раз слово повторяет:

если вы хотите, чтобы проверить, сколько раз происходит определенное слово, вы теперь знаете, как получить каждое слово в списке, просто перейдите по этому списку, и вы можете либо использовать свой собственный счетчик, либо добавить 1 к нему каждый раз, когда слово in dataString.split() или вы можете использовать the collections Counter class

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