我想处理一个特定的列,我想生成文字云。例如,将列名称视为“名称”。我在该栏下有5条记录。他们是“abc xyz”,“abc qpr xyz”,“qpr xyz”,“xyz”,“abc qpr”。所以我期待的就像是一个分词器,我可以得到如下所述的信息:“abc”=> 3,“qpr”=> 3,“xyz”=> 4,“abc xyz”=> 1,“abc qpr xyz“=> 1,”qpr xyz“=> 2,”abc qpr“=> 2.所以我想保留不是特定单词的频率,而是单词组合。如何使用Ruby来计算单词中单词频率和CSV文件中单词的组合?
0
A
回答
2
假设您的CSV看起来是这样的:
x,y,names,...
1,2,abc xyz,...
2,3,abc qpr xyz,...
3,4,qpr xyz,...
4,5,xyz,...
5,6,abc qpr,...
下面是做这件事:
require 'csv'
CSV.foreach('data.csv', headers: true).with_object(Hash.new(0)) do |row, f|
names = row['names'] # obtain names from csv row
f[names] += 1 # increase counter for combined names
names.split.each do |name| # split names at whitespace
f[name] += 1 # increase counter for single name
end
end
#=> {"abc xyz"=>1, "abc"=>3, "xyz"=>5, "abc qpr xyz"=>1, "qpr"=>3, "qpr xyz"=>1, "abc qpr"=>1}
对于自定义,你可能想看看的CSV库中的文件,有许多关于CSV格式,标题转换等的可用选项。
+0
谢谢帕特里克。我想处理一个特定的列,我想生成文字云。例如,将列名称视为“名称”。我在该栏下有5条记录。他们是“abc xyz”,“abc qpr xyz”,“qpr xyz”,“xyz”,“abc qpr”。所以我期待的就像是一个分词器,我可以得到如下所述的信息:“abc”=> 3,“qpr”=> 3,“xyz”=> 4,“abc xyz”=> 1,“abc qpr xyz“=> 1,”qpr xyz“=> 2,”abc qpr“=> 2.所以我想保留不是特定单词的频率,而是单词组合。有什么办法可以在ruby中提取这个? –
+0
看我的编辑,试图符合你的要求。 –
0
假设
str
是您加载整个文件中的字符串。num
是你想要的列号。
为了有一个统计名称的所有不同的组合哈希:在默认情况下返回0
count = Hash.new(0)
str.split('\n').each do |line|
cols = line.split(',')
count[cols[num]] += 1
end
return count
你实例化一个Hash对象(count
),再加入1找到的每个关键。
相关问题
- 1. 在没有停用词的多个csv文件中计算单词的频率
- 2. 计算Python中列的单词频率
- 3. 在Ruby中搜索单个单词和组合单词
- 4. 如何从txt文件中计算单词的频率 - Java
- 5. 在Python中的文本文件中计算单词的频率
- 6. 使用R来计算单词频率的文本挖掘
- 7. 如何计算文本文档中所有单词的频率?
- 8. 计算单词频率并从中制作词典
- 9. 如何查找字典中的单词频率(CSV文件)
- 10. Python NLTK:使用有效的英文单词计算单词和概率列表
- 11. C++在两个单词之间的文件中计算单词
- 12. 列表中单词的计数频率
- 13. 如何获取R中的单词频率和相应的单词
- 14. 使用Ruby计算JSON文件中的单词
- 15. 如何使用Ruby和JavaScript来计算多语言文本中的单词
- 16. Python - 在文本文件中查找单词列表的单词频率
- 17. 计算文本中某个单词的频率数
- 18. 计算文件中的重复单词
- 19. python计算大文件中的单词
- 20. 组合单词,
- 21. 检查输入文本中来自单词集合的单词
- 22. 如何使用符号替换一组单词中的单词?
- 23. 从文件中计算单词
- 24. 如何计算用户上传时单词文档(.doc/.docx)中的单词数?
- 25. 统计列表中单词的频率并删除不受欢迎的单词
- 26. 如何替换单词,计算单词并保存计数
- 27. 统计每个单词的频率
- 28. 如何在不使用集合的情况下计算单词的频率?
- 29. 使用NSDictionary来计算单词在UITextField
- 30. 使用CUDA来计算所有可能的单词组合?
你能不能显示标题以及一些示例行?每个单元格或多个单词是否有一个单词? –
是的,这可以做到。你能展示你尝试过的代码吗?你有什么特别的问题吗? –
谢谢Patrick和Justin。我想处理一个特定的列,我想生成文字云。例如,将列名称视为“名称”。我在该栏下有5条记录。他们是“abc xyz”,“abc qpr xyz”,“qpr xyz”,“xyz”,“abc qpr”。所以我期待的就像是一个分词器,我可以得到如下所述的信息:“abc”=> 3,“qpr”=> 3,“xyz”=> 4,“abc xyz”=> 1,“abc qpr xyz“=> 1,”qpr xyz“=> 2,”abc qpr“=> 2.所以我想保留不是一个特定单词的频率,而是单词的组合。所以,反正有红宝石提取这个信息? –