2017-09-13 3 views
2

テキストサンプルの単純移動ウィンドウ平均型/トークン比(TTR)を計算したいと思います。私はテキスト全体のTTRを計算する方法、または最初の50単語を選択し、そのためのTTRを計算する方法を知っています。私がする必要があると思うのは、一度に50単語以上を繰り返すループを作成し、毎回+1を動かしてウィンドウがテキストを移動するようにし、各ウィンドウのTTRをリストに追加しますその後平均。それは私が立ち往生しているループ/チャンク/ +1部分です。Pythonでテキストの塊を順番に分析するための '移動ウィンドウ'を適用するには?

これは私が(私が思う)ループでしたいことです。テキストが既に等:

window = text[0:50] 
wordCount = collections.Counter(window) 
uniqueWords = list(wordCount.keys()) 
TTR = (len(uniqueWords))/(len(window)) 
windowsTTR.append(TTR) 

下がってきた私はここで他の回答を読んで、だけでなく、列挙し、itertools.isliceのドキュメントが、それでも私の問題を解決するように見えることはできませんしています。感謝の意をもって受け入れられたどんな助けでも、私はPythonにはかなり新しいです。

+0

あなたがSOにここで必要な答えを得るときあなたは、「受け入れられ、それをマークし、してください必要があります'あなたが十分な評判を持っているときは、それを上告することができます。 –

答えて

0

開始位置に従ってループ本体をパラメータ化します。次に、可能なすべての開始位置を反復処理します。

window_width = 50 
last_index = len(text) - window_width 
for start in range (last_index): 
    window = text[start:start+window_width] 
    wordCount = collections.Counter(window) 
    uniqueWords = list(wordCount.keys()) 
    TTR = (len(uniqueWords))/(len(window)) 
    windowsTTR.append(TTR) 

あなたにも、そのをパラメータ、テキストを大きなステップを取る必要がある場合:

window_width = 50 
last_index = len(text) - window_width 
step = 4 # shift 4 positions at a time 
for start in range (0, last_index, step): 
関連する問題