首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
Alexnoodles
北京工业大学 自然语言处理
发布于安徽
关注
已关注
取消关注
@汀丶人工智能:
人工智能自然语言处理:N-gram和TF-IDF模型详解
人工智能自然语言处理:N-gram和TF-IDF模型详解1.N-gram 模型N-Gram 是一种基于统计语言模型的算法。它的基本思想是将文本里面的内容按照字节进行大小为 N 的滑动窗口操作,形成了长度是 N 的字节片段序列。每一个字节片段称为 gram,对所有 gram 的出现频度进行统计,并且按照事先设定好的阈值进行过滤,形成关键 gram 列表,也就是这个文本的向量特征空间,列表中的每一种 gram 就是一个特征向量维度。该模型基于这样一种假设,第 N 个词的出现只与前面 N-1 个词相关,而与其它任何词都不相关,整句的概率就是各个词出现概率的乘积。这些概率可以通过直接从语料中统计 N 个词同时出现的次数得到。常用的是二元的 Bi-Gram 和三元的 Tri-Gram。当 n=1 时,一个一元模型为:当 n=2 时,一个二元模型为:当 n=3 时,一个三元模型为:一个 n-gram 是 n 个词的序列:一个 2-gram(bigram 或二元)是两个词的序列,例如 “I love”;一个 3-gram(trigram 或三元)是三个词的序列,例如 “I love you”。需要注意的是,通常 n-gram 即表示词序列,也表示预测这个词序列概率的模型。假设给定一个词序列(w1,w2,···,wm),根据概率的链式法则,可得公式 (1.1):公式(1.1)右边的 P(wi | w1,w2,···,wi-1)表示某个词 wi 在已知句子 w1,w2,···,wi-1 后面一个词出现的概率1.1 马尔科夫假设 在实践中,如果文本的长度较长时,公式(1.1)右边的 的估算会非常困难,因此需要引入马尔科夫假设。 马尔科夫假设是指,每个词出现的概率只跟它前面的少数几个词有关。比如,二阶马尔科夫假设只考虑前面两个词,相应的语言模型是三元(trigram)模型。应用了这个假设表明当前这个词仅仅跟前面几个有限的词有关,因此也就不必追溯到最开始的那个词,这样便可以大幅缩减上述算式的长度。基于马尔科夫假设,可得公式 (1.2):当 n = 1 时称为一元模型(unigram model),公式(1.2)右边会演变成 P(wi),此时,整个句子的概率为:当 n = 2 时称为二元模型(bigram model),公式(1.2)右边会演变成 P(wi | wi-1),此时,整个句子的概率为:当 n = 3 时称为三元模型(trigram model),公式(1.2)右边会演变成 P(wi| wi-2,wi-1),此时,整个句子的概率为:估计 n-gram 模型概率采用极大似然估计(maximum likelihood estimation,MLE)。即通过从语料库中获取计数,并将计数归一化到(0,1),从而得到 n-gram 模型参数的极大似然估计。即:其中 表示文本序列,在语料库中出现的次数。1.2 N-gram 模型优缺点总结下基于统计的 n-gram 语言模型的优缺点:优点:采用极大似然估计,参数易训练;完全包含了前 n-1 个词的全部信息;可解释性强,直观易理解;缺点:缺乏长期依赖,只能建模到前 n-1 个词;随着 n 的增大,参数空间呈指数增长;数据稀疏,难免会出现 OOV 词(out of vocabulary)的问题;单纯的基于统计频次,泛化能力差2.TF-IDFTF-IDF(term frequency-inverse document frequency,词频 - 逆向文件频率) 是一种用于信息检索 (information retrieval)) 与文本挖掘 (text mining) 的常用加权技术。它是一种统计方法,用以评估一个字或词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。在信息检索 (Information Retrieval)、文本挖掘(Text Mining) 以及自然语言处理 (Natural Language Processing) 领域,TF-IDF 算法都可以说是鼎鼎有名。虽然在这些领域中,目前也出现了不少以深度学习为基础的新的文本表达和算分 (Weighting) 方法,但是 TF-IDF 作为一个最基础的方法,依然在很多应用中发挥着不可替代的作用。TF-IDF 的主要思想是:如果某个单词在一篇文章中出现的频率 TF 高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。TF(全称 TermFrequency),中文含义词频,即关键词出现在网页当中的频次。IDF(全称 InverseDocumentFrequency),中文含义逆文档频率,即该关键词出现在所有文档里面的一种数据集合。TF-IDF 的计算过程为:第一步,计算词频。词频(TF)= 文章的总词数某个词在文章中的出现次数或者词频(TF)= 该文出现次数最多的词出现的次数某个词在文章中的出现次数第二步,计算逆文档频率。逆文档频率(IDF)=log(包含该词的文档数 +1 语料库的文档总数)如果一个词越常见,那么分母就越大,逆文档频率就越小越接近 0。分母之所以要加 1,是为了避免分母为 0(即所有文档都不包含该词)。log 表示对得到的值取对数。第三步,计算 TF-IDF。TF−IDF= 词频(TF)× 逆文档频率(IDF)可以看到,TF-IDF 与一个词在文档中的出现次数成正比,与该词在整个语言中的出现次数成反比。所以,自动提取关键词的算法就是计算出文档的每个词的 TF-IDF 值,然后按降序排列,取排在最前面的几个词。2.1 TF-IDF 算法总结TF-IDF 算法是一种常用的文本特征表示方法,用于评估一个词对于一个文档集或语料库中某个文档的重要程度,常用于以下领域:(1)搜索引擎;(2)关键词提取;(3)文本相似性;(4)文本摘要。TF-IDF 算法优点:简单有效:TF-IDF 算法简单易实现,计算速度快,并且在很多文本相关任务中表现良好。考虑词频和文档频率:TF-IDF 综合考虑了词频和文档频率两个因素,可以准确表示词语在文档中的重要性。强调关键词:TF-IDF 算法倾向于给予在文档中频繁出现但在整个语料库中较少见的词更高的权重,从而能够突出关键词。适用性广泛:TF-IDF 算法可以应用于各种文本相关任务,如信息检索、文本分类、关键词提取等。TF-IDF 算法缺点:无法捕捉语义信息:TF-IDF 算法仅根据词频和文档频率进行计算,无法捕捉到词语之间的语义关系,因此在处理一些复杂的语义任务时可能效果有限。忽略词序信息:TF-IDF 算法将文本表示为词语的集合,并忽略了词语之间的顺序信息,因此无法捕捉到词语顺序对于文本含义的影响。对文档长度敏感:TF-IDF 算法受文档长度的影响较大,较长的文档可能会有较高的词频,从而影响到特征权重的计算结果。词汇表限制:TF-IDF 算法需要构建词汇表来对文本进行表示,词汇表的大小会对算法的性能和计算开销产生影响,同时也可能存在未登录词的问题。主题混杂问题:在包含多个主题的文档中,TF-IDF 算法可能会给予一些频繁出现的词较高的权重,导致提取的关键词并不完全与文档主题相关。3.关键知识点总结:在N-gram模型中,N表示表示每次取出的单词数量在N-gram模型中,当N取值越大,模型的效果会不一定变得更好(要合适)N-gram模型可以用于文本分类、语音识别和机器翻译等自然语言处理任务。N-gram模型的主要优点是可以捕捉上下文信息,但缺点是无法处理未知的单词。在TF-IDF模型中,IDF值越大代表该词对文本内容的区分度越高在TF-IDF模型中,词频(TF)指的是某个词在一篇文档中出现的次数。更多优质内容请关注:汀丶人工智能;会提供一些相关的资源和优质文章,免费获取阅读。
点赞 0
评论 0
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
05-02 12:19
武汉商学院 Java
简历求拷打
学院本还是做不到吗,有一段实习,现在boss海投,一个技术岗面试都没有
简历上的经历如何包装
点赞
评论
收藏
分享
昨天 14:24
已编辑
南京邮电大学 Java
工作一年-华为OD-C++开发面经
1.背景23年毕业进了国企,做的上位机软件开发工程师,老是出差不喜欢,加上异地,就辞职了。后来小红书上看到栗栗的分享很详细,于是联系栗栗,每个流程都非常详细,有不懂的,栗栗都耐心解释,最终完成入职流程,好的hr也是必不可少的一个环节。2.机考栗栗会提供几个题库,找到适合自己的,然后就开始刷题,需要有数据结构的基础,以及适合自己的语言,我用的C++,刷了大概一百道题。机考的3个题目:空间占用的计算、计算数列位N的值、勇攀数字高峰3.综测栗栗会提供一些她收集的攻略,很详细,只要不前后矛盾,都没啥问题。4.HR面为啥面试和机考间隔了一个月多这么久,是因为技术面要手撕,我去刷力扣去了哈哈。准备差不多了...
面试问题记录
点赞
评论
收藏
分享
03-13 18:55
北京师范大学 银行其它
约不到面,求简历建议
真约不到实习,我真服了,27届。求求大佬帮忙看看简历,是不是项目太简单了需要换个项目。想去银行科技想找个后端开发实习扩充一下秋招的实习经历。
点赞
评论
收藏
分享
04-13 14:43
University of Oxford 测试开发
实习期间请了两天半写毕设和论文,结果……
真是无语了😓
点赞
评论
收藏
分享
05-04 08:45
蚌埠坦克学院 嵌入式软件开发
嵌入式面试八股文:暑期实习准备指南
想拿到嵌入式暑期实习,单靠项目还不够,基础知识的“八股文”依然是面试的核心考察点。很多同学项目做得不错,但在基础问题上答得不系统、不深入,最终错失机会。下面从常见考点出发,给你一套高效准备思路。一、C语言基础:必须扎实嵌入式岗位对C语言的要求远高于普通开发岗,重点不在语法,而在底层理解。重点内容:指针与数组的本质区别const、volatile、static 的作用内存分区(栈、堆、全局区、常量区)结构体对齐与内存布局函数调用过程(压栈、返回地址)高频问题:volatile 为什么在嵌入式中很重要指针和引用(如果涉及C++)的区别malloc 和 free 的底层机制建议:不要死记,尽量做到“...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
毕业啦!我们要一起去广州打拼啦!
1.8W
2
...
毕业了,有些话只能藏在心里了
1.5W
3
...
2026春招到底卷成什么样了?填问卷说出真相,最高领200元现金红包
1.3W
4
...
字节 中国交易与广告 后端一面
1.2W
5
...
211本,130投0面,agent应用开发,简历求助!
7946
6
...
从阿里被裁到快手升P6,我花了四年
7574
7
...
在携程的一天
6187
8
...
从腾讯到阿里感,谢一路走来的自己
6021
9
...
华为暑期实习
5975
10
...
别人:阿里 字节 腾讯
5734
创作者周榜
更多
正在热议
更多
#
这个offer值得去吗?
#
31678次浏览
230人参与
#
校招薪资来揭秘
#
960560次浏览
4062人参与
#
在爱玛,骑向未来
#
20346次浏览
394人参与
#
如果春招能重来,我会___
#
29353次浏览
295人参与
#
24秋招避雷总结
#
1019976次浏览
7098人参与
#
你会因为行情,降低找工作标准吗?
#
45084次浏览
328人参与
#
机械人还在等华为开奖吗?
#
339200次浏览
1652人参与
#
米哈游求职进展汇总
#
688621次浏览
3348人参与
#
华为池子有多大
#
178067次浏览
931人参与
#
26届春招投递记录
#
8651次浏览
72人参与
#
25届网易互娱暑实进度
#
109094次浏览
802人参与
#
通信/硬件求职避坑tips
#
172013次浏览
1170人参与
#
记录我的毕业季
#
4587次浏览
118人参与
#
机械人,你的秋招第一份简历被谁挂了
#
268745次浏览
2450人参与
#
远程面试的尴尬瞬间
#
363830次浏览
2062人参与
#
大学最后一个寒假,我想……
#
103291次浏览
846人参与
#
机械求职避坑tips
#
103674次浏览
589人参与
#
你认为小厂实习有用吗?
#
145038次浏览
762人参与
#
运营商笔面经互助
#
219615次浏览
1833人参与
#
美团秋招笔试
#
216371次浏览
1192人参与
#
网易求职进展汇总
#
213142次浏览
1523人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务