Python NTL - 识别文本兴趣/主题
Posted
技术标签:
【中文标题】Python NTL - 识别文本兴趣/主题【英文标题】:Python NTL - Identifying text interest / topic 【发布时间】:2013-07-04 08:46:06 【问题描述】:我正在尝试构建一个模型,该模型将尝试识别所提供文本的兴趣类别/主题。例如:
“很高兴早些时候踢了一场足球比赛。”
将解析为***类别,例如:
“运动”。
我不确定我在此处尝试实现的目标的正确术语是什么,因此 Google 没有提供任何可能提供帮助的库。考虑到这一点,我的方法是这样的:
-
从文本中提取特征。使用标记对每个特征进行分类/识别名称/地点。可能会为此使用 NTLK 或 Topia。
为每个兴趣类别(“体育”、“视频游戏”、“政治”等)运行朴素贝叶斯分类器,并获得每个类别的相关性百分比。
确定哪个类别的准确率最高,并对文本进行分类。
我的方法可能涉及为每个兴趣类别设置单独的语料库,我相信准确性会相当低 - 我知道它永远不会那么准确。
通常会就我想要完成的工作的可行性寻求一些建议,但我的问题的症结在于:a) 我的方法是否正确? b) 是否有任何图书馆/资源可以提供帮助?
【问题讨论】:
在您的情况下,也许一个好主意是解析 Wikipedia 文章(定期提供其数据库的转储),并将它们定义的类别用作您自己的数据的模型。仅解析“类别:”页面(例如:en.wikipedia.org/wiki/Category:Sports_by_type)并仅保存文章标题可能就足够了。如果您需要更高的精度,您还可以检查定义每个类别的最具体的词。 Wikipedia 类别非常嘈杂,因为 Wikipedians 将包含不在类别中的内容,而只是相关或感兴趣的内容。如果您想使用 Wikipedia,我建议您使用 Freebase 类型/属性和 Wikipedia text。 【参考方案1】:您应该查看 Latent Dirichlet Allocation 它将为您提供类别没有标签,一如既往 ed chens bolg 是一个好的开始。
【讨论】:
【参考方案2】:您似乎知道很多正确的术语。尝试搜索“文档分类”。这是您要解决的一般问题。在代表性语料库上训练的分类器将比您想象的更准确。
(a) 没有一种正确的方法。您概述的方法将 但是工作。 (b)Scikit Learn 是进行此类工作的绝佳图书馆。还有很多其他信息,包括关于这个主题的在线教程:
github 上的这个Naive Bayesian Classifier 可能已经完成了您想要完成的大部分工作。 此NLTK tutorial 深入解释了该主题。 如果您真的想深入研究,我相信 Google 学术搜索会找到数千篇关于此主题的计算机科学和语言学学术文章。【讨论】:
以上是关于Python NTL - 识别文本兴趣/主题的主要内容,如果未能解决你的问题,请参考以下文章