爲了計算詞頻,我使用python將文本文件中的句子中的單詞轉換爲列表中的單個標記。我無法將不同的句子轉換爲單個列表。這是我做的:將文件中的語句轉換爲列表中的詞語標記
f = open('music.txt', 'r')
sent = [word.lower().split() for word in f]
這給了我下面的列表:
[['party', 'rock', 'is', 'in', 'the', 'house', 'tonight'],
['everybody', 'just', 'have', 'a', 'good', 'time'],...]
由於文件中的句子分別放在不同的線,它返回列表的列表和defaultdict無法識別個人令牌數。
它嘗試下面的列表中理解到的標記在不同的列表中分離並返回一個列表,但它返回一個空的列表,而不是:
sent2 = [[w for w in word] for word in sent]
有沒有辦法做到這一點使用列表內涵?或者也許更簡單的方法?
@Sven Marnach的解決方案是一個很好的解決方案。想要解除嵌套列表問題的一般解決方案是使用'itertools.chain()'。參見http://ideone.com/g4YMu –