Я слежу за этим блогом, пытаясь обучить doc2vec в Википедии, используя gensim.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)
Любое предложение о том, как я могу опустить все случаи в вики-документе?
Кстати,Сейчас я использовал очень маленький размер файла, чтобы проверить, есть ли ошибки при запуске кода, поэтому это может быть причиной того, что infer_vector очень чувствителен к регистру.Может быть, эта проблема минимальна, если я использую фактический набор данных вики?