TfidfVectorizer 的词汇表和 get_features() 之间的区别?
Difference between vocabulary and get_features() of TfidfVectorizer?
我有
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
# Train the vectorizer
text="this is a simple example"
singleTFIDF = TfidfVectorizer(ngram_range=(1,2)).fit([text])
singleTFIDF.vocabulary_ # show the word-matrix position pairs
# Analyse the training string - text
single=singleTFIDF.transform([text])
single.toarray()
我想将每个值与相应的特征相关联。
现在单身的结构是什么?您如何将单个值的位置映射到特征?
如何解释词汇索引和 get_features()?他们有关系吗?根据文档,两者都具有带索引的功能。这是令人困惑?
属性vocabulary_输出一个字典,其中所有的ngram都是字典键,各自的值是每个ngram(特征)在tfidf矩阵中的列位置。 get_feature_names() 方法输出一个列表,其中 ngrams 根据每个特征的列位置出现。因此,您可以使用其中任何一个来确定哪个 tfidf 列对应于哪个功能。在下面的示例中,tfidf 矩阵很容易转换为 pandas 数据框,使用 get_feature_names() 的输出来命名列。另请注意,所有值都被赋予了相同的权重,并且所有权重的平方和等于一。
singleTFIDF.vocabulary_
Out[41]:
{'this': 5,
'is': 1,
'simple': 3,
'example': 0,
'this is': 6,
'is simple': 2,
'simple example': 4}
singleTFIDF.get_feature_names_out()
Out[42]: ['example', 'is', 'is simple', 'simple', 'simple example', 'this', 'this is']
import pandas as pd
df = pd.DataFrame(single.toarray(), columns=singleTFIDF.get_feature_names())
df
Out[48]:
example is is simple simple simple example this this is
0 0.377964 0.377964 0.377964 0.377964 0.377964 0.377964 0.377964
我有
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity
# Train the vectorizer
text="this is a simple example"
singleTFIDF = TfidfVectorizer(ngram_range=(1,2)).fit([text])
singleTFIDF.vocabulary_ # show the word-matrix position pairs
# Analyse the training string - text
single=singleTFIDF.transform([text])
single.toarray()
我想将每个值与相应的特征相关联。 现在单身的结构是什么?您如何将单个值的位置映射到特征?
如何解释词汇索引和 get_features()?他们有关系吗?根据文档,两者都具有带索引的功能。这是令人困惑?
属性vocabulary_输出一个字典,其中所有的ngram都是字典键,各自的值是每个ngram(特征)在tfidf矩阵中的列位置。 get_feature_names() 方法输出一个列表,其中 ngrams 根据每个特征的列位置出现。因此,您可以使用其中任何一个来确定哪个 tfidf 列对应于哪个功能。在下面的示例中,tfidf 矩阵很容易转换为 pandas 数据框,使用 get_feature_names() 的输出来命名列。另请注意,所有值都被赋予了相同的权重,并且所有权重的平方和等于一。
singleTFIDF.vocabulary_
Out[41]:
{'this': 5,
'is': 1,
'simple': 3,
'example': 0,
'this is': 6,
'is simple': 2,
'simple example': 4}
singleTFIDF.get_feature_names_out()
Out[42]: ['example', 'is', 'is simple', 'simple', 'simple example', 'this', 'this is']
import pandas as pd
df = pd.DataFrame(single.toarray(), columns=singleTFIDF.get_feature_names())
df
Out[48]:
example is is simple simple simple example this this is
0 0.377964 0.377964 0.377964 0.377964 0.377964 0.377964 0.377964