필자는 문자, 단어 및 상대 빈도 등 모든 종류의 통계를 포함하는 Python 클래스에 대해 아주 간단한 숙제 문제를 수행하고 있습니다. 텍스트의 문자열. 텍스트의 모든 고유 단어 목록을 사용 된 횟수만큼 가져옵니다. 이 때문에 입문 과정이며 나는 매우 제한 파이썬의 지식 (또는 그 문제에 대한 모든 언어)가있는 경우에만 다음 코드로 올 :파이썬 : 고유 한 단어와 그 빈도가 내림차순으로
for k in (""",.’?/!":;«»"""):
text=text.replace(k,"")
text=text.split()
list1=[(text.count(text[n]),text[n]) for n in range(0,len(text))]
for item in sorted(list1, reverse=True):
print("%s : %s" % (item[1], item[0]))
이 불행하게도 텍스트의 각 단어를 출력합니다 (출현 순서대로), 그 빈도 n, n 번이 뒤 따른다. 분명히 이것은 매우 쓸모가 없으며, 각 단어를이 목록에 한 번만 표시하도록 작성한 다음, 내림차순으로 코드를 작성하여 멋진 코드를 추가 할 수 있는지 궁금합니다. 이와 같은 다른 모든 질문은 우리가 배운 적이없는 많은 코드를 사용하는 것을 보았 기 때문에 대답은 상대적으로 간단해야한다고 생각합니다.
'주파수'를 정렬하기 위해'정렬 된 (..) '이라고 어떻게 생각한다고 생각하십니까? – SuperSaiyan
사전에 미리 익숙하십니까 (사전, {})? 하나를 사용하여 단어를 출현 횟수와 연관시킬 수 있습니다. 마르틴 (Martijn)이 시사 하듯이 카운터는 전문화 된 사전입니다. –
또한보십시오 : http://stackoverflow.com/questions/4088265/word-frequency-count-using-python – BioGeek