微博用户标签自动生成算法

1. 问题描述

现有每个用户发送、评论、转发的微博内容, 要求从这些微博中为每个用户抽取适合的标签。 例如我的微博中经常提到“SVM”,“文本分类”,“协同过滤”等, 则给我打上标签“数据挖掘”。 要求算法尽量自动化, 不需要或需要很少人工干预。

2. 解决方案

有三种计算方法可尝试, 个人由于工作原因暂时不能一一实现,有兴趣的读者可进行实现比较

2.1 借助百度百科的开放分类

百度百科有个比较好的特性是在词条释义下面会列出该词条隶属的开放分类, 如词条“SVM”隶属的开放分类有数据挖掘, 机器学习等。

可以利用这个特性, 为用户相关微博中含有的词,抓取开放分类当做用户的标签。 具体流程:

1)维护一个词条->相关百度百科开放分类列表的缓存池

2)将用户相关微博分词,统计词频,过滤停用词,取较高频的有效词

3)取分词后的每个有效词条

4)若该词条在百度百科开放分类缓存池中,从缓存中取得该词条相关分类

5)若该词条不在百度百科开放分类缓存池中,以该词条为检索词抓取百度百科,得到相关开放分类列表返回,同时将结果放进缓存

6)重复3-5直到为用户的相关词条都生成开放分类列表

7)合并分类列表,取开放分类中较高频的K个分类作为该用户标签

2.2 利用概念层次结构图计算

假设把人的知识结构分成概念层次,越高的层次上概念越宽泛,如“计算机”,“汽车”,“电视剧”等, 越低的层次概念越细化,如“贝叶斯信任网络”,“奔驰600商务型”,“潜伏”等。  本算法的核心在于抽取出概念层次“不高不低”的词作为标签, 也就是说抽取的词概念既不要太宽泛,也不要太细化, 例如上述例子中,“计算机”,“汽车”,“电视剧”等词过于宽泛; 而“贝叶斯信任网络”,“奔驰600商务型”,“潜伏”又过于细化, 理想情况下, 抽取出“数据挖掘”,“奔驰”,“谍战剧”是最合适的。那么如何做到这一点呢?

可以利用词和词之间的相关性, 构建由词到词的关联图, 图中每个节点代表一个词, 每条边代表由词A到词B的一个关联,说明词A和词B在概念上有一定相关性。 具体构建方法可应用类似于apriori的关联规则挖掘算法, 利用不同词在同一用户微博中的共现频率,结合置信度、支持度、提升度等限制条件计算出这样的图。

当上述关联图计算完成后, 会有如下规律: 对于概念层次较高的词, 该词在图中节点的出度会很大(即该词会和很多词相关联),如“电视剧”可能关联到众多电视剧名, 电视剧类型; 对于概念层次较低的词,该词在图中节点的出度会很小(即该词会和很少词相关联),如“潜伏”可能只关联到几个相似的电视剧名和“谍战片”等少数电视剧类型。

于是可以按照所有词节点的出度进行排序统计, 结合人工review, 选出出度不高不低的词节点,作为合法标签存储。

有了合法标签, 根据用户相关微博计算他的标签就容易了, 第一步分词统计词频, 第二步遍历用户微博中的原始词,如果是合法标签,则为用户打上标签。 如果遍历过后发现为这个用户打的标签太少, 则搜索词条相关图中和用户相关原始词相关,并且是合法标签的词作为标签。

2.3 利用协同过滤思想进行计算

如果系统中已有较多用户打上了一些标签, 则可以根据他们的标签相似性、相关微博相似性进行协同过滤计算标签,具体流程如下:

根据用户已有标签和相关微博生成代表这个用户的关键词向量

计算和该用户有相似向量的有标签用户

统计该用户的相似用户都打了什么标签,按照频率高低排序,选择K个高频标签

refer to: http://www.itongji.cn/article/04031ZR013.html

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要优化伪标签生成算法,可以考虑以下几个方面的方法: 1. 确定阈值:伪标签生成算法通常会将无标签数据的预测概率与一个阈值进行比较,以决定是否生成标签。选择合适的阈值非常重要,过高的阈值可能导致过少的伪标签生成,而过低的阈值则可能引入大量错误的伪标签。可以通过交叉验证或使用验证集来调整阈值,以找到最佳的平衡点。 2. 引入可信度度量:仅仅依靠预测概率是否超过阈值来生成标签可能不足够可靠。可以引入可信度度量来衡量预测概率的置信度,例如熵、方差、置信区间等。通过结合可信度度量和阈值判断,可以提高伪标签生成的准确性。 3. 半监督学习方法:传统的伪标签生成算法通常使用有标签数据训练模型,然后将模型应用于无标签数据生成标签。但这种方法可能会引入大量的错误伪标签。半监督学习方法可以结合有标签数据和无标签数据进行联合训练,通过利用无标签数据的信息提升模型的性能和伪标签的质量。 4. 异常检测和过滤:为了去除可能的异常样本和噪声,可以运用异常检测方法来识别与已有标签不一致或异常的样本。通过过滤掉这些异常样本,可以提高伪标签生成算法的准确性和鲁棒性。 5. 动态调整生成策略:考虑到数据分布可能会随时间变化,伪标签生成策略也需要进行动态调整。可以使用滑动窗口或其他方法来跟踪数据分布的演化,并针对新的数据分布调整伪标签生成算法的参数或策略。 综合利用以上方法,可以不断改进伪标签生成算法,提高生成标签的准确性和可靠性,从而为情感漂移检测等任务提供更好的支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值