从段落中选择最相关的单词

时间:2012-10-31 16:21:06

标签: python nlp classification tagging folksonomy

不确定如何正确地表达这个问题,但这是我打算使用下面概述的假设情景实现的目标 -

用户给我的电子邮件只有SUBJECT和BODY,主题是电子邮件的主题,而正文只是一段最多1000字的主题描述。现在我想用一些计算机语言(可能是python)分析这段(在BODY中),然后根据SUBJECT字段中提到的主题提出段落中最重要的单词列表。

例如,如果电子邮件的主题是iPhone,而且主体就像“iPhone重新定义了具有超级分辨率和图形的用户界面设计。它完全启用触摸功能,允许用户刷屏”

所以我正在寻找的结果是一个列表,其中包含与iPhone相关的段落中的关键术语。示例 - (用户界面,设计,分辨率,图形,触摸,滑动,屏幕)。

所以基本上我正在考虑从段落中选择最相关的单词。我不确定我可以使用什么或如何使用来实现这个结果。在谷歌搜索,我读了一些关于自然语言处理和python和分类等的内容。我只需要一个关于如何解决这个问题的一般方法 - 使用什么技术/语言,我必须阅读哪个区域等。

谢谢!

  

EDIT :::

在此期间我一直在读书。确切地说,我正在研究如何使用WHAT TOOL做到这一点:

使用NLP从文本正文生成相关标签,这些标签基于同义词,形态相似性,拼写错误和上下文分析。

4 个答案:

答案 0 :(得分:2)

一种基于信息理论的天真方法:

给定文本语料库(在您的示例中,如果可能的话,大约> 1.000封电子邮件),计算语料库中每个不同单词的the entropy

对结果进行排序,只保留最相关的XX,并且您有标记方案。

我曾经在python中使用来自同一文本的单词的交叉熵在两个不同的语言中做了一次统计翻译,并且它运行得相当好。

答案 1 :(得分:1)

可能有点矫枉过正,但这类任务可能可以通过Python库来解决Natural Language Toolkit - http://nltk.org/

答案 2 :(得分:1)

我不是专家,但您似乎确实需要定义“关键术语”,“相关性”等概念,然后将排名算法放在其上。这听起来像做NLP,据我所知,有一个名为NLTK的python包可能在这个领域很有用。希望它有所帮助!

答案 3 :(得分:1)

正如其他人所说,NLTK可能是在Python中进行NLP的首选工具。

至于技术,你正在寻找类似词对之间的相似性度量。对于文本中的每个单词,计算标题中包含内容的单词,并保留前N个。请查看this paper进行方法调查,并了解NLTK在功能方面给出的内容。然而,对这些东西进行了大量的研究,你可能会对一些相当简单的事情感到满意(具体取决于你的应用程序是什么)。 Point-wise mutual information通常是一个很好的起点。