самые частые слова в python, я получаю ошибку (TypeError: unhashable type: 'list') во время работы - PullRequest
0 голосов
/ 26 мая 2020

Я написал код ниже, но при работе получаю ошибку (TypeError: unhashable type: 'list'). Вы можете мне помочь? Я хочу, чтобы в моем токене использовались наиболее часто встречающиеся слова.

! pip install wget
import wget
url = 'https://raw.githubusercontent.com/dirkhovy/NLPclass/master/data/moby_dick.txt'
wget.download(url, 'moby_dick.txt')
documents = [line.strip() for line in open('moby_dick.txt', encoding='utf8').readlines()]

import spacy

nlp = spacy.load('en')

tokens = [[token.text for token in nlp(sentence)] for sentence in documents[:200]]



from collections import Counter
# your code here

# Pass the split_it list to instance of Counter class. 

Counter = Counter(tokens) 

# most_common() produces k frequently encountered 
# input values and their respective counts. 
most_occur = Counter.most_common(10) 

print(most_occur) 

ошибка: TypeError Traceback (последний вызов последним) in () 4 # Передайте список split_it экземпляру класса Counter. 5 ----> 6 Counter = Counter (tokens) 7 8 # most_common () производит k часто встречающихся

1 кадров /usr/lib/python3.6/collections/init .py in update (* args, ** kwds) 620 super (Counter, self) .update (iterable) # быстрый путь, когда счетчик пуст 621 else: -> 622 _count_elements (self, iterable) 623 if kwds: 624 self.update (kwds)

Ответы [ 2 ]

0 голосов
/ 26 мая 2020
! pip install wget
import wget
url = 'https://raw.githubusercontent.com/dirkhovy/NLPclass/master/data/moby_dick.txt'
wget.download(url, 'moby_dick.txt')
documents = [line.strip() for line in open('moby_dick.txt', encoding='utf8').readlines()]

import spacy

nlp = spacy.load('en')

tokens = [token.text for sentence in documents[:200] for token in nlp(sentence)]



from collections import Counter

Counter = Counter(tokens) 

most_occur = Counter.most_common(10) 

print(most_occur)

обновите свой синтаксис понимания списка

0 голосов
/ 26 мая 2020
dict(Counter(map(tuple, token))).most_common())

Если приведенный выше код не помог, попробуйте понизить вашу просторность.

Попробуйте установить следующие пакеты:

pip install msgpack==0.5.6 spacy==2.0.13 https://github.com/huggingface/neuralcoref-models/releases/download/en_coref_md-3.0.0/en_coref_md-3.0.0.tar.gz

или

python -m venv neuralcoref
source neuralcoref/bin/activate
CFLAGS='-stdlib=libc++' pip install thinc==6.10.3
pip install msgpack==0.5.6
CFLAGS='-stdlib=libc++' pip install spacy==2.0.12  # <-- not 2.0.13
pip install https://github.com/huggingface/neuralcoref-models/releases/download/en_coref_lg-3.0.0/en_coref_lg-3.0.0.tar.gz
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...