我正在关注此博客,尝试使用gensim在Wikipedia语料库上训练doc2vec。 https://markroxor.github.io/gensim/static/notebooks/doc2vec-wikipedia.html。
我注意到输出非常区分大小写。例如,
string1=model.infer_vector("machine Learning".split())
string2=model.infer_vector("computer Science".split())
spatial.distance.cosine(string1, string2)
output is 0.25
如果我更改输入的大小写,
string1=model.infer_vector("machine learning".split())
string2=model.infer_vector("computer science".split())
spatial.distance.cosine(string1, string2)
output is 1.0535
我认为在训练模型之前,我应该将所有内容都小写。但是,如上面的链接所示,我首先直接读取输入内容:
class TaggedWikiDocument(object):
def __init__(self, wiki):
self.wiki = wiki
self.wiki.metadata = True
def __iter__(self):
for content, (page_id, title) in self.wiki.get_texts():
yield TaggedDocument([c for c in content], [title])
wiki = WikiCorpus("enwiki-latest-pages-articles-sample2.xml.bz2")
documents = TaggedWikiDocument(wiki)
关于如何降低Wiki文档中所有案件的任何建议?
顺便说一句,我现在仅使用一个很小的文件大小来测试运行代码是否存在错误,因此这可能是infer_vector对大小写非常敏感的原因。如果我使用实际的Wiki数据集,也许这个问题是最小的?