2

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

用户给我的电子邮件只有主题和正文,主题是电子邮件的主题,正文是对主题的描述,最多只有一段,最多 1000 个单词。现在我想用某种计算机语言(可能是python)分析这个段落(在正文中),然后从段落中列出与主题字段中提到的主题相关的最重要的单词。

例如,如果电子邮件的主题是 iPhone,正文类似于“iPhone 重新定义了具有超分辨率和图形的用户界面设计。它完全支持触控并允许用户滑动屏幕”

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

所以基本上我正在寻找从段落中挑选最相关的单词。我不确定我可以使用什么或如何使用来实现此结果。在谷歌上搜索,我读了一些关于自然语言处理和 python 和分类等的知识。我只需要一个关于如何去做的通用方法——使用什么技术/语言,我必须阅读哪个领域等等。

谢谢!

编辑:::

在此期间我一直在阅读。准确地说,我正在研究如何做到这一点,使用什么工具:

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

4

4 回答 4

3

一种基于信息论的幼稚方法:

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

对结果进行排序,只保留最相关的 XX,这样你就有了标记方案。

我曾经在 python 中使用两种不同语言中相同文本的单词的交叉熵进行统计翻译,并且效果很好。

于 2012-10-31T16:29:28.437 回答
1

可能是矫枉过正,但这种任务可能可以用 Python 库自然语言工具包解决- http://nltk.org/

于 2012-10-31T16:29:40.287 回答
1

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

至于技术,您正在寻找类似词对之间的相似性度量的东西。对于文本中的每个单词,计算标题中包含内容的单词,并保留前 N 个单词。查看本文以了解方法的调查,并了解 NLTK 在功能方面为您提供了什么。不过,有大量关于这些东西的研究,您可能会对相当简单的东西感到满意(具体取决于您的应用程序是什么)。逐点互信息通常是一个很好的起点。

于 2012-10-31T17:06:05.177 回答
1

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

于 2012-10-31T16:32:14.710 回答