Spacy和Word2Vec中的文档相似性

3
我有一个约12k个文档的特定语料库,我想在其中测试具有相似含义的近似重复文档 - 比如不同新闻机构报道同一事件的文章。
我已经尝试了gensim的Word2Vec,即使测试文档在语料库中,也给出了可怕的相似度得分(<0.3)。我还尝试了SpaCy,它给出了大于0.9相似度的5k多个文档。我测试了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个回答

14

我想发表评论,但是我的声望不够!在NLP中,容易陷入方法的泥淖而忘记预处理。

1)删除停用词/最常见的单词

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

例如,“纽约市”将成为其自己独特的标记,而不是“New”,“York”,“City”

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

3)使用Doc2Vec而不是Word2Vec(由于您已经在使用gensim,所以这不应该太难弄清楚,他们有自己的实现)

然后,一旦您完成所有这些操作,您将拥有文档向量,这很可能会给您带来更好的得分。此外,请记住,您拥有的12k个文档在宏观范围内只是一小部分样本。


谢谢回复。我已经完成了1和3,2刚刚被提到我的待办事项列表中 :) - Kalpit
没问题,我的朋友!除非有其他更好的答案出现,你能暂时接受这个答案吗? - Nate Raw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接