gpt4 book ai didi

python-3.x - Spacy 与 Word2Vec 中的文档相似度

转载 作者:行者123 更新时间:2023-12-02 17:27:13 26 4
gpt4 key购买 nike

我有一个约 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,我找到了一种不错的方法,进行了一些预处理,但相似度分数仍然很低。有人遇到过这样的问题吗?是否有一些有用的资源或建议?

最佳答案

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

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

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

即“纽约市”成为自己独特的代币,而不是"new"、“约克”、“城市”

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

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

然后,一旦完成所有这些事情,您将拥有文档向量,这可能会给您带来更好的分数。另外,请记住,您拥有的 12k 文档只是宏伟计划中的一小部分示例。

关于python-3.x - Spacy 与 Word2Vec 中的文档相似度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49767270/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com