NLTK python 오류: "TypeError: 'dict_keys' 개체를 구독할 수 없습니다."
나는 수업 숙제를 위해 지시사항을 따르고 있고 가장 자주 사용하는 단어 200개를 텍스트 파일에서 찾아봐야 한다.
코드의 마지막 부분은 다음과 같습니다:
fdist1 = FreqDist(NSmyText)
vocab=fdist1.keys()
vocab[:200]
그러나 vocab 200 행 뒤에 Enter 키를 누르면 다음과 같이 반환됩니다:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'dict_keys' object is not subscriptable
정답을 올바르게 반환할 수 있도록 이 문제를 해결하는 방법에 대한 제안이 있습니까?
파이썬 3을 사용하는 것 같습니다. 파이썬 3에서 인덱싱할 수는 없지만 개체를 반환합니다. 가장 단순하지만 효율적이지는 않은 솔루션은 다음과 같습니다:
vocab = list(fdist1.keys())[:200]
경우에 따라 목록 대신 반복기 개체로 작업을 계속하는 것이 좋습니다. 이 작업은 다음을 사용하여 수행할 수 있습니다:
import itertools
vocab_iterator = itertools.islice(fdist1.keys(), 200)
가장 자주 사용되는 200개의 단어를 인쇄하려면 다음을 사용하십시오. fdist1.most_common(200) 위의 코드 줄은 가장 자주 사용되는 200개의 단어를 키-주파수 쌍으로 반환합니다.
파이썬 3을 사용하는 경우 다음을 시도하십시오:
fdist1.most_common(200)
대신, 200개의 가장 흔한 단어를 얻기 위해.
나는 사용하고 있고 나는 같은 문제를 만났다.
를 사용해도 가장 자주 사용하는 단어 상위 50개를 얻을 수 없습니다. 하지만 그래요.
또한 빈도가 아닌 상위 50개 단어만 표시하려면 다음을 시도할 수 있습니다:
[word for (word, freq) in fdist1.most_common(50)]
fdist1 = FreqDist(NSmyText)
vocab=fdist1.keys()
이 코드는 Python 2.7에서 사용되고 있습니다. 따라서 변경해야 합니다. dic.keys()는 반복 가능한 파일을 반환합니다. 따라서 사용:
list(fdist1.keys())
요소를 키 및 값(워드 및 빈도)으로 가져오려면 다음을 사용할 수 있습니다:
list(fdist1.items())[:200]
'개발하자' 카테고리의 다른 글
빌드\app\outputs\apk\app.apk 설치 시 플러터가 고착됨 (0) | 2023.01.06 |
---|---|
Fluter SDK 다운그레이드 방법(Dart 1.x) (0) | 2023.01.05 |
파이썬에서 음의 무한대를 구현하는 방법은? (0) | 2023.01.04 |
주피터 노트북을 백그라운드에서 실행하는 방법? 단말기 하나를 보관할 필요가 없습니다 (0) | 2023.01.04 |
How can I display an image from a file in Jupyter Notebook? (0) | 2023.01.03 |