Nlp NLTK FREKDIST:获取集合中填充的总频率计数

Nlp NLTK FREKDIST:获取集合中填充的总频率计数,nlp,nltk,Nlp,Nltk,作为NLP的新手,我使用FreqDist内置函数构建了一个双随机数频率列表。虽然有一组字母的频率计数,但我想用一个起始填充来计算概率 因为没有单克计数。是否有任何内置函数可用于计算集合的第一个字母与匹配的频率 例如,我有一个带有计数的字母表对列表:[((“”,'n'),100),((“”,'a'),100)]。''的总计数为2 我的目标是计算等于count(“”,'n'))/count(“”),等于1/2的概率 from nltk.util import ngrams, pad_sequence

作为NLP的新手,我使用FreqDist内置函数构建了一个双随机数频率列表。虽然有一组字母的频率计数,但我想用一个起始填充来计算概率

因为
没有单克计数。是否有任何内置函数可用于计算集合的第一个字母与
匹配的频率

例如,我有一个带有计数的字母表对列表:
[((“”,'n'),100),((“”,'a'),100)]
''
的总计数为2

我的目标是计算等于
count(“”,'n'))/count(“”)
,等于1/2的概率

from nltk.util import ngrams, pad_sequence
from collections import Counter

bigram_total_word = FreqDist()

for word in training_set:
    word_with_padding = pad_sequence(word, 2, pad_left = True, left_pad_symbol='<s>')
    bigram = ngrams(word_with_padding,n=2)
    bigram_total_word = bigram_total_word + FreqDist(list(bigram))

print(bigram_total_word.most_common(30))
[(('i', 'n'), 6692), (('e', 'r'), 5676), (('e', 's'), 4528), (('e', 'd'), 4415), (('<s>', 's'), 4371), (('t', 'i'), 4357), (('o', 'n'), 4346), (('r', 'e'), 4181), (('t', 'e'), 3941), (('n', 'g'), 3847), (('<s>', 'c'), 3729), (('e', 'n'), 3659), (('a', 't'), 3586), (('a', 'n'), 3523), (('s', 't'), 3213), (('l', 'e'), 3207), (('<s>', 'p'), 2995), (('a', 'l'), 2949), (('a', 'r'), 2909), (('r', 'a'), 2870), (('r', 'i'), 2781), (('n', 't'), 2751), (('o', 'r'), 2589), (('l', 'i'), 2576), (('<s>', 'a'), 2521), (('i', 's'), 2521), (('<s>', 'b'), 2387), (('d', 'e'), 2369), (('<s>', 'd'), 2337), (('c', 'o'), 2290)]
从nltk.util导入ngrams,pad_序列
从收款进口柜台
bigram\u total\u word=FreqDist()
对于训练集中的word:
带填充的单词=填充顺序(单词,2,填充左=真,左填充符号=“”)
bigram=ngrams(带填充的单词,n=2)
bigram_total_word=bigram_total_word+FreqDist(列表(bigram))
打印(大字、大字、大字、大字、大字、大字、大字、大字、大字、大字、大字、大字、大字、大字、大字、大字、大字、大字、大字、大字、大字、大字)
(五,“e”、“s”的)、4528、((“e”、“d”的)、4415、(((“这些”的)、4415、、((“s”的)、4415、、(((“我”、“n’)、第6692、6692)、6692、6692、6692、(((“我”、“我”、“我”、“n’,、6692)、6692、((((((“e”、“r”、“r”、“r”、“r’、)、5676)、5676)、5676)、5676)、5676)、5676)、5676、((((((((((((((((((((((''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''l'),2949),(‘a’,‘r’,‘2909),(‘a’,‘2870),(‘r’,‘i’,‘2781),(‘n’,‘t’,‘2751),(‘o’,‘r’,‘2589),(‘l’,‘i’,‘2576),(‘a’,‘2521),(‘i’,‘s’,‘2521),(‘b’,‘2387),(‘d’,‘e’,‘2369),(‘d’,‘d’,‘2337),(‘c’,‘o’,‘2290)

你能澄清一下你所说的
计数一组字母中第一个字母出现的频率是什么意思吗。你能分享一个你期望的输出的例子吗?谢谢你的回复,我已经添加了一个例子。你可以使用这样的列表理解:
len([ngram代表ngram,用bigram计算总数。如果ngram中的“”最常见(30))
。这将计算包含“”的ngram的数量。@ygorg感谢您提供列表理解解决方案!我以前从没想过。祝您有个美好的一天。