我正计划编写一个分类程序,该程序能够将未知文本分类为大约 10 个不同的类别,如果它们都不适合,那么很高兴知道这一点。也有可能不止一个类别是正确的。
我的预定义类别是:
c1 = "politics"
c2 = "biology"
c3 = "food"
...
我正在考虑如何表示我的训练数据的正确方法,或者哪种分类是正确的。第一个挑战是找到正确的特征。如果我只有文本(每个 250 字),你会推荐什么方法来找到正确的特征?我的第一种方法是删除所有停用词并使用 POS-Tagger ( Stanford NLP POS-Tagger ) 来查找名词、形容词等。我将它们视为使用所有经常出现的单词作为特征。
例如政治,我有大约 2.000 个文本实体。使用提到的 POS-Tagger 我发现:
law: 841
capitalism: 412
president: 397
democracy: 1007
executive: 112
...
仅将其用作功能是否正确?训练集将如下所示:
Training set for politics:
feature law numeric
feature capitalism numeric
feature president numeric
feature democracy numeric
feature executive numeric
class politics,all_others
sample data:
politics,5,7,1,9,3
politics,14,4,6,7,9
politics,9,9,9,4,2,1
politics,5,8,0,7,6
...
all_others,0,2,4,1,0
all_others,0,0,1,1,1
all_others,7,4,0,0,0
...
这会是二元分类的正确方法吗?或者我将如何定义我的集合?还是多类分类是正确的方法?然后它看起来像:
Training set for politics:
feature law numeric
feature capitalism numeric
feature president numeric
feature democracy numeric
feature executive numeric
feature genetics numeric
feature muscle numeric
feature blood numeric
feature burger numeric
feature salad numeric
feature cooking numeric
class politics,biology,food
sample data:
politics,5,7,1,9,3,0,0,2,1,0,1
politics,14,4,6,7,9,0,0,0,0,0,1
politics,9,9,9,4,2,1,1,1,1,0,3
politics,5,8,0,7,6,2,2,0,1,0,1
...
biology,0,2,4,1,0,4,19,5,0,2,2
biology,0,0,1,1,1,12,9,9,2,1,1
biology,7,4,0,0,0,10,10,3,0,0,7
...
你打算说什么?