2010-10-18 30 views
1

我正在做一个实验项目。如何从文本中查找关键字(有用词)?

我想要实现的是,我想找到那个文本中的关键字是什么。

我是如何做到这一点的,我列出了一个单词在最常用的单词排序的文本中出现的次数。

但是问题是一些常见的词是,总是在顶部。显然这些都不值得。

你们可以建议我做一些很好的逻辑,所以它总是找到好的相关关键字吗?

+0

有没有已知的图书馆? 我知道python有一些很棒的库: http://term-extraction.appspot.com/ http://www.five-filters.org我也在寻找一个PHP解决方案来获取关键字。 – 2012-12-31 20:21:45

回答

5

使用类似Brill Parser的东西来识别不同的词类,如名词。然后只提取名词,并按频率排序。

+0

非常有用的链接 – Arshdeep 2010-10-18 16:25:55

1

那么你可以使用preg_split来获取单词列表以及它们发生的频率,我假设这就是你迄今为止工作的一点。

我能想到的关于剥离不重要的单词的事情是让你想要忽略的单词词典包含“a”,“我”,“”,“和”等。字典来过滤掉不需要的单词。

你为什么要这样做,是为了搜索页面内容?如果是这样,那么大多数后端数据库提供了某种文本搜索功能,例如MySQL和Postgres都有一个全文搜索引擎,可以自动丢弃不重要的单词。我建议使用您正在使用的后端数据库的全文特征,因为他们已经在实施符合要求的东西了。

+0

我也想到了这一点,忽略了一些已知的不值得的单词。但问题是我不是母语英语的人,所以我在基本语法规则方面很薄弱。我认为不值得的单词列表将会很长。我可以列出一个名单吗(我不知道这个名字可能是什么名字,可能是“他是我,我”字)的“第一人”。 – Arshdeep 2010-10-18 16:19:05

+0

“我”,“你”,“他”,“她”,“它”,“我们”,“他们”都是人称代词 – 2010-10-18 16:51:41

0

我的第一种方法就是比纯编程更数学的建模。

有两种“简单”的方式可以攻击这样的问题; a)排除列表(惩罚你认为无用的单词集合)b)使用权重函数,例如,因此,诸如介词(in,at ...)和代词(I,you,me,his ...)这样的小单词将受到惩罚,并且有希望落入中间表

我不是当然,如果这是你正在寻找的,但我希望它有帮助。顺便说一句,我知道上下文文本处理是一个积极研究的主题,你可能会发现一些可能有趣的项目。

+0

你可能会觉得这很有趣:http://martin.ankerl的.com/2007/01/09/textanalyzer-自动提取物特性字/ – Attilio 2013-03-13 05:31:12

相关问题