如何找到每个句子的POS-TAG的平均频率

时间:2016-12-23 23:19:42

标签: python nltk counting pos-tagger word-frequency

我很难在一个相当大的文档中找到每个句子的pos-tag的平均频率(10,000个单词分成段落和标点)。 (例如,每个句子出现“NNP”的频率)。

这就是我想出的。首先我做的是将我的数据(来自联合语料库状态的文本文件)标记化,然后按如下方式应用pos-tags;

train_text = state_union.raw("2005-GWBush.txt")
sample_text = state_union.raw("2006-GWBush.txt")

custom_sent_tokenizer = PunktSentenceTokenizer(train_text)

tokenized = custom_sent_tokenizer.tokenize(sample_text)

def process_content():
   try:
       for i in tokenized:
        words = nltk.word_tokenize(i)
        tagged = nltk.pos_tag(words)
          print(tagged)

    except Exception as e:
    print(str(e))

process_content()

之后我尝试使用例如找到pos标签的平均频率。

tagged = [('the', 'DT'), ('elephant', 'NN')] 

from collections import Counter
counts = Counter(tag for word,tag in tagged)
print(counts)

我可以在文本中找到目标pos-tag的平均频率,但我不知道如何在整个文本中找到每个句子的pos-tag的平均频率。我认为上述方法会有效,因为我已经将其标记为遗产但遗憾的是没有。然后我想把平均,目标pos-tag外观/句子除以平均句子长度,但我无法想出一些代码。

0 个答案:

没有答案