我很难在一个相当大的文档中找到每个句子的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外观/句子除以平均句子长度,但我无法想出一些代码。