Разница между словарем и get_features () в TfidfVectorizer? - PullRequest
0 голосов
/ 23 января 2019

у меня

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 ()? Они связаны? Оба имеют особенности с индексами согласно документации. Это сбивает с толку?

1 Ответ

0 голосов
/ 24 января 2019

Атрибут vocabulary_ выводит словарь, в котором все нграммы являются ключами словаря, а соответствующие значения - положения столбцов каждой нграммы (функции) в матрице tfidf.Метод get_feature_names () выводит список, в котором нграммы отображаются в соответствии с положением столбца каждой функции.Поэтому вы можете использовать любой из них, чтобы определить, какой столбец 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[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
...