2016-04-26 30 views
0

我想分析一個包含短篇故事的文本文件。現在我想分析它來製作不同類型的圖表。我發現有很多方法可以讀取保存數據的文本文件,但不是真正的文字。現在我知道我可以做這樣的事情:Matplotlib和Numpy。我有一個單詞文本文件,並且想要分析以生成一個圖形

f = open('short_story.txt') 
for line in f: 
    for word in line.split(): 

要計算文件中的單詞。但是,當我使用numpy和matplotlib時,這是合適的方式。如果任何人都可以解釋如何使用文字文本文件,而不是數據編號,那就太棒了。

************ 

「無線電對戰艦,呃?」他喃喃道。無線發射器是一個 許多現代創新的弗吉尼亞沒有吹噓的。早在 之前很久以前,她曾在島上收集幹椰子和殼,儘管丹只在一年前爲她節省了一點點錢。

「有人願意在戴維斯島的軍艦上做什麼?」名字 引起了模糊的記憶。 「戴維斯島?」他重複着,在黑海凝視着 。 「當然!」突然間他來到了他的面前。 ,他對 時間,他在他的小輩年中放棄了大學五年前閱讀,在報紙的文章,以 遵循冒險的號召。

該帳戶已經處理了太陽日食,只能從 太平洋上的某些點看到。一位在西方大學 主持下的獵人博士,駕駛他的儀器和助手到達戴維斯島 ,研究太陽電暈期間的幾個珍貴 時刻的陰影遮住太陽,並觀察 位移某些明星作爲 愛因斯坦相對論的relativity.`

f = open('story.txt','r') 
words = [x for y in [l.split() for l in f.readlines()] for x in y] 
print sorted([(w, words.count(w)) for w in set(words)], key = lambda x:x[1], reverse=True)[:5] 

發現的前五個詞的測試。 現在我要繪製它像一個柱狀圖,我得到這些頂級五個字......

[('the', 4826), ('of', 2276), ('and', 1825), ('a', 1761), ('to', 1693)] 

回答

0

可以從您的文件中複製的部分?

你可以做這樣的事情:

#!/usr/bin/python 

file=open("txtfile","r+") 
wordcount={} 
for word in file.read().split(): 
    if word not in wordcount: 
     wordcount[word] = 1 
    else: 
     wordcount[word] += 1 
print (word,wordcount) 
file.close(); 

你會得到這樣的事情:

>>> goat {'goat': 2, 'cow': 1, 'Dog': 1, 'lion': 1, 'snake': 1} 

其他方式:

#!/usr/bin/python 

file=open("txtfile","r+") 
wordcount={} 
for word in file.read().split(): 
    if word not in wordcount: 
     wordcount[word] = 1 
    else: 
     wordcount[word] += 1 
for k,v in wordcount.items(): 
    print k, v 

,你會得到:

word wordcount 
goat 2 
cow  1 
dog  1..... 
+0

Idk如果您的意思是迄今爲止我的程序或文本文件中的一段。下面是文本文件的一部分,它是一個故事的一部分,只是文字。^^^ – LizardWizard

+0

@LizardWizard你想繪製什麼?我不明白。 – Deadpool

+0

我想用不同的方式分析數據。例如,我想計算使用的前5個單詞,然後使用發現的數據製作圖表。 – LizardWizard

0

你可以得到的頻率從numpy的陣列中的這種方式,每個元素:

import numpy as np 
x = np.array([1,1,1,2,2,2,5,25,1,1]) 
y = np.bincount(x) 
ii = np.nonzero(y)[0] 
np.vstack((ii,y[ii])).T 
# array([[ 1, 5], 
     [ 2, 3], 
     [ 5, 1], 
     [25, 1]]) 

爲了更好的分詞,你可以使用一些工具NLP,即word tokenizer from NLTK

Similar question關於使用matplotlib進行這些數據的可視化。

+0

謝謝你幫助了很多! – LizardWizard

相關問題