假设我有这样一个字典:如何计算包含特定单词的文档?
docDict = {"alpha": ["a", "b", "c", "a", "b"], "bravo": ["b", "c", "d", "c", "d"]}
我想要做的是什么样的计算“文档频率”:假设每个字典项目是文档,我有一个特定的词,怎么这么多的文件包含那个词?
我看到很多帖子告诉我如何计算频率,但在这里,如果"a"
文件"alpha"
出现两次,我只需要数为1所以的"a"
“频率”应该是1,和"c"
应是2.
我知道我可以迭代整个文档字典,并在文档中查找单词时添加计数器。或者,我可以先将每个文档中的单词进行唯一性处理,然后合并所有文档并统计单词。
但我认为还有更好的方法,更有效的方法。有任何想法吗?
顺便说一句,有没有什么办法可以保持字典的结构?在这个例子中,我想获得的{"alpha": {'c': 2, 'b': 2, 'a': 1}, "bravo": {'c': 2, 'b': 2, 'd': 1}
更新
因此如果我这里有只是一个列表(像[["a", "b", "c", "a", "b"], ["b", "c", "d", "c", "d"]]
),我怎样才能得到一个结果列表,像[[1, 2, 2, 0], [0, 2, 2, 1]]
。
我不知道。重点是扩大每个清单并确保条款的顺序。思考?
我不明白你的目标。你想要统计一个文档中的字符/单词的次数?但你不想要实际的数量?为什么''''''''有'1'和''''''有'2'的计数?这对我来说没有意义。 – CoryKramer
@Cyber我想统计有多少文档包含这个词。在我的例子中,只有'''alpha''包含''a“',所以它应该是1(尽管在”alpha“中是两次),而”c“是在”“alpha”和“布拉沃“,所以它是2(尽管总共有3个”C“)。 – Melkor