Как создать словарь из всех слов, а не строка за строкой в ​​Python? - PullRequest
0 голосов
/ 12 октября 2018
import re
import numpy as np
with open('cat_sentences.txt') as f:
    lines = sum(1 for line in f)
    f.seek(0)
    for line in f:
        re.split('[^a-z]', line.lower())
        L = []
        L.append(re.split('[^a-z]', line.lower()))
        L1 = []
        for element in L:
            for simbol in element:
                if simbol != '':
                  L1.append(simbol)
        wcount = 0
        D = dict()
        for element in L1:
             if element not in D:
                    D[element] = wcount 
                    wcount += 1
             else: 
                D.pop(element)
        print D

Мне нужно создать словарь на Python, состоящий из всех слов из текста без пробелов и символов, кроме букв.Позже мне нужно будет создать матрицу M x N, где M - количество строк в исходном тексте, а N - количество слов в словаре.Мой код выглядит следующим образом:

1 Ответ

0 голосов
/ 12 октября 2018

возможно вам нужно это включить (если я правильно понял, что вам нужно):

import re
from collections import Counter
text = 'Hello this is text - yes it is'
text_list = re.split('[^a-z]+', text.lower())
count = Counter(text_list)
df = pd.DataFrame(count, index=[0])

В этом случае вы получите следующий фрейм данных:

hello   is  it  text    this    yes
   1     2   1   1        1      1

Или, может быть, вам нужноследующая векторизация (но какие значения вам понадобятся?):

from sklearn.feature_extraction.text import TfidfVectorizer
text_list = []
with open('cat_sentences.txt') as f:
    for line in f:
        text_list.append(line.lower().replace('[^\w\s]',' '))
        print(text_list)
tfidf_v = TfidfVectorizer(min_df=1,stop_words= None)
X = tfidf_v.fit_transform(text_list)
data = pd.DataFrame(data=X.toarray(), columns=tfidf_v.get_feature_names(), index = text_list)

В этом случае вы получите фрейм данных, где строка будет строкой в ​​тексте, имя столбца будет миром, а значения - частотой (вы можетеПрочитайте здесь http://scikit -learn.org / stable / modules / generate / sklearn.feature_extraction.text.TfidfVectorizer.html )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...