2016-12-24 13 views
0

私はこのタグ付きテキスト(そのように書式設定された)をとり、各文のposタグDTの平均頻度を探したいと思います。例。 DTは文1では1/3語、文2では1/3語である。次に、これらを追加して、テキストの文章数(この例では2)で割ります。これにより、1文につきDTの平均的な出現が得られます。平均POS-TAG頻度

from collections import Counter 
import nltk 

tagged_text = [('A', 'DT'), ('hairy', 'NNS'), ('dog', 'NN')] 
[('The', 'DT'), ('mischevious', 'NNS'), ('elephant', 'NN')] 

for eachSentence in tagged_text: 
    Counter(tag for word,tag in tagged)/len(eachsentence.split()) 

total = sum(counts.values()) 

float(average) = sum(counts.values())/len(tagged_text.sents()) 
print(float(average)) 

私にとって大きな問題は、私は(私はそれが何であるかを定義する方法がわからない)の周りを取得する方法はないないeachSentenceの一部です。私はこのコードを、同じ形式の何百もの文に適用できるようにしたい。私はコードに多くの問題があることを知っています。誰かがそれらを修正してくれれば、私は非常に感謝します。

+0

あなたが何を求めているのか分かりません。 'eachSentence'変数に何百もの文をどのように割り当てることができるか知りたいですか? – oschlueter

答えて

0

私はまたあなたが何をしているのか本当に確信していません。おそらく、コードに入れようとする前に、あなたのアイデアや要件をもう少し(あなたの頭の中/紙の中に)構造化しようとするべきでしょう。すべての3個のタグが表示され

Likelihood that NN appears in a sentence: 1.0 
Likelihood of NN in complete corpus: 0.3333333333333333 
Likelihood that NNS appears in a sentence: 1.0 
Likelihood of NNS in complete corpus: 0.3333333333333333 
Likelihood that DT appears in a sentence: 1.0 
Likelihood of DT in complete corpus: 0.3333333333333333 

に結果の

from collections import defaultdict 

tagged_text = [[('A', 'DT'), ('hairy', 'NNS'), ('dog', 'NN')], [('The', 'DT'), ('mischevious', 'NNS'), ('elephant', 'NN')]] 

d = defaultdict(int) 
t = 0 
for sentence in tagged_text: 
    for tupl in sentence: 
     tag = tupl[1] 
     d[tag] += 1 
     t += 1 

for tag in d: 
    print("Likelihood that %s appears in a sentence: %s" % (tag, str(float(d[tag]/len(tagged_text))))) 
    print("Likelihood of %s appearing in complete corpus: %s" % (tag, str(float(d[tag]/t)))) 

:あなたの説明とコードに基づいて、私は2人の可能な、次のようにして得ることができるあなたは後にしている人物の を考えることができますしたがって、1つの文に現れる可能性は1です。3つのタグは両方とも2回(合計6つ)出現するため、出現する確率は1/3です(文の配分に関係しません)。 しかし、もう一度、これがあなたの後であるかどうかは分かりません。

+0

私はあなたのコードをファイルに書きました。私のファイルの内容は次のようになります:[[( 'In'、 'IN')、( '助け'、 'VBG')、( 'the'、 'DT')、( 'players'、 'NNS') 、 '('、 ''、 ''、 ''、 ''、 ''、 '')今、 'tag = tupl [1]'行でインデックスエラーが発生すると、インデックス1が範囲外です。なぜか分からない。 – Bambi