Spacy 与 Word2Vec 中的文档相似性

Document similarity in Spacy vs Word2Vec

我有一个约 12k 文档的小众语料库,我想测试其中具有相似含义的近乎重复的文档——想想不同新闻机构报道的关于同一事件的文章。

我试过 gensim 的 Word2Vec,即使测试文档在 语料库中,它也给了我可怕的相似度分数(<0.3),我试过 SpaCy,这给了我>5k 相似度 > 0.9 的文档。我测试了SpaCy最相似的文档,大部分没用。

这是相关代码。

tfidf = models.TfidfModel(corpus)
corpus_tfidf = tfidf[corpus]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
lsi = models.LsiModel(corpus, id2word=dictionary, num_topics=40)
doc = preprocess(query)
vec_bow = dictionary.doc2bow(doc)
vec_lsi_tfidf = lsi[tfidf[vec_bow]] # convert the query to LSI space
index = similarities.Similarity(corpus = corpus, num_features = len(dictionary), output_prefix = "pqr")
sims = index[vec_lsi_tfidf] # perform a similarity query against the corpus
most_similar = sorted(list(enumerate(sims)), key = lambda x:x[1])

for mid in most_similar[-100:]:
    print(mid, file_list[mid[0]])

我使用 gensim 找到了一个不错的方法,进行了一些预处理,但相似度得分仍然很低。有没有人遇到过这样的问题,有没有一些有用的资源或建议?

我会 post 发表评论,但我没有足够的声誉!在 NLP 中,很容易陷入方法而忘记预处理。

1) 删除Stopwords/most个常用词

2) 合并词对 - 查看 SpaCy 的文档

即"New York City" 成为它自己的唯一标记,而不是 "New"、"York"、"City"

https://spacy.io/usage/linguistic-features

3) 使用 Doc2Vec 而不是 Word2Vec(既然你已经在使用 gensim,这应该不难理解,他们有自己的实现)

然后,完成所有这些操作后,您将获得文档向量,这可能会给您带来更好的分数。另外,请记住,您拥有的 12k 文档只是总体方案中的少量示例。