Question 1000656: 自然语言处理中的Tf-idf是什么意思
统计/机器学习 自然语言处理自然语言处理中的Tf-idf是什么意思?最好能有例子,谢谢!
Answer
TF是term frequency,词频。
IDF是inverse document frequency,逆向文件频率。
比如我们有m个文件,TF-IDF是衡量一个词汇对于某个文件的重要性。
词汇$T_i$在文件$D_j$中的词频TF等于
$$TF_{i,j}=\frac{n_{i,j}}{\sum_{k=1,\cdots,m} n_{k,j}},$$
其中$n_{i,j}$是词汇$t_j$在文件$D_j$中出现的次数,分母是文件$D_j$中所有词汇的个数,作用是归一化。
词汇$t_i$的逆向文件频率idf等于
$$IDF_{i}=\log \frac{m}{|\{j:t_i\in D_j\}|}$$
其中 $|\{j:t_i\in D_j\}|$是m个文件中,包含词汇$t_i$的文件的个数。
接下来我们就有了tfidf的定义:
$$TFIDF_{i,j}=TF_{i,j}\times IDF_{i}.$$
$TFIDF_{i,j}$越大,说明词汇$t_i$在文件$D_j$中重要性越大,越有助于文件的区分度。
$tf$-$idf$就是$tf$和$idf$的乘积。
$$tf(w)=\frac{w \text{出现在该文档的次数}}{\text{该文档中总的词汇量}}$$
$$idf(w)=\log\frac{\text{文档的总个数}}{\text{包含}w\text{的文档的个数}}$$
$$tf\text{-}idf(w)=tf(w)\times idf(w)$$
Question 1001226: 文本处理中的tf是什么意思?如何计算?
统计/机器学习 自然语言处理如题
Answer
TF是词频的意思,英文是term frequency。就是某个词在某个文章里出现的频率。
通常表示为
TF(w, d) = 词汇w出现的次数 / 文章d总的单词数量。
以中文段落为例,d= “知之为知之 不知为不知”
那么,TF(知, d) = 4 / 10 = 0.4, TF(为, d) = 2 / 10 = 0.2
Question 1001801: 文本处理中stop word什么意思
统计/机器学习 自然语言处理文本处理中stop word什么意思?
Answer
stop word 中文即停用词。
在信息检索中,为节省存储空间和提高搜索效率,在处理自然语言数据(或文本)之前或之后会自动过滤掉某些字或词,这些字或词即被称为Stop Words(停用词)。
这些停用词都是人工输入、非自动化生成的,生成后的停用词会形成一个停用词表。
对于一个给定的目的,任何一类的词语都可以被选作停用词。通常意义上,停用词大致分为两类。
- 一类是人类语言中包含的功能词,这些功能词极其普遍,与其他词相比,功能词没有什么实际含义,比如'the'、'is'、'at'、'which'、'on'等。但是对于搜索引擎来说,当所要搜索的短语包含功能词,特别是像The Who、The The或Take That等复合名词时,停用词的使用就会导致问题。
- 另一类词包括词汇词,比如'want'等,这些词应用十分广泛,但是对这样的词搜索引擎无法保证能够给出真正相关的搜索结果,难以帮助缩小搜索范围,同时还会降低搜索的效率,所以通常会把这些词从问题中移去,从而提高搜索性能。
stop word主要是两类
一种是虚词、没什么意思,留在里面没有什么预测能力
一种是太常见的词,你有我有全都有,留在里面也没有什么差异性
就中文来说,常见的stop word:
"的", "了", "在", "是", "我", "有", "和", "就", "人", "都", "一", "一个", "上", "也", "很", "到", "说", "要", "去", "你", "会", "着", "好", "自己", "这"
Question 1003370: nlp里的stemming是什么意思?
统计/机器学习 自然语言处理nlp里的stemming是什么意思?
Answer
stemming是词干抽取、词根提取的意思。这个一般是针对外语词汇,中文中很少有这个概念。
比如英文,每个词都有很多变形,动词、过去式、名词、动名词、单数、复数等等,stemming就是把各种形式的词还原到本身的词干上。例如
eat有eating, eaten, ate, eats, eatings等等变形,经过stemming之后,这些词应该都会变为eat
再比如这些词:color, colors, colorful, coloring, colored, colorfully等等,stemming之后,提取出来的就都是color
找词干的意思
Question 1004566: “阅读需要X分钟”这个功能是如何实现的?
统计/机器学习 自然语言处理现在很多新闻和文章的开头都有类似于“阅读需要X分钟”,这个功能是如何实现的?用的什么算法?
Answer
国外一个专栏网站medium透露过他们计算阅读时长的方法,我觉得中文也是类似的。
基本上一个简单的公式就够了:
阅读时长 = 总字数 ÷ 平均阅读速度(例如:275字每分钟)
在此基础上,再给每一张图像 12 秒的时间。
随着平台的发展,越来越多的文章图文并茂。而原来的阅读时长是以漫画等「要看得比较久」的图片为基准,如果以原来的算法计算,那一篇包含 140 张图片的文章阅读时长会高达 87 分钟,这显然不合理。
因此,图片的读取时间修正为第一张 12 秒,第二张 11 秒,依次减少 1 秒到第 10 张之后,每张以 3 秒计算。
设置阅读时长的原因其实很好理解,这样用户就可以方便地把握阅读的时机 —— 是在等公交的时候看,还是先收藏起来一会儿再看。
我觉得不需要算法吧。正常人的阅读速度是一秒钟5个字,一分钟300个字,字数除以300就得到时间了。
如果文章里有视频,就再加上视频的时间,如果有图的话,每个图可以再加5到10秒的时间。
Question 1004580: 怎么判断一句中文话语是否通顺
统计/机器学习 自然语言处理Answer
我觉得n-gram这里是针对的词性,而不是词汇本身。
比如3-gram就是看毗邻的3个词的词性,假设词性分布为,‘动动名’,我们可以得到在训练集中‘动动名’出现的概率$P(动动名)$。长度为$n$的一个句子,我们就可以得到$n-2$个3-gram,也就是$n-2$个概率值。我们可以取这些概率值的最大值、最小值、均值、方差作为特征。
类似地,我们也可以同时做2-gram。2-gram是看毗邻两个词的词性。长度为$n$的一个句子,我们就可以得到$n-1$个2-gram,也就是$n-1$个概率值。我们可以取这些概率值的最大值、最小值、均值、方差作为特征。
这样每个句子我们就提取了8个特征,然后就可以训练一个二元分类器了。标签y是已知的句子是否通顺。
如果是无监督的,那么你只能对上面的特征进行聚类或者异常检验。
Question 1005297: jieba分词中最大正向匹配法是什么?
统计/机器学习 自然语言处理非常著名的jieba分词主要是依赖于最大正向匹配法,请问如何深入浅出的来理解这个方法?谢谢!
Answer
这个算法不是统计方法,也没有机器学习的模型,就是个贪婪的扫描算法。
最大正向匹配算法需要一个分词词典(也即是已经分词过的词典,包括所有的单个汉字)。
假定分词词典中的最长词有k个汉子字符串,则用被处理文档的当前字符串中的前k个字作为匹配字段,查找字典。若此时分词词典中存在这样一个字符串,则匹配成功,而此时被匹配的字段切分出来。如果匹配失败,将匹配字段中的最后一个字去掉,对此时剩下的字串重新与分词词典进行匹配,如此下去直到匹配成功。也即是切分出一个词或剩余字串的长度为零为止,这个时候才是匹配了一轮,接着进行下一个k字字串的匹配,方法同上,直到文档被扫描完为止。
这样分词的效果是让每个被分出来的词尽量长,句子被分的次数少。
Question 1005525: 教程中的利用Word2Vec判断是否是白话
统计/机器学习 自然语言处理教程中的利用Word2Vec判断文言、白话文中
Sample_submit.csv 是什么文件?
这个文件中装的是什么内容?
Answer
就是一个提交的csv模板吧。
来自sofasofa(一个专业的机器学习社区),建议去sofa社区阅读,这里只是记录。防止网站在网络中走失。