我正在处理一个文本分类问题,试图将一组词语分类到不同的类别中。尽管有很多可用的分类库,请不要建议使用这些库来回答我的问题。
让我解释一下我想实现的内容。(举个例子)
词语列表:
- java
- programming
- language
- c-sharp
类别列表:
- java
- c-sharp
我们将训练集设置如下:
- java 映射到类别 1. java
- programming 映射到类别 1.java
- programming 映射到类别 2.c-sharp
- language 映射到类别 1.java
- language 映射到类别 2.c-sharp
- c-sharp 映射到类别 2.c-sharp
现在我们有一个短语 “The best java programming book“,从给定的短语中,以下词语与我们的“词语列表”匹配:
- java
- programming
“programming”有两个映射的类别“java”和“c-sharp”,所以它是一个常见词。
“java”只映射到类别“java”。
所以我们匹配的类别为“java”。
这是我想到的解决方案,这个方案可以吗?它能实现吗?有什么建议吗?我有没有遗漏什么?有什么缺陷吗?等等…
回答:
当然这是可以实现的。如果你在一个合适的数据集上(我猜是Java和C#编程书籍的标题)训练一个朴素贝叶斯分类器或线性SVM,它应该能学会将术语“Java”与Java关联,将“C#”和“.NET”与C#关联,并将“programming”与两者关联。也就是说,如果数据集均匀分布,对于像“programming”这样的常见术语,朴素贝叶斯分类器可能会学到Java或C#的概率大致相等。