Spacy与Word2Vec中的文档相似性

Kal*_*pit 1 nlp python-3.x gensim spacy

我有一个约有1.2万个文档的利基语料库,并且我想测试具有相似含义的几乎重复的文档-考虑有关不同新闻机构报道的同一事件的文章。

我尝试过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]])
Run Code Online (Sandbox Code Playgroud)

使用gensim,我发现了一种不错的方法,并进行了一些预处理,但是相似性评分仍然很低。有没有人遇到过这样的问题,是否有一些有用的资源或建议?

Nat*_*Raw 8

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

1)删除停用词/最常用词

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

即“纽约市”成为其自己的唯一标记,而不是“新”,“约克”,“城市”

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

3)使用Doc2Vec而不是Word2Vec(由于您已经在使用gensim,因此应该很难理解这一点,它们有自己的实现)

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