从单词列表中提取更多相似的单词

2024-06-17 15:38:19 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一个描述特定群体的词汇表。例如,有一个小组是以宠物为基础的。在

示例组pets的单词如下:

[pets, pet, kitten, cat, cats, kitten, puppies, puppy, dog, dogs, dog walking, begging, catnip, lol, catshit, thug life, poop, lead, leads, bones, garden, mouse, bird, hamster, hamsters, rabbits, rabbit, german shepherd, moggie, mongrel, tomcat, lolcatz, bitch, icanhazcheeseburger, bichon frise, toy dog, poodle, terrier, russell, collie, lab, labrador, persian, siamese, rescue, Celia Hammond, RSPCA, battersea dogs home, rescue home, battersea cats home, animal rescue, vets, vet, supervet, Steve Irwin, pugs, collar, worming, fleas, ginger, maine coon, smelly cat, cat people, dog person, Calvin and Hobbes, Calvin & Hobbes, cat litter, catflap, cat flap, scratching post, chew toy, squeaky toy, pets at home, cruft's, crufts, corgi, best in show, animals, Manchester dogs' home, manchester dogs home, cocker spaniel, labradoodle, spaniel, sheepdog, Himalayan, chinchilla, tabby, bobcat, ragdoll, short hair, long hair, tabby cat, calico, tabbies, looking for a good home, neutring, missing, spayed, neutered, declawing, deworming, declawed, pet insurance, pet plan, guinea pig, guinea pigs, ferret, hedgehogs, minipigs, mastiff, leonburger, great dane, four-legged friend, walkies, goldfish, terrapin, whiskas, mr dog, sheba, iams]

现在我计划使用NLTK丰富这个列表。在

首先,我可以得到每个单词的语法集。如果我们以cats为例,我们得到:

Synset('cat.n.01')
Synset('guy.n.01')
Synset('cat.n.03')
Synset('kat.n.01')
Synset('cat-o'-nine-tails.n.01')
Synset('caterpillar.n.02')
Synset('big_cat.n.01')
Synset('computerized_tomography.n.01')
Synset('cat.v.01')
Synset('vomit.v.01')

为此,我们用户nltk's wordnetfrom nltk.corpus import wordnet as wn。在

然后我们可以得到每个synset的引理。通过简单地加上这些引理,我就加上了一点噪音,我怎么也加了一些有趣的词。在

但我想看看的是降噪,如果有任何建议或替代方法,我将不胜感激。在

一个这样的想法,我试图看看单词“cats”是否出现在synset名称或定义中,以包括或排除那些引理。在


Tags: home单词catpetdogtoydogscats
1条回答
网友
1楼 · 发布于 2024-06-17 15:38:19

我建议在这里使用kNN的一个变体来使用语义相似性:对于每个候选词,计算所有金标准词的成对语义相似度,然后只保留k(从5到100尝试不同的k)最相似的金标准词,计算与这些k个单词相似性的平均值(或和),然后使用这个值来丢弃候选噪声-通过排序并只保留n个最佳值,或者通过实验定义的阈值进行截止。在

语义相似度可以根据WordNet计算,参见related question,或者基于word2vec或类似技术学习的向量模型,再次参见related question。在

实际上,你可以尝试使用这项技术,把所有单词作为候选词,或者把所有/部分单词出现在特定领域的文本中——在最后一种情况下,这项任务称为自动术语识别,方法可以直接用于你的问题,也可以作为候选词的来源;在Google scholar上搜索它们;作为一个简短描述现有方法和调查链接的示例,请参见this paper

Fedorenko, D., Astrakhantsev, N., & Turdakov, D. (2013). Automatic recognition of domain-specific terms: an experimental evaluation. In SYRCoDIS (pp. 15-23).

相关问题 更多 >