是否有任何最佳实践来准备基于文本的分类功能?

时间:2014-02-28 05:57:22

标签: machine-learning nlp text-mining

我们向客户提供了许多反馈和问题报告。它们是纯文本。我们正在尝试为这些文档构建自动分类器,以便未来反馈/问题可以自动路由到正确的支持团队。除了文本本身,我认为我们应该将客户档案,案例提交区域等内容纳入分类器。我认为这可以为分类器提供更多线索,以便做出更好的预测。

目前,为培训选择的所有功能都基于文本内容。如何包含上述元功能?

(顺便说一句,我是新手。如果这个问题很简单,那么请原谅。)

ADD 1

我目前的做法是首先对原始文本(包括标题和正文)进行一些典型的预处理,例如删除停用词,POS标记和提取重要单词。然后我将标题和正文转换为单词列表,并以稀疏格式存储它们,如下所示:

  

实例1:word1:word1计数,word2:word2计数,....

     

实例2:wordX:word1计数,wordY:word2计数,....

对于其他非文本功能,我打算将它们添加为单词列之后的新列。所以最终的例子如下:

  

实例1:word1:word1计数,...,特征X:值,特征Y:值

2 个答案:

答案 0 :(得分:5)

  1. 如果costomer简档数据是二进制值(例如,客户的性别),则该特征可以设想为0,1,其中0表示男性,1表示女性。当该要素具有多个值时,例如提交区域(假设我们这里有五个区域)。我们应该将它设计为具有五个维度的特征向量,例如[0 0 1 0 0],来自向量的每个维度表示该帖子是否来自该特定区域。这种方式在实践中更好,而不是在使用像逻辑回归这样的分类器时使用具有多个值的特征

  2. 您正在使用名为bag of words表示的功能。因为词袋是文档中单词的tf,但是具有较高tf的单词应该比具有较低tf的单词更重要。我认为不是。在实践中,tf * idf表现出更好的表现。

    idf(逆文档频率)是一种估计单词重要程度的方法,通常,文档频率(df)是评估单词在分类中的重要程度的好方法,因为单词出现在单词中时较少的文件(nba总是出现在属于体育的文件中)显示出更好的解释,因此idf与词的重要性正相关。

答案 1 :(得分:4)

简单地将新功能连接到矢量以表示您认为重要的其他内容。分类变量(那些是'a'或'b'或'c')可以转换为n路变量的n个二进制特征。二进制或连续的可以保持不变。

然后,您所要做的就是标准化您的功能,以确保某些功能的权重不会高于其他功能,并将它们输入分类器。判别模型是最合适的,因为您将添加许多潜在相关的功能:逻辑回归或SVM可能会运作良好。