scikit-learn - 如何提取 TF-IDF 特征的系数?
问题描述
我有一个数据集,我在其中使用文本列来预测一些数字列。
我的最终问题是:文本列中的哪些单词与更高/更低的分数相关联?
所以我的管道是首先对我的文本列进行矢量化,然后使用岭回归。但是在我构建了这个管道之后,如何提取矢量化器特征名称上的系数?
import pandas as pd
from sklearn.pipeline import Pipeline
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import Ridge
from sklearn.model_selection import train_test_split
# This is my toy data
d = {'text': ["I am a a string", "And I am a string", "I, too am string", "And me", "Me too"],
'target': [3, 4, 14, 6, 7]}
df = pd.DataFrame(d)
X_train, X_test, y_train, y_test= train_test_split(df['text'], df['target'],
test_size=0.3, random_state=42)
# Here is a vectorizer
vect = TfidfVectorizer(stop_words='english')
X_train_vect = vect.fit_transform(X_train)
# Here is a ridge regressor
model = Ridge(random_state=42)
model.fit(X_train_vect, y_train)
# Now we make a pipeline
pipe = Pipeline([('vect',vect),('model',model)])
y_pred = pipe.predict(X_test)
我将如何从这里提取单词作为系数?例如:"I am": 0.05
或其他
解决方案
idf = vect.idf_
print (dict(zip(vect.get_feature_names(), idf)))
这应该这样做。
推荐阅读
- r - 错误:找不到函数“%||%”(管道百分比)
- c# - 如何在 C# 中将 PDF 文本坐标转换为图像文本坐标
- python - PHP7.4:OpenSSL AES-CFB 加密不同于 Python
- python - XPath 返回空字符串 Scrapy Python
- gitlab - GITLAB 中的私有项目访问令牌
- html - 使子元素适合屏幕大小而不会使用 css 或 Angular 溢出
- php - 如何检查数组是否有值?
- c# - 在 C# 中,什么是指运行时引用类型的静态变量,它可以在堆中访问?
- vue.js - 将 VueJs 项目导出为组件
- hyperledger-fabric - 对等加入频道错误:TLS 握手失败,并出现错误远程错误:tls: bad certificate server=PeerServer