使用 sklearn 学习向量化列表列表?

Vectorizing a list of lists with sklearn learn?

我正在尝试使用 sklearn 中的 CountVectorizer 和列表列表。

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

我希望输出 return 每个列表中的单词数。 例如:

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

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

或任何其他格式。

我发现这个 post 与我的相似,但答案不完整。

How should I vectorize the following list of lists with scikit learn?

感谢任何帮助。

试试这个,使用 Counter

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