Я бы использовал sklearn
framework.
Он не является частью python базовых пакетов, поэтому вам нужно будет установить его (pip install sklearn
).
than, импортируйте CountVectorizer
:
from sklearn.feature_extraction.text import CountVectorizer
для чтения ваших файлов и сохранения их в списке. скажем, вы назовете это my_corpus
. теперь у вас есть список с именем my_corpus
с 4 членами.
просто используйте:
vectorizer = CountVectorizer()
matrix = vectorizer.fit_transform(my_corpus)
В качестве альтернативы, если вы не хотите использовать другие пакеты, просто выполните: corpus = [«Я люблю собак», «Я люблю кошек», «Кошки любят молоко», «Я тебя люблю»]
token_corpus = [s.split () для s в корпусе]
vocabulary = {}
for i, f in enumerate(token_corpus):
for t in f:
if t not in vocabulary:
vocabulary[t] = [0]*len(corpus)
vocabulary[t][i]+=1
vocabulary
{'I': [1, 1, 0, 0], 'like': [1, 1, 1, 0], 'dogs': [1, 0, 0, 0], 'cats': [0, 1, 1, 0], 'milk': [0, 0, 1, 0], 'You': [0, 0, 0, 1], 'likes': [0, 0, 0, 1], 'me': [0, 0, 0, 1]}
если вы хотите сохранить его в списке, просто используйте:
list(map(list, vocabulary.items()))
[['I', [1, 1, 0, 0]], ['like', [1, 1, 1, 0]], ['dogs', [1, 0, 0, 0]], ['cats', [0, 1, 1, 0]], ['milk', [0, 0, 1, 0]], ['You', [0, 0, 0, 1]], ['likes', [0, 0, 0, 1]], ['me', [0, 0, 0, 1]]]