TfidfVectorizer, похоже, дает неверные результатыPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 TfidfVectorizer, похоже, дает неверные результаты

Сообщение Anonymous »

  • У меня есть список длиной 7 (7 предметов)
  • Каждый элемент в списке содержит длинную строку слов.
  • Каждый элемент списка можно рассматривать как тему с длинным предложением, которое выделяет его.
  • Я хочу проверить, какие слова делают каждую тему уникальной (каждый элемент в список)
Вот мой код:

Код: Выделить всё

from sklearn.feature_extraction.text import TfidfVectorizer
train = read_train_file() # A list with huge sentences that I can't paste here

tfidfvectorizer = TfidfVectorizer(analyzer= 'word', stop_words= 'english')
tfidf_wm        = tfidfvectorizer.fit_transform(train)
tfidf_tokens    = tfidfvectorizer.get_feature_names()

df_tfidfvect = pd.DataFrame(data = tfidf_wm.toarray(), index=train_df.discourse_type.unique(), columns = tfidf_tokens)

for col in df_tfidfvect.T.columns:
print(f"\nsubjetct: {col}")
print(df_tfidfvect.T[col].nlargest(2))
Часть данных о поезде:

Код: Выделить всё

for i, v in enumerate(train):
print(f"subject: {i}: {train[i][:50]}")

subject: 0: like policy people average cant play sports b poin
subject: 1: also stupid idea sports suppose fun privilege play
subject: 2: failing fail class see act higher c person could g
subject: 3: unfair rule thought think new thing shaped land fo
subject: 4: land form found human thought many either fight de
subject: 5: want say know trying keep class also quite expensi
subject: 6: even less sense saying first find something really
Выход:

Код: Выделить всё

subjetct: Position
people    0.316126
school    0.211516
Name: Position, dtype: float64

subjetct: Claim
people    0.354722
school    0.296632
Name: Claim, dtype: float64

subjetct: Evidence
people    0.366234
school    0.282213
Name: Evidence, dtype: float64

subjetct: Concluding Statement
people    0.385200
help      0.267567
Name: Concluding Statement, dtype: float64

subjetct: Lead
people    0.399011
school    0.336605
Name: Lead, dtype: float64

subjetct: Counterclaim
people       0.361070
electoral    0.321909
Name: Counterclaim, dtype: float64

subjetct: Rebuttal
people    0.31029
school    0.26789
Name: Rebuttal, dtype: float64
Как видите, люди и школы имеют высокие значения tf-idf.
Может быть, я ошибаюсь , но я ожидал, что слова, относящиеся к определенной теме, не будут одинаковыми во всех темах (согласно формуле TF-IDF).
Так что же не так с TfidfVectorizer ?

Подробнее здесь: https://stackoverflow.com/questions/707 ... ct-results
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Модель (DecisionTreeClassifier) ​​дает неверные результаты
    Anonymous » » в форуме Python
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • WxWidgets: Простая математическая формула дает неверные результаты?
    Anonymous » » в форуме C++
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Добавление времени с помощью strtotime дает неверные результаты при выходе за полночь.
    Anonymous » » в форуме Php
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Алгоритм двоичного сложения дает неверные результаты
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Почему сортировка строк по длине дает неверные результаты?
    Anonymous » » в форуме C++
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»