gpt4 book ai didi

python - 在 Gensim 中对标记文档使用自定义标签

转载 作者:太空宇宙 更新时间:2023-11-03 19:43:18 27 4
gpt4 key购买 nike

我正在 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 处的标签不是自定义标签,而是通用数字。

我在这里做错了什么?

最佳答案

tags应该是标签列表,因为 Doc2Vec每个TaggedDocument可以学习多个标签(尽管这不一定是个好主意)。

通过提供 tags='4577911' ,因为 Python 字符串也是字符列表,所以它本质上与 tags=['4', '5', '7', '7', '9', '1', '1'] 相同。 – 并且训练只向模型显示 10 个唯一标签,每个数字一个,在所有文本中重复。

供应tags=['4577911']相反,它应该按预期工作。

关于python - 在 Gensim 中对标记文档使用自定义标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60305405/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com