本题需要从带有情感标签的文本反馈中,计算每个单词的关联度得分 S(卡方统计量),并输出得分最高的前 k 个单词。具体算法步骤如下:
输入读取与校验
首先读取文档总数 N,接着读取接下来的 N 行数据(每行为一个制表符分隔的标签和文本),最后读取一个整数 k。
如果行数不足、标签既不是 positive 也不是 negative,或者最后一行无法解析为整数,则判定输入格式错误,输出 −1 并终止。
构建词袋模型并统计频数
你正在分析一份用户反馈数据集,其中每一条反馈都被标记为 'positive' 或 'negative' 两种情感倾向。为了找出与情感倾向相关性最强的词汇,你需要设计一个统计指标来量化每个单词的区分能力。
具体做法如下:
'positive' 类与 'negative' 类中分别出现的反馈数量,并由此构建一个 2×2 的频数表。'positive' 类包含该单词的反馈数,B 为 'negative' 类包含该单词的反馈数; C 为 'positive' 类不包含该单词的反馈数,D 为 'negative' 类不包含该单词的反馈数。总反馈数记为 N,'positive' 类总数记为 np,'negative' 类总数记为 nn。则四个单元格的期望频数分别为:关联度得分定义为
S=i=1∑2j=1∑2Eij(Oij−Eij)2
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.