python词语匹配相似度_NLP加速词相似度匹配

既然您说过可以使用spacy作为NLP库,那么让我们考虑一个简单的基准测试。我们将使用brownnews语料库将其分成两半来创建一些任意的词对。在from nltk.corpus import brown

brown_corpus = list(brown.words(categories='news'))

brown_df = pd.DataFrame({

'word_1':brown_corpus[:len(brown_corpus)//2],

'word_2': brown_corpus[len(brown_corpus)//2:]

})

len(brown_df)

50277

两个标记/文档的余弦相似性可以用^{}方法计算。在

^{pr2}$

最后,将这两种方法应用于数据帧:nltk_similarity = %timeit -o brown_df.apply(nltk_max_similarity, axis=1)

1 loop, best of 3: 59 s per loop

spacy_similarity = %timeit -o brown_df.apply(spacy_max_similarity, axis=1)

1 loop, best of 3: 8.88 s per loop

请注意,NLTK和spacy在度量相似性时使用了不同的技术。spacy使用经过word2vec算法预训练的词向量。从docs:Using word vectors and semantic similarities

[...]

The default English model installs vectors for one million vocabulary

entries, using the 300-dimensional vectors trained on the Common Crawl

corpus using the GloVe algorithm. The GloVe common crawl vectors have

become a de facto standard for practical NLP.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值