Spacy与Word2Vec中的文档相似度

时间:2018-04-11 05:37:30

标签: python-3.x nlp gensim spacy

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

我已经尝试过gensim的Word2Vec,即使测试文档在语料库中,也会给我一个可怕的相似性得分(<0.3),我尝试过SpaCy,这给了我&gt;具有相似性的5k文档&gt; 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我找到了一个不错的方法,有一些预处理,但相似性得分仍然很低。有没有人遇到这样的问题,是否有一些资源或建议可能有用?

1 个答案:

答案 0 :(得分:5)

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

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

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

即。 “纽约市”成为它自己的独特标记,而不是“新”,“约克”,“城市”

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

3)使用Doc2Vec而不是Word2Vec(因为你已经在使用gensim,这不应该太难以弄清楚,它们有自己的实现)

然后,一旦你完成了所有这些事情,你将拥有文档向量,这可能会给你一个更好的分数。另外,请记住,您所拥有的12k文档是宏观方案中的少量样本。