老板喊看看能不能做个分类词库的东西,以后我们分类、聚类就根据这个库来做了。所谓分类词库,我是这样理解的:每个类别都有N个词,当需聚类文本分词之后,统计其词的分部情况,看看词落在哪个类比较多,从而组成特征向量用于聚类。
查了些资料,发现他的思路已经被N多人做过,而且过程比较复杂:对文本分词、去停用词、特征选择、生成向量空间、聚类算法……总而言之,是采用词做为最小的义原,这样做的弊端是步骤太多,如何有效的特征提取呢?最经典的莫过于TF/IDF模型针,求IDF需要(或近似的)出现的总词频。组成向量空间时需要语义相互独立,否则准确率又会下降,又需要使用知网等语义词典来做。最后才是对向量的相似度计算。这种方法在建模过程中做了大量的工作,最后的聚类倒是很简单的弄完了。问题的关键也是建模,如果建模过程中出现了偏差,结果就会差距很大,即使中间加入反馈环节,
电子科大有个家伙使用短句来聚类的,提出后缀树模型。开始还以为他就用后缀树形成文档的树形结构,从而聚/分类等。就想着为嘛不用图呢?今天仔细看了下,果然是用了“文档索引图”。具体细节还要再看。最近再看数据结构,知道了STL是基于RB-Tree的,不错不错。可惜我现在只对二叉树了解点,有没有好用的多叉树可以存放文档的句子之类的呢?这几天要好好查查!
今天主要把搜狗语料库的词频按类别给统计出来了,还要去停用词。之后才能去组建分类词库,可能需要知网的帮助吧!
附:sogoulab讨论总结
1、搜索确实不应该堕落成关键词匹配的数据查找,然而目前的搜索引擎都太笨了,智商很低,所以还是不要过于自作主张的好,用户搜什么就给什么,否则会得不偿失,呵呵。 (http://s.sogou.com/f?s=%CB%D1%B9%B7%CA%B5%D1%E9%CA%D2&t=TP$ZoKJMxx68PcEBAAAA&page=1)
2、根据用户搜索的关键字和内容的分类,可以直接定位关键字的分类,准确率达70%。(此君自己的网站实验)由此可以联想到,搜狗搜索引擎和搜狐分类目录的关系,就是用户在搜狗搜索某个关键字,找到的某个网站如果是搜狐分类目录下的网站,当多次通过这个关键字找到这个网站的时候,就可以确定这个关键字和这个网站的行业分类有关,于是可以把这个关键字确定为这个网站所在分类下的行业关键字;同样,如果通过某个关键字多次找到某个网站,而这个关键字已经确认在某个行业分类目录下,但这个找到的网站还不确定分类是什么,就可以假设这个网站是属于这个分类的。
这两种方法,就是一个用于收集行业关键字,一个再利用收集到的行业关键字来区别网站是属于哪个行业。区分的目的,首先是用于搜索结果的精确度,一个是用户可以只搜索某个分类下的内容,还一个就是提供行业关键字供用户搜索参考,等等
分析当前分类目录下的网站的所有频率高的关键字,取他们的交集作为本类的关键字,然后再和他们父类的关键字集合进行比较,再剔除父类存在的关键字,最终作为这个分类下的关键字。然后结合楼主说的方法,再对一些很少使用的关键字进行降权。
(http://s.sogou.com/f?s=%CB%D1%B9%B7%CA%B5%D1%E9%CA%D2&t=TP$61HJxpgolQaEBAAAA&page=1)
评论:
1、这个主意不错,不能因为他愚蠢就放弃改进。而且对关键字进行分类将能有效的改进。
2、个人觉得这个和我现在做的差不多,都是通过大量的训练来区分关键字的类别。