我的目标是[半]自动将文本分配给不同的类别。有一组用户定义的类别和每个类别的一组文本。理想的算法应该能够从人为定义的分类中学习,然后自动对新文本进行分类。任何人都可以建议这样的算法,也许是实现ше的.NET库?
7 回答
这样做并非易事。显然,您可以构建一个将某些关键字映射到类别的字典。只需找到一个关键字就会建议某个类别。
然而,在自然语言文本中,关键字通常不会采用词干形式。您将需要一些形态学工具来查找词干形式并将其用于字典。
但是有人可能会写出类似的东西:“这篇文章不是关于……”。这将引入对语法和语义分析的需求。
然后您会发现某些关键字可以用于多个类别:“乐队”可以用于音乐,技术甚至手工艺品。因此,如果不确定,您将需要一个本体和统计或其他方法来权衡要选择的类别的概率。
有些关键词甚至可能不容易融入本体:数学家更接近程序员还是园丁?但是您在问题中说类别是由男性构建的,因此他们也可以帮助构建本体。
在此处和Wikipedia中查看计算语言学以进行进一步研究。
现在,您的文本来自的领域越窄,它们就越结构化,词汇量越小,问题就越容易。
还有一些进一步研究的关键词:形态学、句法分析、语义学、本体论、计算语言学、索引、关键词
自动文本分类有多种方法。朴素贝叶斯分类器可能是其中最简单的一个。另一个是您可以使用的 K-最近邻。这个关于文本分类的谷歌答案可能会对您有所帮助。
观看我关于这个主题的视频系列。
http://vancouverdata.blogspot.com/2010/11/text-analytics-with-rapidminer-loading.html
分类在视频 5 中,但其他视频可能会帮助您快速上手。
这一切都基于 FOSS 程序 RapidMiner。
从 scikit learn中查看这个示例。示例中应用了一大堆不同的算法,因此您可以比较结果。
支持向量机。每个人都喜欢支持向量机。你需要做很多阅读,甚至可能买一本书。但是你可以先阅读一篇论文,看看你是否喜欢这个想法。
这些方法的总称是“多变量方法”。通过搜索“文本分类”或“文本分类”应该会带来一些有用的线索。祝你好运 !
很长一段时间以来,我一直在寻找这个问题的答案。今天我找到了我的答案。
有一个名为“dbacl”的开源程序可以做到这一点。它将文档分类为您喜欢的多个类别(最多为某个最大值)。
其他说“不是微不足道”之类的答案都是正确的,但是拥有一个易于使用的包来完成困难的工作有助于使其易于管理。