首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在自然语言处理(NLP)中,如何进行有效的降维?

在自然语言处理(NLP)中,如何进行有效的降维?
EN

Stack Overflow用户
提问于 2014-11-21 08:35:30
回答 1查看 1.1K关注 0票数 6

在NLP中,通常情况下,特征的维度非常大。例如,对于手头的一个项目,特征的维度几乎是20,000 (p = 20,000),并且每个特征都是一个0-1整数,以显示论文中是否存在特定的单词或二元语法(一篇论文是R^{p}$中的数据点$x \)。

我知道特征之间的冗余度很大,所以降维是必要的。我有三个问题:

1)我有10,000个数据点(n = 10,000),每个数据点有10,000个特征(p = 10,000)。进行降维的有效方法是什么?R^{n \x p}$中的矩阵奇异值分解( $X )是如此之大,以至于主成分分析(或奇异值分解,截断奇异值分解)都可以,但我不认为奇异值分解是降低二进制特征维数的好方法,而词包(或K-均值)很难直接在$X$上进行(当然,它是稀疏的)。我没有服务器,我只用我的电脑:-(。

2)如何判断两个数据点之间的相似性或距离?我认为欧几里德距离可能不适用于二进制特征。L0规范怎么样?你用的是什么?

3)如果我想使用SVM机器(或其他内核方法)进行分类,我应该使用哪个内核?

非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2014-11-22 00:43:04

1)你不需要降维。如果你真的想要,你可以使用L1惩罚线性分类器来减少最有用的特征。

2)通常使用余弦相似度,或TFIDF重定标向量的余弦相似度。

3)线性支持向量机与如此多的特征一起工作得最好。

关于如何在python中像这样进行分类,这里有一个很好的教程:http://scikit-learn.org/dev/tutorial/text_analytics/working_with_text_data.html

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27052267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档