N-Gram模型介绍
创始人
2024-03-02 02:53:55
0

N-gram是一种基于统计语言模型的算法,基本思想是将文本内容按照字节进行大小为N的滑动窗口操作,形成了长度是N的字节片段序列。

每一个字节片段称为gram,对所有gram的出现频度进行统计,并且按照事先设定好的阈值进行过滤,形成关键gram列表,也就是这个文本的向量特征空间,列表中的每一种gram就是一个特征向量维度。

该模型基于马尔可夫假设,每一个单词的出现都取决于它前面有限个单词。对于有限个单词数量n的不同定义,组成了不同的gram模型,

当n=1时,就是uni-gram, p(w_1,w_2,...,w_m) = \prod_{i=1}^{m}p(w_i)

当n=2时,就是bi-gram, p(w_1,w_2,...,w_m)=\prod_{i=1}^{m}p(w_i|w_{i-1})

当n=3时,就是tri-gram, P(w_1,w_2,...,w_m)=\prod_{i=1}^{m}p(w_i|w_{i-2}w_{i-1})

在给定的训练语料中,利用贝叶斯定理,将上述的条件概率值都统计计算出来即可,以bigram为例,公示推导如下:

P(w_i|w_{i-1})=\frac{P(w_i,w_{i-1})}{P(w_{i-1})}=\frac{count(w_i,w_{i-1})}{count(ALLword)} \cdot \frac{count(ALLword)}{count(w_{i-1})}=\frac{count(w_i,w_{i-1})}{count(w_{i-1})}

同理,可以得到trigram的条件概率公式:P(w_i|w_{i-2},w_{i-1})=\frac{Count(w_{i-2},w_{i-1},w_i)}{Count(w_{i-2},w_{i-1})}

n-gram条件概率公式为:P(w_n|w_{n-1}...w_2,w_1)=\frac{Count(w_1,w_2,...w_n)}{Count(w_1,w_2,...,w_{n-1})}

注意:如果N过大会导致对于当前单词的约束过强,则容易导致过拟合。简单理解就是特征太多训练集上是准确率高了,但是容易过拟合。

以Bi-gram为例,假设有三句话组成的语料库为:

则能计算出的概率为:

I出现3次,I do出现1次,则P(do|I)=1/3=0.33

do出现1次,do not出现1次,则P(not|do) =1/1=1

代码实现N-gram:

#coding:utf-8def creat_ngram_list(input_list, ngram_num):ngram_list = []if len(input_list) <= ngram_num:ngram_list.append(input_list)else:for temp in zip(*[input_list[i:] for i in range(ngram_num)]):temp = "".join(temp)ngram_list.append(temp)return ngram_listif __name__ == "__main__":text = input("输入:")ngram_num = int(input("切分长度:"))print("\n 列表输出:{0}".format(creat_ngram_list(text,ngram_num)))

结果为:

总结,N-gram模型的优点是基于有限的历史所以效率高,缺点是无法体现文本相似度,无法关联更早的信息。

相关内容

热门资讯

人大常委会|整改问题金额1.0... 新华社北京12月22日电 题:整改问题金额1.04万亿元 制定完善制度1090多项——2024年度审...
法援三十载·新规启新程 | 金... 概况 11月以来,金山区法律援助中心围绕“法援三十载·新规启新程”主题,联合11个街镇(高新区)法律...
轻信理财骗局损失8.8万元,起... 三湘都市报12月22日讯(文/视频 全媒体记者 虢灿)女子轻信网络投资理财骗局,被骗8.8万元,收款...
南玻A(000012)披露公司... 截至2025年12月22日收盘,南玻A(000012)报收于4.47元,较前一交易日上涨0.22%,...
恒兴新材(603276)披露修... 截至2025年12月22日收盘,恒兴新材(603276)报收于16.46元,较前一交易日下跌0.72...
个人信用修复政策重磅落地 12月22日,中国人民银行发布一次性信用修复政策:符合相关条件的逾期信息,将不会在个人信用报告中予以...
应对野生动物伤人,法律重申常识... 12月22日,生态环境法典草案三次审议稿提请十四届全国人大常委会第十九次会议审议。针对食草野生动物与...
原创 私... 西安雁塔警方通报查处一家提供“异性陪侍”的私人影院,经营者被刑拘,陪侍人员被行拘。这背后,为何处理结...
天玑科技及相关责任人因涉嫌串通... 12月22日,天玑科技(300245.SZ)发布公告,公司近期收到上海市虹口区人民检察院送达的《起诉...
「期刊文摘」 蔡昉:人工智能时... 蔡昉:人工智能时代的社会保障,理念更新与制度建设 期刊文摘 ★★★★★ 一、引言 人们惊叹于近年来人...