假設我有這樣一個字典:如何計算包含特定單詞的文檔?
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