我想输入bin/ruby.exe
和
输出是一个字典,其中键是用于索引的唯一字符串,值是浮点数组,数组中的每个位置代表{{1}中List<string[]>
的键的计数}}
到目前为止,这是我的尝试
string[]
我被困在字典部分。实现这一目标的最有效方法是什么?
答案 0 :(得分:5)
听起来你可以使用类似的东西:
var dictionary = doc
.SelectMany(array => array)
.Distinct()
.ToDictionary(word => word,
word => doc.Select(array => array.Count(x => x == word))
.ToArray());
换句话说,首先找到不同的单词集,然后为每个单词创建一个映射。
要创建映射,请查看原始文档中的每个数组,并查找该数组中单词出现次数。 (因此每个数组都映射到int
。)使用LINQ在整个文档上执行映射,ToArray
为特定单词创建int[]
...这是值那个词的词典条目。
请注意,这会创建一个Dictionary<string, int[]>
而不是Dictionary<string, float[]>
- 这对我来说似乎更明智,但是如果你有可能总是将Count
的结果转换为float
真的想要。