我正在尝试找出是否有一种已知的算法能够检测一个句子的“关键概念”。
使用案例如下:
- 用户输入一个查询句子(鸡肉的味道像火鸡吗?)
- 我们的系统识别句子的概念(鸡肉,火鸡)
- 然后它运行搜索我们语料库内容的过程
我们欠缺的是确定句子真正涉及什么核心“主题”的能力。句子“鸡肉的味道像火鸡吗?”的主要主题是“鸡肉”,因为用户询问的是鸡肉的味道。而“火鸡”是次要的辅助主题。
所以……我正在尝试找出是否有一种算法可以帮助我确定一个句子的主要主题……如果你知道任何这样的算法,请告诉我!!!
我正在尝试找出是否有一种已知的算法能够检测一个句子的“关键概念”。
使用案例如下:
我们欠缺的是确定句子真正涉及什么核心“主题”的能力。句子“鸡肉的味道像火鸡吗?”的主要主题是“鸡肉”,因为用户询问的是鸡肉的味道。而“火鸡”是次要的辅助主题。
所以……我正在尝试找出是否有一种算法可以帮助我确定一个句子的主要主题……如果你知道任何这样的算法,请告诉我!!!
我曾经做过一个研究项目,并赢得了两个比赛的奖项并参加了全国比赛。
这种方法包括两个步骤:
例如,“我吃派”,有2个名词:“我”和“派”。从解析树来看,“派”位于动词短语内部,因此不能是主语。然而,“我”仅位于类似名词短语的成分中。作为唯一的主语候选者,它就是主语。您可以在http://www.candlemind.com上找到该程序的早期版本。请注意,词汇量仅限于基本单数词汇,且没有动词变位,因此有“人”但没有“人们”,有“吃”但没有“吃掉”。此外,我使用的CFG是手工制作的,并且存在一定限制。我将很快更新此程序。
总之,这个程序还有局限性。我的导师指出,在目前的状态下,它无法识别主语是“真正”的名词短语(语法实际上称之为NP)的句子。例如,“月亮是平的已经不再是一个辩论话题。” 主语实际上是“月亮是平的”。但是程序会将“月亮”认为是主语。我很快就会修复这个问题。
总之,对大多数句子来说,这已经足够了...
我的研究论文也可以在那里找到。请前往第11页阅读方法。
希望这有所帮助。
大多数基本的自然语言处理(NLP)解析技术可以提取句子的基本要素 - 即,鸡肉和火鸡是名词短语(NP),它们由形容词“like”连接。将它们转化为“主题”或“概念”则更加困难。
像潜在语义分析(Latent Semantic Analysis)及其许多派生技术这样的技术将此信息转换为向量(一些方法保留某些部分之间的层次结构/关系),然后将其与现有向量进行比较,通常是预先按概念分类的向量。请参见http://en.wikipedia.org/wiki/Latent_semantic_analysis以开始学习。
编辑以下是一个LSA应用程序的示例,您可以尝试一下看看是否想进一步学习。 http://lsi.research.telcordia.com/lsi/demos.html
<动词> <主语> ... ?
或者 <代词> <动词> <主语> ... ?
这样的形式。这绝不是一个好的算法,特别是考虑到主语可能涵盖多个单词,但取决于您需要多么复杂的解决方案,它可能是一个有用的起点。复合或复杂句子可能有一个以上的主要概念。
您可以使用stanfordNLP或MaltParser,它们可以给出句子的依赖结构。它还提供了词性标注,包括主语、动词、宾语等。
我认为大多数情况下,宾语将是句子的关键概念。
本月MIT计算语言学期刊上有一篇关于解析名词短语的文章:http://www.mitpressjournals.org/doi/pdf/10.1162/COLI_a_00076