首页 > 解决方案 > 使用 sklearn learn 对列表列表进行矢量化?

问题描述

我正在尝试将sklearn中的 CountVectorizer 与列表一起使用。

Lst=[['apple','peach','mango'],['apple','apple','mango']]

我希望输出返回每个列表中的字数。例如:

0:apple:1
0:peach:1
0:mango:1

1:apple:2
1:peach:0
1:mango:1

或任何其他格式。

我发现这篇文章与我的相似,但答案并不完整。

我应该如何使用 scikit learn 对以下列表列表进行矢量化?

任何帮助表示赞赏。

标签: pythoncountvectorizer

解决方案


试试这个,使用计数器

>>> from collections import Counter
>>> lst=[['apple','peach','mango'],['apple','apple','mango']]

输出:

>>> {i:Counter(v) for i,v in enumerate(lst)}
{0: Counter({'apple': 1, 'peach': 1, 'mango': 1}),
 1: Counter({'apple': 2, 'mango': 1})}

获得预期的格式(在列表中)

>>> [[i, obj, count] for i,v in enumerate(lst) for obj,count in Counter(v).items()]
[[0, 'apple', 1],
 [0, 'peach', 1],
 [0, 'mango', 1],
 [1, 'apple', 2],
 [1, 'mango', 1]]

推荐阅读