abh*_*rni 3 python numpy scipy term-document-matrix
我有以下情况,我想解决Python(最好使用numpy和scipy):
我如何实现这一目标Python?我知道我可以scipy.sparse.coo_matrix用来表示文档作为稀疏向量并使用点积找到余弦相似度,但是如何将整个语料库转换为大而稀疏的术语文档矩阵(这样我也可以将它的行提取为scipy.sparse.coo_matrix行向量)?
谢谢.
我可以建议你看一下scikit-learn吗?这是Python社区中非常受欢迎的库,它具有非常简单的一致API.他们还实现了余弦相似性度量.这是取自例如这里的你如何能做到这一点的3行代码:
>>> from sklearn.feature_extraction.text import TfidfVectorizer
>>> vect = TfidfVectorizer(min_df=1)
>>> tfidf = vect.fit_transform(["I'd like an apple",
... "An apple a day keeps the doctor away",
... "Never compare an apple to an orange",
... "I prefer scikit-learn to Orange"])
>>> (tfidf * tfidf.T).A
array([[ 1. , 0.25082859, 0.39482963, 0. ],
[ 0.25082859, 1. , 0.22057609, 0. ],
[ 0.39482963, 0.22057609, 1. , 0.26264139],
[ 0. , 0. , 0.26264139, 1. ]])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7014 次 |
| 最近记录: |