【问题标题】:How to extract meaningful keywords from a query?如何从查询中提取有意义的关键字?
【发布时间】:2012-09-18 11:03:51
【问题描述】:

我正在从事一个关于网络智能的项目,我必须在该项目中构建一个接受用户查询并提取有意义的关键字的系统。例如,用户输入查询“How to do socket programming in Java”,然后我必须忽略"how", "to", "do", "in" 并采用"socket", "programming", "java" 进行进一步处理和聚类,例如socket 和 programming 是两个不同的有意义的关键字,但可以一起用作产生不同含义的关键字。我正在寻找像TF-IDF 这样的算法来解决这个问题。任何帮助将不胜感激。

【问题讨论】:

  • 简单地删除停用词然后在空格处分割字符串怎么样?够好吗?
  • 我正在寻找基于智能的解决方案。单独删除停用词并不总是有效,我必须制作停用词词典。
  • 对于术语提取,我已经能够在不使用 NLP 马力甚至 TF-IDF 的情况下获得非常好的结果。结果至少与您在评论中提到的雅虎工具相匹配。值得探索...

标签: nlp information-retrieval


【解决方案1】:

您正在寻找文本分析解决方案。

我仅将 R 用于此目的,但查看它的一种方法是您需要一个您认为没有意义的关键字的单词列表,这通常称为“停用词”。您可以找到几乎所有流行语言的停用词在线列表。完成此操作后,您可能想要获得几百个输入并计算那里每个关键字的频率(已经删除了停用词,以及标点符号并将所有文本都设为小写)并尝试识别您认为的其他关键字不相关并将它们添加到您要删除的单词列表中。

在此之后,您可以探索大量选项;一个例子是词干提取,它获取每个单词的核心术语,以便将“pages”和“page”视为相同的关键字。 (随着你的深入,你会在网上找到大量的东西来微调你的方法)

希望这会有所帮助。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-10-10
  • 1970-01-01
  • 1970-01-01
  • 2011-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多