【发布时间】:2019-03-22 11:26:20
【问题描述】:
我在使用预训练的 fasttext.bin 模型(从 https://fasttext.cc/docs/en/crawl-vectors.html 检索)时遇到问题。检查 most_similar 是否有 in-vocabulary-words 会返回合理的响应。但是,当检查 most_similar 以查找只有一个字符不同的词汇表外单词时,会返回乱码。
我的问题:这是否与模型有关,还是我以错误的方式使用它?
from gensim.models.wrappers import FastText
model = FastText.load_fasttext_format('cc.en.300.bin')
model.most_similar("universitet")
[('Universitet', 0.8522759675979614),
('högskolan', 0.677900493144989),
('Högskola', 0.6725144386291504),
('högskola', 0.6724666357040405),
('Högskolan', 0.6600401997566223),
('Universitetet', 0.6519213318824768),
('Høgskolen', 0.647462010383606),
('Universiteti', 0.6399329900741577),
('forskning', 0.617483377456665),
('språk', 0.6172543168067932)]
model.most_similar("universitett")
[('ESTATERETAILCONSUMERPHONESCARSBIKESAPPSINTERNETTABLETSCOMPUTERSSOCIETYPOLITICSLAWCRIMEENVIRONMENTSCIENCEARTSCELEBRITIESSPORTSSPECIALSFIRST',
0.47905537486076355),
('Wikipedia-Page-Suzannah-B-Troy-6-yrs-after-Misogynist-Cyber-Vandalism-Censorship-via-Deletion-on-a-page-about-Censorship-Wikipedia-Agrees-to-retur',
0.47733378410339355),
('DEky4M0BSpUOTPnSpkuL5I0GTSnRI4jMepcaFAoxIoFnX5kmJQk1aYvr2odGBAAIfkECQoABAAsCQAAABAAEgAACGcAARAYSLCgQQEABBokkFAhAQEQHQ4EMKCiQogRCVKsOOAiRocbLQ7EmJEhR4cfEWoUOTFhRIUNE44kGZOjSIQfG9rsyDCnzp0AaMYMyfNjS6JFZWpEKlDiUqALJ0KNatKmU4NDBwYEACH5BAkKAAQALAkAAAAQABIAAAhpAAEQGEiQIICDBAUgLEgAwICHAgkImBhxoMOHAyJOpGgQY8aBGxV2hJgwZMWLFTcCUIjwoEuLBym69PgxJMuDNAUqVDkz50qZLi',
0.474983274936676),
('DEky4M0BSpUOTPnSpkuL5I0GTSnRI4jMepcaFAoxIoFnX5kmJQk1aYvr2odGBAAIfkECQoABAAsCQAAABAAEgAACGcAARAYSLCgQQEABBokkFAhAQEQHQ4EMKCiQogRCVKsOOAiRocbLQ7EmJEhR4cfEWoUOTFhRIUNE44kGZOjSIQfG9rsyDCnzp0AaMYMyfNjS6JFZWpEKlDiUqALJ0KNatKmU4NDBwYEACH5BAUKAAQALAkAAAAQABIAAAhpAAEQGEiQIICDBAUgLEgAwICHAgkImBhxoMOHAyJOpGgQY8aBGxV2hJgwZMWLFTcCUIjwoEuLBym69PgxJMuDNAUqVDkz50qZLi',
0.47364047169685364),
('crescendosexibloguerobateyabsorbersexiindesignabledinerolatifundiosexibrezarcularsutesexirapoplinbrezarcorrentosoVd.lazadareflejoreglafeministabrezarchuzasexiouttiqueblogueroin',
0.47090965509414673),
('QQFZAAEACwAAAAAGQASAAAIjgAJCBQIoGDBgQgTKiwooGHDgwshDgTgsOLDhAAGaAQwUYBBhx85EtS4cWLGjR5JSjxZkgDFkwwLohTJUqTLlANiwvQ4seVNjwwfBoVokKjFo0Jlksz506NFiklZtoQKFSjIoktLVv1YsahSn1WP0vzq02VYoAjJMsVYVKHZrDbdupW6Vq5cunHtRjQoMCAAIfkECRQABAAsCQADAAQABAAACAsABQgkILCgwYEBAQAh',
0.46747487783432007),
('записиТелепрограммаVikerraadioOtseEsilehtJärelkuulamineSaatekavaPodcastidRaadioteaterRaadio',
0.4659830331802368),
('deblogueroreflejoantecedentesexitlacuachebateysuteindesignableabsorbersexilatifundiosexibrezarsutemultiétnicosexiplinrapobrezarcorrentosoVd.lazadafisiochillidomabrezarsico-chuzaoutcolodrablogueroin',
0.46159273386001587),
('2OtseEsilehtJärelkuulamineSaatedPodcastidKlassikaraadioOtseEsilehtJärelkuulamineSaatekavaPodcastidRaadio',
0.4609595537185669),
('leilighetEiendomstypeSelveierleilighetPlass', 0.4550461769104004)]
【问题讨论】:
-
如果您尝试使用较短版本的 'universitet' 的单词,结果如何?例如,“大学”?
-
"universit" 是一个词汇表,并返回正常响应。如果我尝试使用词汇表中单词 "pharmaceutical" 的较短版本,例如model.most_similar("pharmaceutica"),我还是胡言乱语
-
你试过用“.vec”文件代替“.bin”吗?
-
@JoshVoigts 不,但如果我没记错的话,.vec 只包括词向量,而不包括构建词汇外词向量所必需的 N-gram跨度>
-
也可能是gensim库不支持out-of-vocab词,你可以试试用fasttextpython库代替吗?