两种统计网络霸凌推特数据集各分类话题标签总数的方法结果不一致,求原因
两种统计网络霸凌推特数据集各分类话题标签总数的方法结果不一致,求原因
嘿,我来帮你捋捋这两个方法结果不一样的核心原因——其实是它们对「什么是一个有效hashtag」的定义完全不同!
咱们拆开看两个方法的逻辑:
第一个方法(正则匹配)
你用的正则表达式 r'#[A-Za-z0-9]+' 是在整个文本里扫描所有符合规则的片段:只要看到#后面跟着一串字母/数字,不管这个片段是不是独立的单词,也不管它后面有没有跟着标点符号,都会被算作一个hashtag。
第二个方法(按单词拆分判断)
这个方法是先把推文按空格拆成一个个单词,然后只认两种条件都满足的单词:
- 单词以
#开头; #后面的所有字符都是纯字母/数字(通过word[1:].isalnum()判断)。
具体差异场景
这两种规则的差异,会在这些情况里产生计数差:
- 带标点的hashtag:比如推文里有
#gender!,正则会匹配出#gender算1个;但第二个方法里这个单词是#gender!,word[1:]是gender!(带感叹号),isalnum()返回False,所以不会被计数。 - 同一个单词里多个hashtag:比如
#stop#hate,正则会匹配出#stop和#hate两个;但第二个方法里这是一个完整单词,word[1:]包含#,isalnum()不通过,直接跳过。 - hashtag不在单词开头:比如
dont#bully,正则会抓出#bully算1个;但第二个方法里这个单词不以#开头,直接不算数。
这些场景累积起来,就导致第一个方法的计数普遍比第二个高,和你给出的结果完全对应上啦~
如果想验证的话,可以找一条包含上述情况的推文,分别用两个方法跑一遍,就能直观看到差异点了。
备注:内容来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

