有人做迅雷的 tfidf编程题吗

有人ac了吗,说下这个题什么意思啊,

#迅雷#
全部评论
tfidf???
点赞 回复 分享
发布于 2017-09-19 20:35
没做,但是知道tfidf,阮一峰有一篇博文介绍过。
点赞 回复 分享
发布于 2017-09-19 20:37
我做了,本地可以,网上AC 0 。。。gg,不知道哪里有问题啊
点赞 回复 分享
发布于 2017-09-19 20:38
好像有问题,我发了提问贴
点赞 回复 分享
发布于 2017-09-19 20:39
能把题 粘上来吗?
点赞 回复 分享
发布于 2017-09-19 20:40
一直12.5%,搞不清楚哪里不对😂
点赞 回复 分享
发布于 2017-09-19 20:44
我是这个题目  gg了
点赞 回复 分享
发布于 2017-09-19 20:44
我靠,倒排索引,我论文搞的就是这个,后悔没投。。
点赞 回复 分享
发布于 2017-09-19 20:46
感觉应该要用字典树做,用数组搞了半天12.5%,GG
点赞 回复 分享
发布于 2017-09-19 20:49
找到一份通过的代码,你们看看 #!/usr/bin/env python import math import random import sys class Solution2(object):     def tfidf(self, line, idf):         tf = {}         tfidf = []         data = []         words = line.split(",")         length = len(words)         for word in words:             tf[word] = tf.get(word, 0) + 1 / length         for word in words:             tfidf.append(str(round(tf.get(word) * idf.get(word), 2)))             data.append("tf:%s,idf:%s" % (tf.get(word), idf.get(word)))         return (tfidf)     def getWordDocs(self, docs):         N = len(docs)         idf = {}         for doc in docs:             words = set(doc.split(","))             for word in words:                 idf[word] = idf.get(word, 0) + 1         for (k, v) in idf.items():             idf[k] = round(math.log(N / v, 2), 2)         return idf if __name__ == "__main__":     solution2 = Solution2()     n = int(sys.stdin.readline().strip())     dd = []     for i in range(0, n):         dd.append(sys.stdin.readline().strip())     idf = solution2.getWordDocs(dd)     for item in dd:         tfidf = solution2.tfidf(item, idf)         print(",".join(tfidf))
点赞 回复 分享
发布于 2017-09-19 20:55

相关推荐

10-15 16:27
门头沟学院 C++
LeoMoon:建议问一下是不是你给他付钱😅😅
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务