метка кодирования текстовых данных с k наиболее частыми словами - PullRequest
0 голосов
/ 11 июля 2020

Текстовые наборы данных с именами 20 групп новостей (обучающие данные: 11300 до c), импортированные из наборов данных sklearn и предварительно обработанные мной. Далее моя работа заключается в том, чтобы метка закодировала текстовые данные в TYPE: (список списка) в качестве выходных данных, приведенных ниже для каждого из 11300 do c, на основе 2000 наиболее часто используемых слов для передачи в нейронную сеть. Я начинающий аналитик python текстовых данных. мой вывод должен быть как ТИП: (список списка) закодировано (пример одного do c)

Словарь: {'испуганный': 36, 'информация': 846, 'короткий': 1628, 'история': 1720 , 'газета': 1176, 'день': 434, 'a go': 40, 'sort': 1670, 'упомянуть': 1065, 'japanese': 887, 'using': 1883, 'like': 970, «земля»: 929, «посылка»: 1240, «луна»: 1118, «статья»: 99, «марка»: 1021, «материя»: 1043, «хуже»: 1973, «память»: 1063, ...........} (2000 слов)

wanted output as:array([   6,   29,  710, 1, 6, 1615,  920,    1,    6,  257,    
   1076,  618,  280,   65,  277,  423,  287,  259, 1423,   45,  274,
    151,  167,  147,  379,   45, 1863,  162,  274,  915,  274,  131,
    702,  326,  670, 1615, 1660, 1924, 1810,  326,  223, 1924, 1615,
      3,  670,  144,  645,  116,  326,  120,   11,  843,    3,  131,
     76,  948,  274,  665,   14, 1374, 1185, 1009,   15,  484,  636,
   1687,  263, 1853,  274,    1, 1072,   51,  762,   78,   51,  165,
   1733,  430,  430,   36,  326,   16,  205,  591,   37,  952,    7,
    ................... 1615], dtype=int64)

Мой код для кодировки:

news_dataset = fetch_20newsgroups(subset='train',shuffle=True,remove=('headers', 'footers', 'quotes'),random_state=34542)

def preprocess_texts(texts): # def function for Preprocessing
    preprocessed_texts = []
    for text in texts:
        text = text.lower()
        text = re.sub('[^\\w\\s]', ' ', text)
        text = re.sub('\\d+', ' ', text)
        text = re.sub('\\s+', ' ', text)
        text = re.sub('---', ' ', text)
        text = re.sub('___', ' ', text)
        text = re.sub(' " "', ' ',text)
        text = re.sub(" ' '", ' ',text)
        text = re.sub('mmmmm', ' ', text)
        words = text.split()
        words = [w for w in words if w not in ENGLISH_STOPWORDS]
        words = [ENGLISH_LEMMATIZER.lemmatize(w) for w in words]
        text = ' '.join(words)
        preprocessed_texts.append(text)
    return preprocessed_texts

# Cleaning data using prerocess_text function
processed_texts = preprocess_texts(news_dataset.data)
print(processed_texts[:10])

# Creating a diction using 2000 words
from sklearn.feature_extraction.text import CountVectorizer  
cv = CountVectorizer(max_features=2000)
X = cv.fit(processed_texts)
#print(X)
vocab = cv.get_feature_names()
Dictionary=X.vocabulary_
print(len(Dictionary))
print(Dictionary)
# converting it into label encoding (list of list)
list_processed_text =[[Dictionary[e] for e in doc] for doc in processed_texts]




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