使用Python自动从上下文中选择标记

时间:2009-11-21 14:38:13

标签: python tags

如何使用Python从文章或用户的帖子中选择标签?

以下方法可以吗?

  1. 从文本中构建单词频率列表并对其进行排序。

  2. 删除一些常用字词,然后选择列表中剩余的前10个字作为标记。

  3. 如果上面的方法没问题,那么哪个库可以检测出哪些词是常见的,比如“,if,you等”,哪些是描述性词?

5 个答案:

答案 0 :(得分:4)

这是关于removing stop words的文章。文章中停用词列表的链接已被删除,但here's another one

答案 1 :(得分:3)

Natural Language Toolkit为这类东西提供了多种方法。我不能给你实际的建议,因为我不熟悉这个主题,但我认为在你开始之前先阅读一些关于这个主题的articles是值得的:只需从文本中挑选单词直接不会让你走得很远我想,你应该尝试找到类似的单词,因为那些标签已经存在。当然,你需要过滤出语言的常用词,如“the”和东西。同样,这个Python库可以帮助您解决这个问题,至少对于一些常见语言而言。

答案 2 :(得分:2)

我建议你download the Stack Overflow data dump。在那里,您可以获得许多带有适当标签的真实世界帖子,以测试不同的标签选择算法。

但总的来说,我怀疑它会运作得太好。对于你自己的问题,“单词”是单词计数的明显赢家,后面是一个单词列表,每个单词有两个外观,如“common”,“list”,“method”,“pick”和“tags”。你会自动选择哪一个作为标签?您手动选择的标签也包含“python”和“context”,其中没有一个显示高字频率。

答案 3 :(得分:1)

使用已标记的数据训练Bayes或Fischer过滤器(例如,使用sth建议的Stackoverflow数据转储)并使用它来对新帖子进行分类。我建议阅读Toby Segaran的优秀编程集体智慧书,以获取有关此主题的更多信息和python示例。

答案 4 :(得分:0)

不是将不应该是标签的单词列入黑名单,为什么不建立一个可以制作好标签的单词白名单呢?

从您希望拥有的一些代码开始,例如Pythonoff-topicfootballrickroll或其他(取决于您的网站类型)正在构建!)并让系统只在这些之间建议,然后让用户手动选择适当的标签,并让他们输入自己的标签。

当有足够多的用户建议标记时,它会进入“已知良好”标记池以获取自动建议 - 可能经过某种审核后,您仍然可以将the,{{{}等愚蠢标记列入黑名单当您拥有lolol时,可以使用objectoriented标记的标签。

仅显示少数建议。提供自动完成功能。限制每个项目的标签数量。如果这将是关于编码,也许某种语言检测系统(object-oriented linux命令对此不太苛刻)将有助于您的建议系统。