我有一个包含三种信息的 CSV:userID、wordID、ct
(基本上,14k 不同的推文,他们使用的每个单词都有不同的行,包括该单词的计数)
我希望能够仅针对具有至少 2000 个不同 wordID 的用户 ID 过滤此文件。
我了解如何浏览文件并计算每个用户 ID 的 wordID,但我不知道如何将其与“现在只为真正频繁使用的用户 ID 放置 'userID,wordID,ct'”相结合。
任何帮助深表感谢。
我有一个包含三种信息的 CSV:userID、wordID、ct
(基本上,14k 不同的推文,他们使用的每个单词都有不同的行,包括该单词的计数)
我希望能够仅针对具有至少 2000 个不同 wordID 的用户 ID 过滤此文件。
我了解如何浏览文件并计算每个用户 ID 的 wordID,但我不知道如何将其与“现在只为真正频繁使用的用户 ID 放置 'userID,wordID,ct'”相结合。
任何帮助深表感谢。
这是我当前处理文件的方式。我怀疑有更有效的方法可以做到这一点,因为文件本身是 19m 行——对效率的思考肯定会受到赞赏。
filename = ARGV[0]
file = File.new(filename, "r")
entry = {}
file.each do |line|
user, word, ct = line.chomp.split(",")
entry[user] = entry[user].to_i + 1
end
file = File.new(filename, "r")
file.each do |line|
line.strip!
user, word, ct = line.chomp.split(",")
if entry[user] >= 2000
puts line
end
end