【问题标题】:Binary Feature Extraction二进制特征提取
【发布时间】:2013-02-21 20:18:48
【问题描述】:

我是用于自然语言处理目的的特征提取的初学者。 我想知道如何使用哈希图来提取文本的特征。如果每个特征都是hashmap中的一个“key”,而它的value就是这个“value”(所有特征都是二进制,0或1),是不是意味着我需要n个hashmap(n是文本中的字数)?因为对于每个单词我都需要提取特征。

我说的对吗?

提前致谢, 爱丽丝

【问题讨论】:

  • 这里描述的问题好像是输入的格式错误导致的(看答案的最后评论)。由于“过于本地化”而投票结束。

标签: machine-learning nlp feature-extraction


【解决方案1】:

是的,您可以使用哈希映射来实现这一点,但是根据功能的数量和您的内存要求,它可能不是最好或最快的数据结构,它实际上取决于您的域。通常,将特征表示为存在或不存在都会产生较差的结果。更好的方法是在对特征进行加权时使用 TF-IDF。

您所说的方法是“词袋”方法。这是您根据单词边界对文档进行标记并将单词用作特征的地方。作为第一遍,您应该删除停用词(即“a”、“and”、“the”),然后规范化您的数据(即 Now == now == nOw)。然后,您可以执行词干提取以进一步减小向量大小。

现在可以低估提取特征的一个好方法是查看MALLET。 我有一个非常简单的朴素贝叶斯实现,带有一个 RCV-1 解析器,您可以查看示例Naive Bayes

【讨论】:

  • 谢谢Shane,MALLET 正是我正在使用的!我正在为此准备输入数据。我现在拥有的是这种格式:字标签 F1:v1 F2:v2 F3:v3。我使用 SVMlight 格式。那是对的吗?我为分类器获得的结果很糟糕,但显然输入数据看起来没有任何问题。我对么?我是否正确准备了输入数据?
  • 你的语料库是如何标注的?是的,您的格式看起来正确。你有一个平衡的数据集吗?另外,如果这对您有所帮助,请不要忘记投票:)
  • 您还可以访问非 SVMlight 格式的原始文本吗?另一种方法是使用内置功能在 MALLET 中构建管道。看看mallet.cs.umass.edu/import-devel.php。您是将 MALLET 嵌入到现有应用程序中还是只是从命令行运行它?
  • 感谢您的完整回复。不幸的是,我没有足够的声望来投票!我试过了 :( 真是可惜!
  • 我自己标记了一个小语料库,所以它包含了我想要的标签。我有原始数据、标记数据和一切。我从命令行使用它。当我尝试在我的应用程序中使用它时,通过添加管道,程序会遇到类似这样的错误
猜你喜欢
  • 2012-09-05
  • 1970-01-01
  • 1970-01-01
  • 2019-06-07
  • 2020-08-06
  • 2011-08-15
  • 2012-10-19
  • 1970-01-01
  • 2011-07-25
相关资源
最近更新 更多