在熊猫数据框中使用的TF-IDF



>我正在尝试在具有数据集内容的熊猫中使用TF-IDF 两列第一列它的内容文本数据,另一列它的内容分类数据看起来像吹

summary                                 type of attack 

不明身份的非裔美国人袭击者开枪射击... 武装突击 不明肇事者引爆爆炸物 轰炸 卡尔·阿姆斯特朗成员岁月帮派投掷火药... 基础设施 卡尔·阿姆斯特朗成员年帮闯入联合国... 基础设施 不明身份的肇事者向燃烧弹投掷... 基础设施

我想使用 tf-idf 转换第一列,然后使用它来构建预测第二列的模式,该列包含攻击类型

我帮你把df处理成X和y,用一个简短的例子进行训练。

import pandas as pd
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.preprocessing import LabelEncoder
data = {'summary':['unknown african american assailants fired',
'Armed Assault unknown perpetrators detonated explosives','Bombing karl armstrong member years gang threw'],'type of attack':['bullet','explosion','gang']}
#tfidf
df = pd.DataFrame(data)
tf = TfidfVectorizer()
X = tf.fit_transform(df['summary'])
#label encoding
le = LabelEncoder()
y = le.fit_transform(df['type of attack'])
#your X and y ready to be trained
print('X----')
print(X)
print('y----')
print(y)

输出

X----
(0, 9)    0.4673509818107163
(0, 4)    0.4673509818107163
(0, 1)    0.4673509818107163
(0, 0)    0.4673509818107163
(0, 15)   0.35543246785041743
(1, 8)    0.4233944834119594
(1, 7)    0.4233944834119594
(1, 13)   0.4233944834119594
(1, 5)    0.4233944834119594
(1, 2)    0.4233944834119594
(1, 15)   0.3220024178194947
(2, 14)   0.37796447300922725
(2, 10)   0.37796447300922725
(2, 16)   0.37796447300922725
(2, 12)   0.37796447300922725
(2, 3)    0.37796447300922725
(2, 11)   0.37796447300922725
(2, 6)    0.37796447300922725
y----
[0 1 2]

最新更新