gpt4 book ai didi

python - 分解文本特征进行分类

转载 作者:太空宇宙 更新时间:2023-11-03 13:56:27 25 4
gpt4 key购买 nike

我有一个数据框 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

最佳答案

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

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

关于python - 分解文本特征进行分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54985550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com