Текстовые наборы данных с именами 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]