找到与noun输入相关的形容词

时间:2012-07-16 13:03:44

标签: semantic-markup wordnet semantic-analysis part-of-speech

我想根据用户在搜索框中输入的字词来确定用户个性的特征。这是一个例子:

搜索字词:“计算机”

检测到个性/描述符:分析,逻辑,系统,有条理


我知道这项任务非常重要。我之前使用过WordNet,但我不确定它是否包含每个名词节点的形容词云。词性标注是它自己的野兽,所以我不确定构建我自己的语料库并搜索与关键字共存的形容词术语频率是最好的想法,但我将在下面解释。

我目前正在使用维基百科转储,在删除了停用词(以及,或,,等等,等等)后处理每篇文章的术语频率。我的想法是可能寻找形容词(使用WordNet进行POS标记)和整个语料库中的名词共存(例如,形容词逻辑经常与名词计算机),并且,基于相对的词干 - 形容词频率,判断它与名词在语义上是否相关。潜在的应用是巨大的。


另一个想法是阻止名词,搜索以该词干开头的形容词,然后搜索该形容词的同义词。例如:

搜索字词:“计算机”

词干:“comput-”

有词干的形容词:计算

同义词:???


问题在于名词的形容词形式并不总是具有形容词形式,而一些名词词干将与可怕的错误形容词相匹配。 * BAD *示例:

搜索字词:“正在运行”(技术上是动名词,但仍然是名词)

:“run-”

有词干的形容词:runny

同义词:不是我想要的词。想找到像“运动”,“有动力”,“有纪律”的话。


这是以前做过的吗?你对我如何处理这个问题有什么建议吗?这几乎就像我正在寻求为文档中的“重要”单词生成形容词云。

编辑:我意识到这个问题没有“正确”的答案。我会奖励那些提出具有最佳理论潜力的方法的赏金。

2 个答案:

答案 0 :(得分:1)

WordNet没有你需要的东西 - 它几乎没有关于非同义词或没有分层链接的词之间关系的信息(主席 - >家具)等。

只需使用OpenNLP(http://opennlp.apache.org)并解析大量文本 - OpenNLP解析器将在句子中检测动词 - 形容词/名词 - 形容词,允许您构建关系数据库。 此时剩下的就是根据预定义的形容词列表过滤数据库。

答案 1 :(得分:1)

假设你有一些沉重的计算资源,我建议使用像Hyperspace Analog of Language(HAL)这样简单的东西为你的维基百科转储构建一个Term X Term矩阵。然后,您的算法可能类似于:

  • 给定查询词/词,找到它(HAL)向量。
  • 对于矢量,找到具有最高权重的形容词组件。
    • 为了有效地执行此操作,您可能希望我们使用字典(如WordNet)来预处理您的术语列表(即由HAL提取的术语),以便您知道(在处理查询之前)可以使用哪些术语形容词。
  • 对于每个形容词,在HAL空间中找到N个最相似的向量。
    • 可选:您可以通过查找在搜索字词中共存的字词缩小此列表。

这种方法在代码和数据结构方面基本上简化了内存和计算效率。然而,对于我认为你想要的东西,它应该做得很好。第一步将为您提供最常与查询词相关联的形容词,而HAL空间中的向量相似性(步骤3)将给出与范例相关的词(粗略地,可以相互替换,因此如果您开始对于某种形容词,你应该得到更多的形容词"就其与查询词的关系而言,这应该是"云"的一个相当好的代理。你在找。