【问题标题】:How to prune low frequency and high frequency words from a dataset?如何从数据集中修剪低频和高频词?
【发布时间】:2014-02-01 15:12:58
【问题描述】:

是否有任何工具可以用来从我的数据集中修剪高频和低频术语?

【问题讨论】:

  • 提供多种工具。您使用哪种编程语言?
  • @ChthonicProject 我在 java 中工作

标签: machine-learning text-classification pruning


【解决方案1】:

一个常用的算法是Grubbs' test。我真的不知道 Java 中的实现,但如果您愿意用不同的语言进行预处理,那么 R 中的 outliers package 包含 Grubbs 的测试等。要消除多个异常值,您可以重复应用 Grubbs 检验。

编辑:

我刚刚看到我错过了文本分类标签。如果您只是想避免过于频繁的术语扭曲您的结果,也许TF-IDF 对您来说可能会很有趣。这当然不会降低维度。

【讨论】:

  • thanx,我在 weka 工作,它提供了所有功能,但是我不确定它的修剪,这就是为什么我要求一个工具只预处理文档以分析修剪结果。
  • 据我所知,Weka 是一个成熟的数据挖掘工具。我认为没有理由不信任他们的修剪。他们的结果有什么奇怪的地方导致你不信任吗?
  • 好吧 weka 是一个非常好的工具,但我不明白一些事情(可能是因为我是新手)。例如在 StringToWordVector 类中,函数 setWordsToKeep() 我们选择要保留在词汇表中的单词,但我怎么知道我的数据集中有多少特征或单词?即如何知道 20K 文档数据集中的特征/单词数量以填充 StringToWordVector 的 setWordsToKeep 函数?
  • 取自here 应该有一个选项(-M)来指定最小词频。此外,-stopwords 支持使用 stopwords 或 -S 作为默认的停用词列表。
【解决方案2】:

Stop words 是一种在自然语言处理中消除(非常)高频词的常用技术。

低频词通常很有趣。你真的想消灭它们吗?

【讨论】:

  • 我在论文中看到一些作者修剪低频词,即整个数据集中仅出现在 3 个文档中的词等。
  • 很公平。我想可以减少词汇量。
猜你喜欢
  • 1970-01-01
  • 2016-07-26
  • 2015-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-22
  • 1970-01-01
相关资源
最近更新 更多