专栏文章
余弦定理和新闻分类
科技·工程参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miqvcvad
- 此快照首次捕获于
- 2025/12/04 11:21 3 个月前
- 此快照最后确认于
- 2025/12/04 11:21 3 个月前
向量的基本知识
写在最前面
学过那啥的人应该都知道,向量是多维空间中从原点出发的有向线段。
-
点积若 维坐标系内有两个向量 , , 定义点积运算其结果是一个标量。若记 表示向量 的模长,即那么 还可以由来计算。
向量接近程度的度量
-
两个向量的接近程度,可以用他们的夹角来度量。比如有三个向量 , 和画一下就可以发现, 和 的夹角(通俗地说,靠近程度)远远小于它们到 的夹角。于是我们说, 和 的相似程度高于 和 还有 和 。把二维平面的结论扩展一下,可以得到我们比较多维空间中向量相似程度的结论:
- 记 维向量 ,若它们的夹角越小,我们就说 和 越接近。
余弦
- 必修二里面讲了,假定三角形三边长为 ,其对角为 ,则有
-
如果将三角形两边 看做以 为起点的向量,那么上式等价于三角形是平面图形,而在 维空间中的余弦定理还长这样代入上面对 维向量的描述,我们可以得到
- 记 维向量 , 它们的夹角 的余弦值可以如此计算
大致如此。
新闻特征向量的建立
为了做这件事,我们要弄清一个现实:
- 计算机这玩意唯一能做的事是超高速计算,他读不懂我们的文字,不能像我们一样对新闻进行文学分析,更不能弄明白新闻在讲什么。
那我们要怎么办呢。。。
计算机只能“算”新闻而没法“读”新闻,所以要先把一篇篇“新闻”量化成计算机看得懂的『数据』,再用我们提到的算法来搞清楚他们的相似度如何。
于是问题的关键变成了怎么用一组数据描述一则新闻。
先看看新闻这种文学体裁有什么特点。
- 这东西主体性超级强,不同的新闻主题对应不同的信息。
- 描述信息需要『词』,不同主题对应不同领域的词。
这么来看,不同主题的新闻用词应该不太一样。
比如说,题为『黑神话入选时代杂志最佳游戏』(这事是真的) 的新闻中,出现『GDP』、『民意』、『戒严』、『在野党』是几乎不可能的,而题为『尹锡悦支持率降至13%』(这也是真的2333) 的新闻,出现『中华文化』、『西游记』、『文化输出』、『国产3A』也很不可能。
那就好办了。
一个最朴素的想法是把新闻中每一个“词”的词频统计出来,然后每个词对应一个数,所有数用一个向量打包,就可以算了。
事实上呢?前辈们确实是这么办的。很酷。
怎么统计词频
-
朴素的想法我们可以把各种新闻中的各个词用 来得到一个频率,那么一个词的词频可以是那对于一则新闻而言,我们不妨用一个暴力的想法,现代汉语大概64000个词,把每个词在新闻中的词频都统计一遍,然后直接余弦暴算。但存在一些问题,如下:
- 诸如“的”,“是”,“和”这样的虚词和“因此”,“所以”,“非常”一类的东西,对余弦的计算来说其实是一种噪声,会干扰到分类结果的准确性。怎么解决?
- 一篇新闻里,不同的词对最终结果的影响的权重是不一样的。比如政治类新闻中,“大选”“支持率”“战争”一类的词应该比“应用”“公民”“社会”要重要一些。这样的权重又要如何分配?
-
正好学了对数,可以讲 了
-
是什么这个缩写的全称是 , 翻译过来是『单文本词频-逆文本频率指数』。其实没必要搞清楚这名词啥意思,直接来看咋用的就可以。
-
如何确定一个词的权重?这个权重的设定应该满足这样的条件:
- 其对新闻主题的影响越大,权重就应该越大。比如,“尹锡悦宣布韩进入戒严状态”这个词,倘若在文章中看到“戒严”,大概就知道又是韩国的事儿;而看到“状态”,还是不知道讲的是什么。所以,“戒严”的权重应该比“状态”高。
- 各种虚词和“噪声”词的权重为零。
显然,一个词如果在很少的文章出现,其对文章主题的把握就会比在很多文章中都出现的词更强。概括地讲,若一个词 在 篇文章中出现过,那么 越大, 的权重要越小,反之亦然。如今使用的最多的权重是 ,它的公式是其中 是全部文章数。利用 ,上述对于词频的计算,要更新成这么做有一个很显著的好处,就是把各种“噪声词”优化掉了,同时根据对数运算的性质,越关键的词被赋予的权重越高,挺好的。
终于可以开讲新闻分类了
考虑统计一篇新闻中所有词的加权词频,然后按词典表的顺序列一个六万多维的向量。不难想象,和新闻主题相关性高的词,其加权词频会很大,向量的方向也将主要由这些参数决定。
对新闻“向量化”后,计算新闻的相似性也就成了可能。
接下来的算法可分为两种。
-
第一种是,假定我们已经知道了一些新闻的特征向量,那对于一条要被分类的新闻 , 直接拿它的特征向量和标准向量比一比,并将其归到相应的类中就好。标准向量的获得有两种途径,第一是人工建立,但工作量极大且不准确;第二种就是自动建立(具体方法以后讲)。
-
第二种就比较麻烦了,如果一开始没有标准参照怎么办。没事,前辈想到了。他们提出了一种基于自上而下不断合并的方式:
- 计算所有新闻之间两两的相似性,把相似性大于一个阈值的新闻合并成一小类。这样所有新闻就被合成了一些小类。
- 把每个小类中的新闻作为一个整体,算出小类的特征向量,再计算小类之间两两的余弦相似性,合并成大一点的小类,总数越来越小。
- 如此迭代,直到所有新闻被归为一类。搞定。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...