建议一段文字的类别

时间:2010-07-08 22:13:35

标签: python

我一直在寻找一个开源解决方案来建议给出问题或文字的类别。

例如,“Lady Gaga是谁?”可能会回归'娱乐','音乐'或'名人'。

“棒球有多少击球?”会给我'棒球',或'运动'。

分类不一定是完美的,但应该是一些接近的分类。

在任何地方我都可以获得热门类别列表吗?

4 个答案:

答案 0 :(得分:3)

这是document classification problem - 您的“文档”只是查询或文本。

您首先需要确定可能类别的列表。 “Lady Gaga是谁?”可以是娱乐,名人,英语问答,传记,人物等。接下来,您将应用决策框架为文本中的每个类别分配一个分数。最高分是其类别 - 只要它高于噪声阈值并且没有第二位类别太接近区分。决策框架可以包括贝叶斯网络或一组自定义规则等方法。

一些实现分类器的开源项目包括:

答案 1 :(得分:1)

屏幕刮掉Wolfram alpha。

您可以从dmoz获得一个很好的类别列表。

答案 2 :(得分:0)

答案不是很多,但也许这个分类词典会有所帮助:

http://www.provalisresearch.com/wordstat/WordNet.html

我想你可以从字符串中提取不常见的单词,在分类字典中查找它们,并返回在你的条件上获得最多匹配的类别。处理像“Lady Gaga”这样的流行文化引用会很棘手,但是......也许你可以进行Google搜索并分析其结果。

答案 3 :(得分:0)

其他人代表你做了很多工作,所以我建议你使用像OpenCalais API这样的东西。在http://code.google.com/p/python-calais/处有一个API的python包装器。

“Lady Gaga是谁?”似乎是一篇太短的文本,让他们给出一个体面的回应。但是,如果您花了很多时间来完成两个步骤并从维基百科中获取Lady Gaga的第一段,然后将其提供给OpenCalais API,您将获得非常好的结果。

只需将维基百科中的第一段剪切并粘贴到OpenCalais viewer即可快速查看。结果是对“娱乐文化”这一主题进行了分类,并对其进行了100%的置信度估计。

同样,棒球示例将“体育”作为主题返回,并带有“娱乐”,“棒球”等社交标签。

编辑以下是Calais使用社交标签提示的另一个想法:将Lady Gaga的维基百科网址发送到美味的API

curl -k https://user:password@api.del.icio.us/v1/posts/suggest?url=http://en
.wikipedia.org/wiki/Lady_gaga

返回 <?xml version="1.0" encoding="UTF-8"?> <suggest> <recommended>music</recommended> <recommended>wikipedia</recommended> <recommended>wiki</recommended> <recommended>people</recommended> <recommended>bio</recommended> <recommended>cool</recommended> <recommended>facts</recommended> <popular>music</popular> <popular>gaga</popular> <popular>ladygaga</popular> <popular>wikipedia</popular> <popular>lady</popular>

等。应该很容易忽略维基百科/维基类型条目。