如何从文本数据中选择特征?

数据挖掘 数据挖掘 文本挖掘 特征选择 特征提取
2022-02-25 08:50:23

我有一个属于十个不同类别的问题数据集,即(定义、事实、缩写、填空、动词、数字、日期、谜题、词源和类别关系)。

类别简述如下:

  1. 定义——包含答案定义的问题。
  2. 类别关系——答案与在类别中指定关系的问题具有语义关系。
  3. FITB——这些是一般的填空题——其中一些要求完成一个短语。
  4. 缩写 - 答案是问题中缩写的扩展。
  5. 谜题——这些需要推导或综合才能得到答案。
  6. 词源 - 答案是从外来词衍生的英语单词。
  7. 动词——答案是动词。
  8. 数字——答案是一个数字。
  9. 日期 - 问题要求日期或年份。
  10. Factoid – 如果问题的答案可以在 Wikipedia 上找到,则该问题是事实。

我使用了名为 shiftreducer 的斯坦福核心 NLP 包来找出一个类别中每个问题的词性 (POS) 值。我曾想过使用这种 POS 模式作为类之间的判别式,但结果证明它是通用的,因为:

  1. 所有的类都遵循类似的模式
  2. 名词在 POS 计数中居首位,其次是行列式、介词、形容词、复数名词,最后是动词。

我可以通过哪些其他方式来区分问题类别?或者正如我首先提出的问题,“我选择什么样的特征来进行有效分类?”

1个回答

如果我理解正确,您正在寻找这些问题的文本并训练分类器来识别它们属于 10 个类别中的哪一个。为了做到这一点,你想提出一个体面的特征表示。

我认为您对词性的发现很直观。有意义的是,在语法英语中(假设您的问题数据是用英语编写的),大多数问题将遵循类似的词性序列,因为语法正确的问题遵循特定的句法形式(至少在以疑问形式提出时,例如“乔治华盛顿是什么时候出生的?”)

所以,你已经排除了一些事情——你实际上应该将其视为进步。如果您还没有尝试过,您可能会做的一件简单的事情是使用问题中的实际单词作为特征。你可以使用任何你喜欢的 n-gram 顺序,但 unigrams 作为一种直接的语言特性很突出。在我看来,虽然 POS 标签在各个类别中相似,因此难以区分,但问题中使用的实际单词可能因类别而异,从而使您的模型更好地区分类别。

也就是说,也许像“时间”、“年份”和“何时”这样的Date词与类的共现率更高,而像“数值”和“数量”这样的词与类的共现率更高Number(显然,这是推测 -我没有看到你的数据)。您还可以查看此功能集的二元组、三元组或任何其他数字 n-gram。

最后,您可能还可以使用 NLP 方法生成其他有用的功能。我不熟悉 Shiftreducer 软件,但如果有很多关于专有名词的问题,命名实体识别可能有助于为该类生成特征。Factoid其他非常简单的功能,例如问题的长度(以令牌数计)。最后一个想法是只使用 POS 标记器中的标记动词,将它们标记起来,看看它们在类之间是否不同。Verb这对于识别课堂上存在的问题可能是一个有用的功能。希望这些是让您入门的一些想法。