Я создаю Вектор документа в Gensim.
У меня есть собственный список тегов (называемый url), который я хочу использовать для TaggedDocument:
documents = [[TaggedDocument(doc, str(ur)) for ur in url] for doc in space]
Каждый пользовательский URL-адрес последовательность из 10 чисел.
Результат выглядит так:
[TaggedDocument(words=['googl', 'ibm', 'quantenrechnpentium', 'fdiv', 'bug', 'vierteljahrhundert',
'intel', 'geld', 'technikquantencomput', 'computibm', 'googl', 'beweis',
'quantum', 'supremacyforsch', 'natursycamor', 'qubit', 'groessenordn', 'supercomput', 'bauartibm',
'algorithmus', 'rechn', 'quant', 'quantenrechn', 'werkzeug', 'rechenfehl', 'intel', 'erfahr',
'professor', 'drthomas', 'fdiv', 'bug', 'intel', 'pentium', 'intel', 'fehl', 'austauschprogramm',
'intel', 'sorgdesktop', 'pc', 'prozessor', 'ghz', 'cor', 'fertigungstechn', 'stromauflag', 'pc',
'bauvorschlaeg', 'amd', 'ryzdesktop', 'schwaech', 'intel', 'geldquartal', 'rekordumsatz',
'milliard', 'dollarmilliard', 'preis', 'geld', 'fertigungsanlag', 'servermarkt', 'ausblick', 'amd',
'umsatz', 'jahresvergleich', 'anleg', 'ryz', 'epycs', 'ausblick', 'amd', 'erfolgmicrosoft', 'ryz',
'kund', 'surfac', 'notebook', 'gruend', 'journalist', 'surfac', 'testgeraet', 'ryz', 'ryz',
'vergleich', 'intel', 'cor', 'processor', 'conferenc', 'intel', 'atomkern', 'tremont',
'mikroarchitektur', 'atom', 'prozessor', 'nanomet', 'fertigelkhart', 'lak', 'embedded', 'systemiot',
'devic', 'skyhawk', 'lak', 'chips', 'nasatom', 'celeron', 'pentium', 'silv', 'tremont', 'goldmont',
'plusceleron', 'tremont', 'cor', 'kern', 'lakefield', 'microsoft', 'surfac', 'neo', 'kombination',
'cor', 'tremont', 'intel', 'atom', 'kern', 'cach', 'serv', 'tremont', 'risc', 'spezialist', 'sifiv',
'kern', 'aussichtnanomet', 'chipsarm', 'cortex', 'raspberry', 'pi', 'rechenpowspannend', 'erweiter',
'sichsogenannt', 'world', 'ids', 'trennung', 'welt', 'risc', 'socsprozess', 'cpu', 'kerncach',
'zeil', 'ram', 'adressbereich', 'world', 'id', 'sicherheitslueck', 'spectr', 'art', 'schreck',
'prozessor', 'markt', 'microsoft', 'sich', 'business', 'notebook', 'sogenannt', 'secured', 'cor',
'pcs', 'massnahmstart', 'betriebssystem', 'notebook', 'bios', 'bios', 'windows', 'updat', 'uefi',
'capsul', 'updattechnik', 'linuxsecured', 'cor', 'pcs', 'microsoft', 'angab', 'mobilrechn',
'business', 'version', 'surfacuefi', 'bios', 'kern', 'microsoft', 'rahm', 'project', 'artikel'], tags='4577911')
Как видите, в конце поля tags
с моим пользовательским номером.
После обучения модели:
model = Doc2Vec(docu, vector_size=5, window=2, min_count=2, dm =1)
Я выполняю запрос на сходство с невидимыми тестовыми документами:
rank = []
for line in test:
tokens = line.split()
new_vector = model.infer_vector(tokens)
sims = model.docvecs.most_similar([new_vector])
rank.append(sims)
Что дает это для первого документа:
[('8', 0.9214882850646973),('9', 0.919198751449585),
('0', 0.9049716591835022), ('1', 0.9047936797142029),
('6', 0.9028873443603516), ('2', 0.8913612365722656),
('3', 0.8857095837593079), ('7', 0.8747860789299011),
('5', 0.8512719869613647), ('4', 0.8370641469955444)]
Как видите, теги с индексом 0 каждого подсписка - это не пользовательские теги, а общие c числа.
Что я здесь не так делаю?