我正在研究文本分类问题。这是我的数据集
Narration | Category
_________________________________________________________
clg cr: ten plus |transfer to ten plus
At Sydney, Garment payment BY Mr.Haj |Transfer From Mr.Haj
RTGS-CPU Wales-Steven |Transfer from Steven
NEFT-Payment-Amy Adams/12march/XXXX4567 |Transfer from Amy Adams
KFC Chicken Burger |Food
Trent Wines and Rum |Alcohol
CD-Payment-2345XXX78 Imran |Transfer from Imran
. .
. .
. .
问题是我有大量的数据集进行训练,(大约300万条目)因此形成了很多类别(大约500k类别)我不可能用这么多训练机器类别。问题在于个人转移,数据集中的示例:(从Mr.Haj转移,从Steven转移,......) 我也不想放松叙述的重要性因此我不想概括为“转移到XX”而不是党名。
我的两个问题是: 1.如何使用如此多的类别训练数据。 2.如何在测试时处理党名(例如:Mr.Haj,Steven),并使用类似的测试叙述数据,并将分类输出作为转移给客户。
我的剧本的一部分:
from sklearn.model_selection import train_test_split
data= pd.read_csv('file.txt', delimiter='\t',usecols=['Narration','Category'],encoding=("utf-8"))
target_one=data['Category']
test_data= pd.read_csv('test_file.txt', delimiter='\t',usecols=['Narration','Category'],encoding=("utf-8"))
x_train, y_train = (data.Narration, data.Category )
x_test, y_test = (test_data.details, test_data.category)
from nltk.corpus import stopwords
vect = CountVectorizer(ngram_range=(1,2),stop_words='english')
X_train = vect.fit_transform(x_train)
X_test = vect.transform(x_test)
mnb = MultinomialNB(alpha =0.13)
mnb.fit(X_train,y_train)