Question 1000656: 自然语言处理中的Tf-idf是什么意思

统计/机器学习 自然语言处理

自然语言处理中的Tf-idf是什么意思?最好能有例子,谢谢!


Answer

Answer 1:

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$中重要性越大,越有助于文件的区分度。



Answer 2:

$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

Answer 1:

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

Answer 1:

stop word 中文即停用词。

在信息检索中,为节省存储空间和提高搜索效率,在处理自然语言数据(或文本)之前或之后会自动过滤掉某些字或词,这些字或词即被称为Stop Words(停用词)。

这些停用词都是人工输入、非自动化生成的,生成后的停用词会形成一个停用词表。

对于一个给定的目的,任何一类的词语都可以被选作停用词。通常意义上,停用词大致分为两类。

  1. 一类是人类语言中包含的功能词,这些功能词极其普遍,与其他词相比,功能词没有什么实际含义,比如'the'、'is'、'at'、'which'、'on'等。但是对于搜索引擎来说,当所要搜索的短语包含功能词,特别是像The Who、The The或Take That等复合名词时,停用词的使用就会导致问题。
  2. 另一类词包括词汇词,比如'want'等,这些词应用十分广泛,但是对这样的词搜索引擎无法保证能够给出真正相关的搜索结果,难以帮助缩小搜索范围,同时还会降低搜索的效率,所以通常会把这些词从问题中移去,从而提高搜索性能。
Answer 2:

stop word主要是两类

一种是虚词、没什么意思,留在里面没有什么预测能力

一种是太常见的词,你有我有全都有,留在里面也没有什么差异性

就中文来说,常见的stop word:

"的", "了", "在", "是", "我", "有", "和", "就",  "人", "都", "一", "一个", "上", "也", "很", "到", "说", "要", "去", "你",   "会", "着", "好", "自己", "这"



Question 1003370: nlp里的stemming是什么意思?

统计/机器学习 自然语言处理

nlp里的stemming是什么意思?


Answer

Answer 1:

stemming是词干抽取、词根提取的意思。这个一般是针对外语词汇,中文中很少有这个概念。

比如英文,每个词都有很多变形,动词、过去式、名词、动名词、单数、复数等等,stemming就是把各种形式的词还原到本身的词干上。例如

eat有eating, eaten, ate, eats, eatings等等变形,经过stemming之后,这些词应该都会变为eat

再比如这些词:color, colors, colorful, coloring, colored, colorfully等等,stemming之后,提取出来的就都是color

Answer 2:

找词干的意思


Question 1004566: “阅读需要X分钟”这个功能是如何实现的?

统计/机器学习 自然语言处理

现在很多新闻和文章的开头都有类似于“阅读需要X分钟”,这个功能是如何实现的?用的什么算法?


Answer

Answer 1:

国外一个专栏网站medium透露过他们计算阅读时长的方法,我觉得中文也是类似的。

基本上一个简单的公式就够了:

阅读时长 = 总字数 ÷ 平均阅读速度(例如:275字每分钟)

在此基础上,再给每一张图像 12 秒的时间。

随着平台的发展,越来越多的文章图文并茂。而原来的阅读时长是以漫画等「要看得比较久」的图片为基准,如果以原来的算法计算,那一篇包含 140 张图片的文章阅读时长会高达 87 分钟,这显然不合理。

因此,图片的读取时间修正为第一张 12 秒,第二张 11 秒,依次减少 1 秒到第 10 张之后,每张以 3 秒计算。

设置阅读时长的原因其实很好理解,这样用户就可以方便地把握阅读的时机 —— 是在等公交的时候看,还是先收藏起来一会儿再看。

Answer 2:

我觉得不需要算法吧。正常人的阅读速度是一秒钟5个字,一分钟300个字,字数除以300就得到时间了。

如果文章里有视频,就再加上视频的时间,如果有图的话,每个图可以再加5到10秒的时间。


Question 1004580: 怎么判断一句中文话语是否通顺

统计/机器学习 自然语言处理

例如百度的dnn语言模型api接口输入一句话可以给出这句话的通顺度,http://ai.baidu.com/tech/nlp/dnnlm_cn,网上大多是说用n-gram模型,有具体点的训练思路吗


Answer

Answer 1:

我觉得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

Answer 1:

这个算法不是统计方法,也没有机器学习的模型,就是个贪婪的扫描算法。

最大正向匹配算法需要一个分词词典(也即是已经分词过的词典,包括所有的单个汉字)。

假定分词词典中的最长词有k个汉子字符串,则用被处理文档的当前字符串中的前k个字作为匹配字段,查找字典。若此时分词词典中存在这样一个字符串,则匹配成功,而此时被匹配的字段切分出来。如果匹配失败,将匹配字段中的最后一个字去掉,对此时剩下的字串重新与分词词典进行匹配,如此下去直到匹配成功。也即是切分出一个词或剩余字串的长度为零为止,这个时候才是匹配了一轮,接着进行下一个k字字串的匹配,方法同上,直到文档被扫描完为止。

这样分词的效果是让每个被分出来的词尽量长,句子被分的次数少。


Question 1005525: 教程中的利用Word2Vec判断是否是白话

统计/机器学习 自然语言处理

教程中的利用Word2Vec判断文言、白话文中

Sample_submit.csv 是什么文件?

这个文件中装的是什么内容?


Answer

Answer 1:

就是一个提交的csv模板吧。


来自sofasofa(一个专业的机器学习社区),建议去sofa社区阅读,这里只是记录。防止网站在网络中走失。