相关疑难解决方法(0)

无监督的短语语义聚类

我有大约一千个潜在的调查项目作为字符串向量,我想减少到几百.通常,当我们谈论数据减少时,我们有实际数据.我将项目管理给参与者并使用因子分析,PCA或其他一些降维方法.

就我而言,我没有任何数据.只是项目(即文本字符串).我想通过消除具有相似含义的项目来减少集合.据推测,如果实际给予参与者,他们将是高度相关的.

我一直在阅读有关文本分析的聚类方法.这个SO问题展示了我在不同的例子中看到过的方法.OP指出,群集解决方案并不能完全回答他/她的问题.以下是在我的案例中如何应用(令人不满意):

# get data (2 columns, 152 rows)
Run Code Online (Sandbox Code Playgroud)

使用样本项的dput()链接到text.R文件

# clustering
library(tm)
library(Matrix)
x <- TermDocumentMatrix( Corpus( VectorSource(text$item) ) )
y <- sparseMatrix( i=x$i, j=x$j, x=x$v, dimnames = dimnames(x) )  
plot( hclust(dist(t(y))) )
Run Code Online (Sandbox Code Playgroud)

该图显示项目145和149是聚类的:

145"让你知道你不被通缉"

149"让你知道他爱你"

这些项目共享相同的词干,"让你知道",这可能是聚类的原因.从语义上讲,它们是对立的.

OP与他/她的例子有类似的挑战.一位意见提供者指出wordnet包装是一种可能的解决方案.

问题(根据反馈编辑)

我怎样才能阻止像145和149这样的项目进行聚类,因为它们共享干?

问题重点较少的次要问题:有人在这里看到更好的解决方案吗?我遇到的许多方法都涉及监督学习,测试/训练数据集和分类.我相信我正在寻找的是更多的语义相似性/聚类(例如,FAC pdf).

r cluster-analysis text-mining unsupervised-learning

6
推荐指数
1
解决办法
1753
查看次数

如果小于行标准差,则将行值更改为零

如果行的所有值小于该行的标准差,我想将它们更改为零。

set.seed(007)
X <- data.frame(matrix(sample(c(5:50), 100, replace=TRUE), ncol=10))

   X1 X2 X3 X4 X5 X6 X7 X8 X9 X10
1  37 10 43 45 11 17 39 13 13  44
2  10 24 32 16  7 50 41 47  9  39
3  23 49 46 35 16 30 22 10 11  46
4  41 46 19 28 47 39 27 40 49  13
5  29 23 49 10 50 17 42 43  7  31
6  31 26 11 36 35 43 …
Run Code Online (Sandbox Code Playgroud)

r rows standard-deviation

5
推荐指数
1
解决办法
1867
查看次数