我正在使用 TFIDF 稀疏矩阵进行文档分类,并且希望仅保留每个文档的前 n 个(比如 50 个)术语(按 TFIDF 分数排名)。请参阅下面的编辑。
import numpy as np
import pandas as pd
from sklearn.feature_extraction.text import TfidfVectorizer
tfidfvectorizer = TfidfVectorizer(analyzer='word', stop_words='english',
token_pattern='[A-Za-z][\w\-]*', max_df=0.25)
n = 50
df = pd.read_pickle('my_df.pickle')
df_t = tfidfvectorizer.fit_transform(df['text'])
df_t
Out[15]:
<21175x201380 sparse matrix of type '<class 'numpy.float64'>'
with 6055621 stored elements in Compressed Sparse Row format>
Run Code Online (Sandbox Code Playgroud)
我已经尝试按照这篇文章中的示例进行操作,虽然我的目的不是显示特征,而是在训练前为每个文档选择前 n 个。但是我收到内存错误,因为我的数据太大而无法转换为密集矩阵。
df_t_sorted = np.argsort(df_t.toarray()).flatten()[::1][n]
Traceback (most recent call last):
File "<ipython-input-16-e0a74c393ca5>", line 1, in <module>
df_t_sorted = np.argsort(df_t.toarray()).flatten()[::1][n]
File "C:\Users\Me\AppData\Local\Continuum\anaconda3\lib\site-packages\scipy\sparse\compressed.py", …Run Code Online (Sandbox Code Playgroud) python sparse-matrix tf-idf scikit-learn text-classification
我想通过 Windows 命令行使用conda安装sklearn_pandas库。该软件包在 conda 存储库中显然是“私有的”(诚然,这很可能是我无法安装它的原因,但我更愿意寻求建议,以防万一有办法解决此问题)。
我试过了conda install -c creditx sklearn_pandas,但出现以下错误:
Solving environment: failed
PackagesNotFoundError: The following packages are not available from current cha
nnels:
- sklearn_pandas
Current channels:
- https://conda.anaconda.org/creditx/win-64
- https://conda.anaconda.org/creditx/noarch
- https://repo.anaconda.com/pkgs/main/win-64
- https://repo.anaconda.com/pkgs/main/noarch
- https://repo.anaconda.com/pkgs/free/win-64
- https://repo.anaconda.com/pkgs/free/noarch
- https://repo.anaconda.com/pkgs/r/win-64
- https://repo.anaconda.com/pkgs/r/noarch
- https://repo.anaconda.com/pkgs/pro/win-64
- https://repo.anaconda.com/pkgs/pro/noarch
- https://repo.anaconda.com/pkgs/msys2/win-64
- https://repo.anaconda.com/pkgs/msys2/noarch
To search for alternate channels that may provide the conda package you're
looking for, navigate to
https://anaconda.org
and use the search bar …Run Code Online (Sandbox Code Playgroud) 我有两个数据框,我将它们绘制为条形图。我几乎可以按照自己的意愿绘制它们,但我想知道是否可以为“色调”添加类别标签。
目前的剧情是这样的:
但是,我想将类别标签(只有两个)添加到每个字母的每个“列”中。所以它看起来像这样:
数据帧看起来像这样(尽管这些只是编辑过的片段):
Case Letter Size Weight
0 upper A 20 bold
1 upper A 23 bold
2 lower A 61 bold
3 lower A 62 bold
4 upper A 78 bold
5 upper A 95 bold
6 upper B 23 bold
7 upper B 40 bold
8 lower B 47 bold
9 upper B 59 bold
10 upper B 61 bold
11 upper B 99 bold
12 lower C 23 bold
13 upper D 23 bold
14 upper …Run Code Online (Sandbox Code Playgroud) 我希望使用“滑动窗口”将列表拆分为相同大小的块,但我不想在末尾截断列表,而是想环绕,以便最终的块可以分布在列表的开头和结尾。
例如,给定一个列表:
l = [1, 2, 3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)
我希望生成大小为 n=3 的块,如下所示:
[1, 2, 3], [4, 5, 6]
[2, 3, 4], [5, 6, 1]
[3, 4, 5], [6, 1, 2]
Run Code Online (Sandbox Code Playgroud)
或者,具有大小为 n=2 的块的同一列表应按如下方式拆分:
[1, 2], [3, 4], [5, 6]
[2, 3], [4, 5], [6, 1]
Run Code Online (Sandbox Code Playgroud)
该列表可能不会被均匀地划分为 n 个子列表(例如,如果原始列表的长度为 7 并且 n=3 - 或除 7 或 1 之外的任何值)。与通常情况一样,舍入值len(l) / n可用于确定分割大小。
这篇文章是相关的,尽管它没有按照我的需要进行环绕。我已经尝试过但没有成功任何有用的东西。任何建议将非常受欢迎!
python ×3
scikit-learn ×2
command-line ×1
conda ×1
list ×1
matplotlib ×1
pandas ×1
seaborn ×1
tf-idf ×1
windows ×1