使用scikitlearn返回文档中的术语位置

2024-09-27 04:27:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道scikit learn遵循了单词袋假设/模型,根据documentation。然而,有没有办法在计算tf-idf时提取术语位置?在

例如,如果我有这些文件

document1 = "foo bar baz"
document2 = "bar bar baz"

我能得到这个吗(一个元组/术语表)

^{pr2}$

or(以位置元组为值的术语词典)

document1_terms = {1: (1, ), 2: (2, ), 3: (3, )}
document2_terms = {2: (1, 2), 3: (3, )}

Tags: 模型tfdocumentationbarbazscikit单词learn
2条回答

经过一番反复试验,我找到了这个问题的解决办法。首先创建过帐

vectorizer = CountVectorizer()

term_doc_freq = vectorizer.fit_transform(collection['document'])

然后用一组术语id来表示每个文档

^{pr2}$

你是说这个吗?在

In [13]: from sklearn.feature_extraction.text import CountVectorizer

In [14]: vectorize = CountVectorizer(min_df=1)

In [15]: document1 = "foo bar baz"
    ...: document2 = "bar bar baz dee"
    ...: 

In [16]: documents = [document1, document2]

In [17]: d = vectorize.fit_transform(documents)

In [18]: vectorize.vocabulary_
Out[18]: {u'bar': 0, u'baz': 1, u'dee': 2, u'foo': 3}

In [19]: d.todense()
Out[19]: 
matrix([[1, 1, 0, 1],
        [2, 1, 1, 0]], dtype=int64)

相关问题 更多 >

    热门问题