今天晚上加班开发一套程序界面,等回到家已经11点30了。本来打算继续写我的GDE-X引擎,时间已经不够了。那么就学习一点东西吧,打开放在桌面上的吴军老师的《数学之美》,顿时发现一片新的天地。
—— TF/IDF概念。(turn frequency/Inverse document frequency)也称为词汇频率/逆向文本频率。
该技术是信息检索领域最重要的思想,用于确定检索关键词与被检索文本的相关性。
如何确定 关键词 与 被检索文本的相关性呢?从我们直观上来说,首先需要词匹配、其次需要对于我们的关键词有个衡量标准,比如搜“网络游戏的现状”,那么我们可以肯定 “网络游戏”在关键字中的分量要比“现状”更加重要,而“的”这个助词基本可以忽略。
我们可以将搜索关键字进行中文分词,假如得到 C1,C2,C3...Cn个分词。
那么对于每个分词我们有个权值,作为它的重要程度,比如W1,W2,W3。。。。Wn。
所以 越专业的词,我们就认为它的权值更高。如上例中 网络游戏 就比 现状的权值高。
那么某段记录的与我们的关键字的相关性 计算公式如下:
F = 词频1 * W1 + 词频2 * W2 + .... + 词频N * WN
词频就是该词在记录中出现的频率,(频率 = 出现次数 / 记录中词总数 )
这一部分我们叫做 TF(词汇频率) 概念。
然后我们需要求得各个词的权值,我们通过IDF(逆向文本)概念:
分析所有的被检索记录,若一个词出现得越多,则这个词越不重要。(越大众化)
若一个词出现得越少,则这个词越重要。(专业化)
对于词CN,若它在 n 个记录中出现过,假设系统总共有 m 条记录,则其权值计算公式为:
W = log( m / n )
为什么是log?——这个据说证明相当复杂,但最终证明log是合理的。
这部分计算概念即为 IDF。
以这个概念为基础数学模型,提供一种在海量信息中建立对于 关键字 相关性的计算机制。这也是 搜索引擎的一个基本数学基础。
——非常简单,但是强大!
然后自己有点想法,改天可以自己实现一个简单的TF/IDF,再基于这个,研究一下是否可以做一个文章错别字检测的程序。(貌似WORD里有相关功能,但是不太好用?)——需要具体调研。。