Проблемы с использованием пользовательского словаря для tfidfvectorizer scikit-learnPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Проблемы с использованием пользовательского словаря для tfidfvectorizer scikit-learn

Сообщение Anonymous »

Я пытаюсь использовать пользовательский словарь в Scikit-Learn для некоторых задач кластеризации, и я получаю очень странные результаты. Тем не менее, я уже определил группу слов (около 24 000), которые я хотел бы использовать в качестве пользовательского словаря. Я пробовал до сих пор 2 подхода, но в конце я получаю те же результаты. Первый - создать список, второй - создать словарь. Код для создания словаря такой: < /p>

myvocab = {}
vocabulary = []

count = 0

for row in results:
skillName = re.sub(r'&#?[a-z0-9]+;', ' ', row['SkillName'])
skillName = unicode(skillName,"utf-8")
vocabulary.append(skillName) #Using a list
myvocab[str(skillName)] = count #Using a dictionary
count+=1
< /code>

Я затем использую словарный запас (либо версия списка, либо словарь, оба они дают один и тот же результат в конце) в Tfidfectorizer следующим образом: < /p>

vectorizer = TfidfVectorizer(max_df=0.8,
stop_words='english' ,ngram_range=(1,2) ,vocabulary=myvocab)
X = vectorizer.fit_transform(dataset2)
< /code>

Форма X равен (651, 24321), так как у меня есть 651 экземпляры для кластера и 24321 слова в словаре.(14, 11462) 1.0
(20, 10218) 1.0
(34, 11462) 1.0
(40, 11462) 0.852815313278
(40, 10218) 0.52221264006
(50, 11462) 1.0
(81, 11462) 1.0
(84, 11462) 1.0
(85, 11462) 1.0
(99, 10218) 1.0
(127, 11462) 1.0
(129, 10218) 1.0
(132, 11462) 1.0
(136, 11462) 1.0
(138, 11462) 1.0
(150, 11462) 1.0
(158, 11462) 1.0
(186, 11462) 1.0
(210, 11462) 1.0

: :
< /code>

Как видно, для большинства случаев присутствует только слово из словарного запаса (что неправильно, так как есть как минимум 10), и для многих случаев не найдено даже одно слово. Кроме того, найденные слова, как правило, всегда одинаковы в случаях, что не имеет смысла.feature_names = np.asarray(vectorizer.get_feature_names())
< /code>

i get: < /p>

['.NET' '10K' '21 CFR Part 11' ..., 'Zend Studio' 'Zendesk' 'Zenworks']
< /code>

Я должен сказать, что программа работала отлично, когда используемый словарный запас был определен из входных документов, поэтому я настоятельно подозреваю, что проблема связана с использованием пользовательского словаря. < /p>

Кто -нибудь имеет подсказку о том, что происходит?>

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Проблемы с использованием специального словаря для TfidfVectorizer scikit-learn
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Проблемы с использованием специального словаря для TfidfVectorizer scikit-learn
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Я не понимаю работу tfidfvectorizer scikit-learn.
    Anonymous » » в форуме Python
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Я не понимаю работу tfidfvectorizer scikit-learn.
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Использование серии Polars в качестве входных данных для Scikit Learn Tfidfvectorizer
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

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