分解文本特征进行分类

2024-04-20 05:24:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据框,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函数将文本特征转换为数字特征,然后使用新的dataframe进行分类。你知道吗

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

Tags: 数据函数文本df数字特征单词keyword
1条回答
网友
1楼 · 发布于 2024-04-20 05:24:34

你可能想看看词干分析器。你知道吗

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']

相关问题 更多 >