【问题标题】:Factorizing text features for classification为分类分解文本特征
【发布时间】:2019-07-25 21:38:33
【问题描述】:

我有一个数据框,df 由文本和数字特征组成,类似于下图所示。

Feature 1     Feature 2         Feature 3           Feature 4         Label
 10            20                keyword             Human             1
  2             3                Keywords            Dog               0
  8             2                Stackoverflow       cat               0

目前我使用factorize函数将文本特征转换为数字特征,然后使用新的数据框进行分类。

df[' Feature 3'] = df[' Feature 3'].factorize()[0]
df[' Feature 4'] = df[' Feature 4'].factorize()[0]

运行上述代码后,我的数据框如下所示

 Feature 1     Feature 2         Feature 3           Feature 4         Label
 10            20                0                    0                 1
  2             3                1                    1                 0
  8             2                2                    2                 0

factorize 函数将 'keywords' 和 'keyword' 读取为不同的单词,那么是否有任何函数可以将类似于 'keywords' 和 'keyword' 的单词读取为相同的单词?

输出数据框实际上应该是这样的

 Feature 1     Feature 2         Feature 3           Feature 4         Label
 10            20                0                    0                 1
  2             3                0                    1                 0
  8             2                1                    2                 0

【问题讨论】:

    标签: python text-classification


    【解决方案1】:

    你可能想看看词干分析器。

    NLTK 举例说明如何使用它们here,但简而言之,词干分析器会将单词缩减为词干,例如...

    from nltk.stem.porter import *
    
    stemmer = PorterStemmer()
    
    words = ['jog', 'jogging', 'jogged']
    
    [stemmer.stem(word) for word in words]
    

    返回:

    ['jog', 'jog', 'jog']
    

    或为你

    words = ['keyword', 'keywords']
    
    [stemmer.stem(word) for word in words]
    

    返回:

    ['keyword', 'keyword']
    

    编辑:

    我应该指出,这些词不需要相似才能起作用:

    words = ['drinking', 'running', 'walking', 'walked']
    

    输出:

    ['drink', 'run', 'walk', 'walk']
    

    【讨论】:

      猜你喜欢
      • 2013-10-13
      • 2015-12-13
      • 2011-04-07
      • 2019-06-04
      • 2019-06-30
      • 1970-01-01
      • 2017-05-16
      • 2017-08-01
      • 2012-11-16
      相关资源
      最近更新 更多