CaesarZZP / concept

记性太差,需要辅助
0 stars 0 forks source link

ngram #7

Open CaesarZZP opened 6 years ago

CaesarZZP commented 6 years ago

①一个词出现的概率与它前面的所有词都相关,②如果假定一个词出现的概率只与它前面固定数目的词相关呢?这就是ngram的基本思想了,它做了一个n-1阶的Markov假设,认为一个词出现的概率就只与它前面的n-1个词相关。 分别说明 ①句子的概率P(word1,word2,word3,word4...)=P(word1)p(word2|word1)p(word3|word1,word2)。。 ②比如bigram,那么就是计算P(word2|word1)=count(word1,word2)/count(w1),共同出现的,栈单个出现的比例。比如,在一个语料中,“i”一共出现了2533次,而其后出现“want”的情况一共有827次,所以P(want|i) = 827/2533 约等于0.33 ps:unigram这样计算 P(S)=P(w1,w2,w3,..,wn)=P(W1)P(W2)P(Wn) 例子见 对于bigram,一套文本set n个词就有nn的频数矩阵大小 对于trigram,第一个概率只算bigram 为了避免数据溢出、提高性能,通常会使用取log后使用加法运算替代乘法运算(累乘p->累加log) 每一种类别的文档有自己的概率分布(语言模型),通过计算新文本(test)的概率进而分类

参数规模 假如词典大小为2 10^5,则 unigram 2 10^5 bigram 2 10^5 2 10^5 trigram 2 10^5 2 10^5 2 10^5

就参数提出如下见解 这里涉及到一个可区别性和可靠性的问题,参数越多,可区别性越好,但同时面临单个参数的实例变少从而降低了可靠性,因此需要在可靠性和可区别性之间进行折中 此外,n大到一定程度时,模型效果提升的幅度会变小

平滑化技术->解决count(wi)=0或1的情况